keystone.federation.utils 模块¶
联邦扩展的实用工具。
- class keystone.federation.utils.RuleProcessor(mapping_id, rules)[source]¶
基类:
object用于处理断言和映射规则的类。
- process(assertion_data)[source]¶
将断言转换为字典。
字典包含基于映射规则的用户名称和组 ID 的映射。
此函数将遍历映射规则以查找有效的断言。
- 参数:
assertion_data (dict) – 来自 IdP 的断言,包含值
示例 assertion_data
{ 'Email': 'testacct@example.com', 'UserName': 'testacct', 'FirstName': 'Test', 'LastName': 'Account', 'orgPersonType': 'Tester', }
- 返回值:
包含用户和组 ID 的字典
预期的返回结构是
{ 'name': 'foobar', 'group_ids': ['abc123', 'def456'], 'group_names': [ {'name': 'group_name_1', 'domain': {'name': 'domain1'}}, {'name': 'group_name_1_1', 'domain': {'name': 'domain1'}}, {'name': 'group_name_2', 'domain': {'id': 'xyz132'}}, ], }
- class keystone.federation.utils.RuleProcessorToHonorDomainOption(mapping_id, rules)[source]¶
继承自
RuleProcessor处理属性映射中配置的默认域。
此规则处理器旨在处理配置在属性映射根目录的 domain 属性。配置此属性时,我们应将其视为属性映射的默认属性,而不是 IdP 的域。此外,我们应尊重可以在 groups、user 和 projects 属性定义中进行的重写。
- class keystone.federation.utils.UserType[source]¶
基类:
object用户映射类型。
- EPHEMERAL = 'ephemeral'¶
- LOCAL = 'local'¶
- keystone.federation.utils.transform_to_group_ids(group_names, mapping_id, identity_api, resource_api)[source]¶
将按名称/域标识的组转换为其 ID。
函数接受按名称和域标识的组列表,并返回组 ID 列表。如果后端中不存在该组,则会记录一条消息。
group_names 参数的示例
[ {"name": "group_name", "domain": {"id": "domain_id"}}, {"name": "group_name_2", "domain": {"name": "domain_name"}}, ]
- 参数:
group_names (list) – 由名称及其域标识的组列表。
mapping_id (str) – 用于将断言映射到本地凭据的映射的 ID
identity_api – identity_api 对象
resource_api – 资源管理器对象
- 返回值:
包含组 ID 的生成器对象
- keystone.federation.utils.validate_mapped_group_ids(group_ids, mapping_id, identity_api)[source]¶
迭代组 ID 并确保它们存在于后端。
此调用不是事务性的。 :param group_ids: 要检查的组 ID 列表 :type group_ids: str 列表
- 参数:
mapping_id (str) – 用于此操作的映射的 ID
identity_api (identity.Manager) – 用于与后端通信的 Identity Manager 对象
- 引发:
keystone.exception.MappedGroupNotFound – 如果后端中未找到映射返回的组。