[Openstack] Keystone policy to allow project_admins to add (existing) users to their projects
Jonathan Proulx
jon at jonproulx.com
Mon Aug 24 20:41:32 UTC 2015
HI,
I want to create a 'project_admin' role with the ability to add and
remove existing users from the project in which one has this role.
But it's not working as I thought. Here's what I tried in policy.json
(note #comments are not in the json file):
# set up the rules
"project_admin": "project_id:%(project_id)s and role:project_admin",
"admin_or_proj_admin": "rule:admin_required or rule:admin_or_proj_admin",
# grant role to some things that were previously rule:admin_required
"identity:get_project": "rule:admin_or_proj_admin",
"identity:update_project": "rule:admin_or_proj_admin",
"identity:get_user": "rule:admin_or_proj_admin",
"identity:get_role": "rule:admin_or_proj_admin",
"identity:create_grant": "rule:admin_or_proj_admin",
"identity:revoke_grant": "rule:admin_or_proj_admin",
"identity:list_role_assignments": "rule:admin_or_proj_admin",
I'd started off with a smaller set (just the create_grant and
revoke_grant) but added more access due to failures, but still not
working.
what I did:
restarted keystone after editing policy.json (is this required?)
# as admin user
keystone user-role-add --user jon --role project_admin --tenant test-group
# as user 'jon'
keystone --debug --os-tenant-name test-group user-role-add --user
jon-test --role _member_ --tenant test-group
DEBUG:keystoneclient.auth.identity.v2:Making authentication request to
https://keystone:5001/v2.0/tokens
INFO:urllib3.connectionpool:Starting new HTTPS connection (1): keystone
DEBUG:urllib3.connectionpool:Setting read timeout to 600.0
DEBUG:urllib3.connectionpool:"POST /v2.0/tokens HTTP/1.1" 200 4915
DEBUG:keystoneclient.session:REQ: curl -i -X GET
https://keystone:35358/v2.0/users/jon-test -H "User-Agent:
python-keystoneclient" -H "X-Auth-Token: <redacted>"
INFO:urllib3.connectionpool:Starting new HTTPS connection (1): keystone
DEBUG:urllib3.connectionpool:Setting read timeout to 600.0
DEBUG:urllib3.connectionpool:"GET /v2.0/users/jon-test HTTP/1.1" 403 131
DEBUG:keystoneclient.session:RESP:
DEBUG:keystoneclient.session:Request returned failure status: 403
You are not authorized to perform the requested action: admin_required
(HTTP 403)
am I tweaking the wrong rules or is something deeper in my way?
Thanks,
-Jon
More information about the Openstack
mailing list