Lightweight authorization for vendor passthru

Registered by Yuriy Zveryanskyy

Keystone PKI token (~5K) cannot be passed to deploy ramdisk via kernel command line (~2K).
Generalized 'deploy_key' can be used as lightweigh key for deployment tasks.
1. Generate deploy_key before deploying.
2. Pass deploy_key to deploy ramdisk.
3. Don't check token for vendor passthru in auth middleware.
4. Check deploy_key in API.

Because vendor passthru may be used not only for deployment tasks authorization possibility by tokens must remains.

Blueprint information

Status:
Complete
Approver:
aeva black
Priority:
Undefined
Drafter:
Yuriy Zveryanskyy
Direction:
Needs approval
Assignee:
Yuriy Zveryanskyy
Definition:
Obsolete
Series goal:
None
Implementation:
Unknown
Milestone target:
None
Completed by
aeva black

Related branches

Sprints

Whiteboard

I don't like allowing a publicly-accessible service to use a weaker key than the current keystone auth token, but I agree that the deploy key must be small (few hundred bytes at most).

I think it would be reasonable to run a private API service. Same python code as the public API, but with a config option to enable the code paths we need internally, such as that for the deploy and discovery ramdisk, for these ramdisks to POST log data back, etc.

What do you think?

-Deva, 2012-11-12

Devananda, I think additional private API service can be as option, like

bool option 'allow_private_api' for API service

and default should be True (no additional service need to be runned, only authorization described in this bp used)

Gerrit topic: https://review.openstack.org/#q,topic:bp/vendor-lightweight-auth,n,z

Addressed by: https://review.openstack.org/56612
    Allow vendor passthru without Keystone authorization

--------------------
Discussed and found a solution which does not reduce security of our API service:
  https://review.openstack.org/#/c/59066/
    Save PKI token in a file for PXE deploy ramdisk

Marking this blueprint as Obsolete.
--Devananda, 2013-12-10

(?)

Work Items

This blueprint contains Public information 
Everyone can see this information.

Subscribers

No subscribers.