diff options
author | Henry Nash <henryn@linux.vnet.ibm.com> | 2013-07-05 06:04:25 +0100 |
---|---|---|
committer | Henry Nash <henryn@linux.vnet.ibm.com> | 2013-07-17 00:37:32 +0100 |
commit | 7f4891ddc3da7457df09c0cc8bbfe8a888063feb (patch) | |
tree | 89a26f688965566ec35eb35192d34a71ab513da4 /doc | |
parent | 3a56c8a68d0f033266f98963261a6d724e506966 (diff) | |
download | keystone-7f4891ddc3da7457df09c0cc8bbfe8a888063feb.tar.gz keystone-7f4891ddc3da7457df09c0cc8bbfe8a888063feb.tar.xz keystone-7f4891ddc3da7457df09c0cc8bbfe8a888063feb.zip |
Implement role assignment inheritance (OS-INHERIT extension)
This extension allows for project roles to be optionally
inherited from the owning domain. The v3 grant APIs are extended
to take an inherited_to_projects flag. The GET role_assignments
API will also include these roles in its response, either showing them
as inherited roles assigned to the domain or, if the 'effective'
query parameter is set, will interpret the inheritance and reflect
those role assignments on the projects.
The inherited_to_projects flag is encoded in the role list in
the metadata of the relevant entries in the grant tables. The
'roles' key in the metadata is now a list of dicts, as opposed
to a simple list, where each dict is either
{'id': role_id} for a regular role, or
{'id': role_id, 'inherited_to': 'projects'} for an inherited role
Remember that a previous patch had rationalized the way metadata is
handled so that its structure is entirely hidden within the driver
layer.
The extension can be enabled/disabled via a config setting.
Limitations:
- The extension is not yet discoverable via url, this will be added
as a separate patch when the v3/extensions work is complete.
A separate issue has been discovered with the fact that the v2
calls of 'get_projects_for_user()' and 'list_user_projects()'
should be rationalized and also honor both group (and inherited)
role assignments. This is being raised as a separate bug.
DocImpact
Implements bp inherited-domain-roles
Change-Id: I35b57ce0df668f12462e96b3467cef0239594e97
Diffstat (limited to 'doc')
-rw-r--r-- | doc/source/configuration.rst | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/doc/source/configuration.rst b/doc/source/configuration.rst index 0a2d9339..eb08a49c 100644 --- a/doc/source/configuration.rst +++ b/doc/source/configuration.rst @@ -79,6 +79,7 @@ following sections: * ``[signing]`` - cryptographic signatures for PKI based tokens * ``[ssl]`` - SSL configuration * ``[auth]`` - Authentication plugin configuration +* ``[os_inherit]`` - Inherited Role Assignment extension * ``[paste_deploy]`` - Pointer to the PasteDeploy configuration file The Keystone primary configuration file is expected to be named ``keystone.conf``. @@ -485,6 +486,17 @@ In addition to changing their password all of the users current tokens will be deleted (if the backend used is kvs or sql) +Inherited Role Assignment Extension +----------------------------------- + +Keystone provides an optional extension that adds the capability to assign roles to a domain that, rather than +affect the domain itself, are instead inherited to all projects owned by theat domain. This extension is disabled by +default, but can be enabled by including the following in ``keystone.conf``. + + [os_inherit] + enabled = True + + Sample Configuration Files -------------------------- |