keystone.auth.plugins.mapped 模块

class keystone.auth.plugins.mapped.Mapped[source]

基类: AuthMethodHandler

authenticate(auth_payload)[source]

认证映射用户并设置认证上下文。

参数:

auth_payload – 给定方法认证的内容

除了 user_idresponse_data 中之外,此插件还设置 group_idsOS-FEDERATION:identity_providerOS-FEDERATION:protocol

keystone.auth.plugins.mapped.apply_mapping_filter(identity_provider, protocol, assertion, resource_api, federation_api, identity_api)[source]
keystone.auth.plugins.mapped.configure_project_domain(shadow_project, idp_domain_id, resource_api)[source]

配置联合项目域。

如果来自属性映射的项目没有域,则我们将域设置为默认域(idp_domain_id)。

keystone.auth.plugins.mapped.extract_assertion_data()[source]
keystone.auth.plugins.mapped.handle_projects_from_mapping(shadow_projects, idp_domain_id, existing_roles, user, assignment_api, resource_api)[source]
keystone.auth.plugins.mapped.handle_scoped_token(token, federation_api, identity_api)[source]
keystone.auth.plugins.mapped.handle_unscoped_token(auth_payload, resource_api, federation_api, identity_api, assignment_api, role_api)[source]
keystone.auth.plugins.mapped.validate_and_prepare_federated_user(mapped_properties, idp_domain_id, resource_api)[source]

设置联合用户名。

该函数涵盖了所有正确设置用户 ID 的用例,用户 ID 是身份对象的首要标识符。映射引擎的初始版本假定用户由 name 标识,并且其 id 是从名称构建的。但是,我们需要能够接受通过 ID 或名称/域识别用户的本地规则。

涵盖以下用例

  1. 如果未设置 user_name 或 user_id,则引发异常 Unauthorized

  2. 如果设置了 user_id 但未设置 user_name,则将 user_name 设置为 user_id

  3. 如果未设置 user_id 且设置了 user_name,则将 user_id 设置为 user_name 的 URL 安全版本。

此外,如果用户定义没有域定义,我们将 IdP 设置为用户域。

参数:
  • mapped_properties – 由 RuleProcessor 发出的属性。

  • idp_domain_id – 在 OpenStack 中注册的 IdP 的域 ID。

  • resource_api – 用于访问数据库层的资源 API。

类型:

字典

类型:

字符串

类型:

对象

引发:

keystone.exception.Unauthorized – 如果未设置 user_nameuser_id

返回值:

包含用户标识的元组

返回类型:

元组