keystoneclient.contrib.auth.v3 包

子模块

keystoneclient.contrib.auth.v3.oidc 模块

class keystoneclient.contrib.auth.v3.oidc.OidcPassword(auth_url, identity_provider, protocol, username, password, client_id, client_secret, access_token_endpoint, scope='profile', grant_type='password')

基类: FederatedBaseAuth

实现 OpenID Connect 协议的身份验证插件。

OIDC 或 OpenID Connect 是一种用于联合身份验证的协议。

OpenID Connect 规范可在以下网址找到:http://openid.net/specs/openid-connect-core-1_0.html

classmethod get_options()

返回与身份验证插件关联的参数列表。

此列表可用于生成 CLI 或配置文件参数。

返回值:

描述可用插件参数的 Param 对象列表。

返回类型:

列表

get_unscoped_auth_ref(session)

使用 OpenID Connect 进行身份验证并获取声明。

这是一个多步骤过程。首先必须检索访问令牌,为此,需要知道用户名和密码、OpenID Connect 客户端 ID 和密钥以及访问令牌端点。

其次,我们在访问受保护的 Keystone 端点(联合身份验证 URL)时交换访问令牌。这将触发 OpenID Connect 提供程序执行用户内省并检索有关用户的 OpenID Connect 声明(在范围中指定的信息)。这些声明将以环境变量的形式发送到 Keystone。

参数:

session (keystoneclient.session.Session) – 用于发送 HTTP 请求的会话对象。

返回值:

令牌数据表示形式

返回类型:

keystoneclient.access.AccessInfo

property password

自 1.7.0 版本弃用。

可能在 2.0.0 版本中删除。

property username

自 1.7.0 版本弃用。

可能在 2.0.0 版本中删除。

keystoneclient.contrib.auth.v3.saml2 模块

class keystoneclient.contrib.auth.v3.saml2.ADFSUnscopedToken(auth_url, identity_provider, identity_provider_url, service_provider_endpoint, username, password, **kwargs)

基类: _BaseSAMLPlugin

Microsoft ADFS2.0 IdP 的身份验证插件。

参数:
  • auth_url (string) – 身份服务 URL

  • identity_provider (string) – 客户端将进行身份验证的身份提供程序名称。此参数将用于构建用于获取未作用域 OpenStack 令牌的动态 URL。

  • identity_provider_url (string) – 将发送 SAML2 身份验证请求的身份提供程序 URL。

  • service_provider_endpoint (string) – 发送断言的端点,例如:https://host.domain/Shibboleth.sso/ADFS

  • username (string) – 用户登录名

  • password (string) – 用户密码

ADFS_ASSERTION_XPATH = '/s:Envelope/s:Body/t:RequestSecurityTokenResponseCollection/t:RequestSecurityTokenResponse'
ADFS_TOKEN_NAMESPACES = {'s': 'http://www.w3.org/2003/05/soap-envelope', 't': 'http://docs.oasis-open.org/ws-sx/ws-trust/200512'}
DEFAULT_ADFS_TOKEN_EXPIRATION = 120
HEADER_SOAP = {'Content-Type': 'application/soap+xml; charset=utf-8'}
HEADER_X_FORM = {'Content-Type': 'application/x-www-form-urlencoded'}
NAMESPACES = {'a': 'http://www.w3.org/2005/08/addressing', 's': 'http://www.w3.org/2003/05/soap-envelope', 'u': 'http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd'}
get_auth_ref(session, **kwargs)

从 OpenStack Identity 服务获取令牌。

此方法由各种令牌版本插件覆盖。

不应独立调用此方法,并预计通过 do_authenticate() 方法调用。

如果插件缓存的 AccessInfo 对象无效,则将调用此方法。因此,插件在调用时应始终获取新的 AccessInfo。如果您只想检索当前的 auth 数据,则应使用 get_access()。

参数:

session (keystoneclient.session.Session) – 可以用于通信的会话对象。

引发:
返回值:

令牌访问信息。

返回类型:

keystoneclient.access.AccessInfo

classmethod get_options()

返回与身份验证插件关联的参数列表。

此列表可用于生成 CLI 或配置文件参数。

返回值:

描述可用插件参数的 Param 对象列表。

返回类型:

列表

property password

自 1.7.0 版本弃用。

可能在 2.0.0 版本中删除。

property username

自 1.7.0 版本弃用。

可能在 2.0.0 版本中删除。

