keystone/keystone/common
Rafael Weingärtner 14ac08431f Keystone to honor the "domain" attribute mapping rules.
We propose to extend Keystone identity provider (IdP) attribute mapping
schema to make Keystone honor the `domain` configuration that we have
on it.

Currently, that configuration is only used to define a default domain
for groups (and then each group there, could override it). It is
interesting to expand this configuration (as long as it is in the root
of the attribute mapping) to be also applied for users and projects.

Moreover, to facilitate the development and extension concerning
attribute mappings for IdPs, we changed the way the attribute mapping
schema is handled. We introduce a new configuration
`federation_attribute_mapping_schema_version`, which defaults to "1.0".
This attribute mapping schema version will then be used to control the
validation of attribute mapping, and also the rule processors used to
process the attributes that come from the IdP. So far, with this PR,
we introduce the attribute mapping schema "2.0", which enables
operators to also define a domain for the projects they want to assign
users. If no domain is defined either in the project or in the global
domain definition for the attribute mapping, we take the IdP domain
as the default.

Change-Id: Ia9583a254336fad7b302430a38b538c84338d13d
Implements: https://bugs.launchpad.net/keystone/+bug/1887515
Closes-Bug: #1887515
2024-01-16 08:54:56 -03:00
..
cache using standard library secrets function token_bytes to replace os.urandom 2022-01-03 19:16:29 +08:00
policies Merge "Fix typo in identity provider policies" 2021-10-06 23:35:30 +00:00
rbac_enforcer [goal] Deprecate the JSON formatted policy file 2021-02-01 17:36:29 +00:00
resource_options Remove six usage 2020-01-30 06:06:51 +00:00
sql Keystone to honor the "domain" attribute mapping rules. 2024-01-16 08:54:56 -03:00
validation Update hacking for Python3 2020-04-15 07:17:58 +02:00
__init__.py establish basic structure 2012-01-18 20:06:27 -08:00
authorization.py Add access rules to token validation 2019-09-14 03:14:36 -07:00
context.py Pass context objects to policy enforcement 2018-11-26 19:48:10 +00:00
driver_hints.py Drop type in filters 2017-01-13 14:19:11 +03:00
fernet_utils.py Stop pinning pep8 related packages 2023-10-02 15:41:36 -05:00
json_home.py Expose access rules as its own API 2019-09-14 03:14:20 -07:00
jwt_utils.py Add keystone-manage create_jws_keypair functionality 2019-01-31 19:41:25 +00:00
manager.py Drop compatibility code for Python 2.y 2023-11-29 03:43:14 +00:00
password_hashing.py Add support for bcrypt_sha256 hasher 2023-08-10 15:39:51 +02:00
profiler.py Remove log translations in keystone 2017-03-25 18:17:15 +00:00
provider_api.py Fix RBACEnforcer get_member_from_driver mechanism 2018-09-10 13:32:14 -07:00
render_token.py Respect cached tokens issued before upgrade 2023-08-17 08:24:33 +00:00
tokenless_auth.py Fixes incorrect params 2019-02-08 17:12:21 -08:00
utils.py Remove Dependency on Cryptography >=36.0.0 2023-03-17 23:48:02 +09:00