Encrypt OAuth access keys
Similar to the PKI tokens issued by keystone, encrypted OAuth access keys can contain enough information to allow offline:
- oauth-based request integrity validation
- openstack authorization data (tenancy & roles)
In pseudo code, to generate an access key:
access_key = encrypt(secret_key + project_id + role_ids)
Given an oauth-signed request, an OpenStack service remote to keystone may verify an oauth-signed request by decrypting the access key provided by the client in plaintext:
secret_key, project_id, role_ids = decrypt(access_key)
For a demo implementation, see:
https:/
Considerations:
- If the secret key is recoverable from the access key by a third party, then auth, request integrity, etc, is completely broken
- Access keys may be used in URL's (e.g. keystone's OS-OAUTH1 extension API), so length and encoding of the generated keys may impact compatibility
Blueprint information
- Status:
- Complete
- Approver:
- None
- Priority:
- Undefined
- Drafter:
- Dolph Mathews
- Direction:
- Needs approval
- Assignee:
- Dolph Mathews
- Definition:
- Obsolete
- Series goal:
- None
- Implementation:
- Unknown
- Milestone target:
- None
- Started by
- Completed by
- Dolph Mathews