class keystoneclient.contrib.auth.v3.saml2.Saml2ScopedToken(auth_url, token, **kwargs)

基类: Token

用于作用域未作用域 saml2 令牌的类。

class keystoneclient.contrib.auth.v3.saml2.Saml2ScopedTokenMethod(**kwargs)

基类: TokenMethod

get_auth_data(session, auth, headers, **kwargs)

构建并返回令牌作用域步骤的请求体。

class keystoneclient.contrib.auth.v3.saml2.Saml2UnscopedToken(auth_url, identity_provider, identity_provider_url, username, password, **kwargs)

基类: _BaseSAMLPlugin

实现 SAML2 协议的身份验证插件。

ECP 代表“增强的客户端或代理”,是 SAML2 的扩展,用于联合身份验证,其中传输层由 HTTP 协议和 XML SOAP 消息组成。

了解有关 ECP 的更多信息

参考 SAML2 ECP 规范

当前,仅 HTTPBasicAuth 机制可用于 IdP 身份验证。

参数:
  • auth_url (string) – 身份服务 URL

  • identity_provider (string) – 客户端将进行身份验证的身份提供程序名称。此参数将用于构建用于获取未作用域 OpenStack 令牌的动态 URL。

  • identity_provider_url (string) – 将发送 SAML2 authn 请求的身份提供程序 URL。

  • username (string) – 用户登录名

  • password (string) – 用户密码

ECP_IDP_CONSUMER_URL = '/S:Envelope/S:Header/ecp:Response/@AssertionConsumerServiceURL'
ECP_RELAY_STATE = '//ecp:RelayState'
ECP_SAML2_NAMESPACES = {'S': 'http://schemas.xmlsoap.org/soap/envelope/', 'ecp': 'urn:oasis:names:tc:SAML:2.0:profiles:SSO:ecp', 'paos': 'urn:liberty:paos:2003-08'}
ECP_SERVICE_PROVIDER_CONSUMER_URL = '/S:Envelope/S:Header/paos:Request/@responseConsumerURL'
ECP_SP_EMPTY_REQUEST_HEADERS = {'Accept': 'text/html, application/vnd.paos+xml', 'PAOS': 'ver="urn:liberty:paos:2003-08";"urn:oasis:names:tc:SAML:2.0:profiles:SSO:ecp"'}
ECP_SP_SAML2_REQUEST_HEADERS = {'Content-Type': 'application/vnd.paos+xml'}
SAML2_HEADER_INDEX = 0
SOAP_FAULT = '\n    <S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">\n       <S:Body>\n         <S:Fault>\n            <faultcode>S:Server</faultcode>\n            <faultstring>responseConsumerURL 来自 SP 和\n            assertionConsumerServiceURL 来自 IdP 匹配\n            </faultstring>\n         </S:Fault>\n       </S:Body>\n    </S:Envelope>\n    '
get_auth_ref(session, **kwargs)

通过 SAML2 协议进行身份验证并检索未限定范围的令牌。

这是一个多步骤过程,客户端执行联合身份验证,接收未范围限定的令牌。

使用 SAML2 Enhanced Client 或 Proxy 扩展的联合身份验证。有关该步骤的更多信息,请参阅 Saml2UnscopedToken_get_unscoped_token()。身份验证和断言映射成功后,将返回一个未限定范围的令牌并存储在插件对象中以供进一步使用。

:param session : 用于发送 HTTP 请求的会话对象。 :type session: keystoneclient.session.Session

返回值:

包含限定范围令牌的 ID 和未限定范围令牌 JSON 的对象。

返回类型:

keystoneclient.access.AccessInfoV3

property password

自 1.7.0 版本弃用。

可能在 2.0.0 版本中删除。

property username

自 1.7.0 版本弃用。

可能在 2.0.0 版本中删除。

class keystoneclient.contrib.auth.v3.saml2.Saml2UnscopedTokenAuthMethod(**kwargs)

基类: AuthMethod

get_auth_data(session, auth, headers, **kwargs)

返回身份验证插件的身份验证部分。

参数:
  • session (keystoneclient.session.Session) – 通信会话。

  • auth (base.Auth) – 调用该方法的身份验证插件。

  • headers (dict) – 将与身份验证请求一起发送的标头(如果插件需要添加标头)。

返回值:

此插件的标识符和用于身份验证类型的字典数据。

返回类型:

tuple(string, dict)

模块内容