Allow more fine grained authorization check in swift (keystoneauth).
==
Currently in swift, the authorization checks that are defined in keystoneauth middleware are based on 3 main kind of user profiles:
* "anonymous" users (users that are not authenticated), and that can only perform some specific actions (public actions)
* "operators" (users that have one of the role defined in the parameter operator_roles), they have almost the right of doing everything as long as it's in their own tenant.
* "resellers admins" (users that have the role defined in the parameter reseller_
If this profiles can handle many use cases, some users may still need a more fine grained profile/
For example we may need to define a profile only capable of listing objects/containers and not able to upload/create new objects, etc.
==
For this we propose to implement a policy engine within keystoneauth middleware.
The same way other openstack components already implement through the json policy format (based on https:/
This way, it would be possible to define user specific authorizations for different kind of profile, by providing a policy file that describes them.
Blueprint information
- Status:
- Started
- Approver:
- None
- Priority:
- Undefined
- Drafter:
- Nassim Babaci
- Direction:
- Needs approval
- Assignee:
- Nassim Babaci
- Definition:
- New
- Series goal:
- None
- Implementation:
- Started
- Milestone target:
- None
- Started by
- Nassim Babaci
- Completed by
Related branches
Related bugs
Sprints
Whiteboard
Gerrit topic: https:/
Addressed by: https:/
Add policy engine to keystoneauth