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')¶
-
实现 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 请求的会话对象。
- 返回值:
令牌数据表示形式
- 返回类型:
- 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)¶
基类:
_BaseSAMLPluginMicrosoft 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/ADFSusername (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.exceptions.InvalidResponse – 返回的响应不合适。
keystoneclient.exceptions.HttpError – 来自无效 HTTP 响应的错误。
- 返回值:
令牌访问信息。
- 返回类型:
- 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 消息组成。
参考 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 的对象。
- 返回类型:
- 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