keystoneauth1.service_token 模块¶
- class keystoneauth1.service_token.ServiceTokenAuthWrapper(user_auth: BaseAuthPlugin, service_auth: BaseAuthPlugin)
基类:
BaseAuthPlugin- __annotations__ = {}
- __doc__ = None
- __init__(user_auth: BaseAuthPlugin, service_auth: BaseAuthPlugin)
- __module__ = 'keystoneauth1.service_token'
- get_connection_params(session: ks_session.Session) ConnectionParams
返回插件所需的任何其他连接参数。
- 参数:
session (keystoneauth1.session.Session) – 该认证插件所属的会话对象。
- 返回值:
传递给 requests 库的参数。只有
cert和verify参数可能会被返回。- 返回类型:
- get_endpoint(session: ks_session.Session, **kwargs: Any) str | None
为客户端返回一个端点。
在
get_endpoint中没有必需的关键字参数,因为插件实现应尽最大努力使用可用信息来确定端点。但是,有一些标准选项将由客户端生成,并且应由插件使用service_type:所需的服务类型。service_name:目录中的服务名称。interface:端点应具有的可见性。region_name:端点所在的区域。
- 参数:
session (keystoneauth1.session.Session) – 该认证插件所属的会话对象。
kwargs – 已忽略。
- 返回值:
将用于与所需服务通信的基本 URL,如果不可用则为 None。
- 返回类型:
字符串
- get_headers(session: ks_session.Session) dict[str, str] | None
获取消息的身份验证头。
这是旧的 get_token 的更通用的替代方案,允许插件指定与 OpenStack 标准“X-Auth-Token”头不同的或额外的身份验证头。
如何获取身份验证头由插件决定。如果头仍然有效,则可以重用、从缓存中检索,或者插件可以调用对服务器的身份验证请求。
get_headers 的默认实现调用 get_token 方法,以使旧式插件能够继续正常运行。子类可以自由地完全覆盖此函数以提供他们想要的头。
返回 None 将指示无法检索到 token,并且授权失败。可以通过返回一个空字典来实现不添加任何身份验证数据。
- 参数:
session (keystoneauth1.session.Session) – 该认证插件所属的会话对象。
- 返回值:
用于验证消息的头,或者失败的 None。请注意,空字典是一个有效的、非失败的响应。
- 返回类型:
- get_project_id(session: ks_session.Session) str | None
返回插件认证到的项目 ID。
只要可能,项目 ID 应该从 token 推断出来,但是某些 URL 和其他地方需要访问当前认证的项目 ID。
- 参数:
session (keystoneauth1.session.Session) – 一个会话对象,以便插件可以进行 HTTP 调用。
- 返回值:
一个项目标识符,如果不可用则为 None。
- 返回类型:
- get_sp_auth_url(session: ks_session.Session, sp_id: str) str | None
从服务提供商对象返回 auth_url。
此 URL 用于从远程云获取未作用域的联合 token。
- 参数:
sp_id (string) – 要查询的服务提供商的 ID。
- 返回值:
一个服务提供商 auth_url,如果不可用则为 None。
- 返回类型:
- get_sp_url(session: ks_session.Session, sp_id: str) str | None
从服务提供商对象返回 sp_url。
此 URL 用于将 SAML2 断言传递到远程云。
- get_token(session: ks_session.Session) str | None
获取令牌。
令牌的获取方式由插件决定。如果它仍然有效,则可以重用、从缓存中检索或调用服务器上的身份验证请求。
返回 None 将指示无法检索到令牌。
此函数放置不当,因为它仅应需要使用“X-Auth-Token”标头的身份验证插件。但是,由于插件的演变方式,此方法是必需的,并且通常被调用以触发新插件上的身份验证请求。
在实现新插件时,建议您实现此方法,但是,如果您不需要“X-Auth-Token”标头,请改写 get_headers 方法。
- 参数:
session (keystoneauth1.session.Session) – 一个会话对象,以便插件可以进行 HTTP 调用。
- 返回值:
要使用的令牌。
- 返回类型:
字符串