Encrypt OAuth access keys

Registered by Dolph Mathews on 2013-08-21

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://gist.github.com/dolph/6198529

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
Completed by
Dolph Mathews on 2014-10-14

Related branches

Sprints

Whiteboard

(?)

Work Items

This blueprint contains Public information 
Everyone can see this information.

Subscribers

No subscribers.