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 库的参数。只有 certverify 参数可能会被返回。

返回类型:

dict

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。请注意,空字典是一个有效的、非失败的响应。

返回类型:

dict

get_project_id(session: ks_session.Session) str | None

返回插件认证到的项目 ID。

只要可能,项目 ID 应该从 token 推断出来,但是某些 URL 和其他地方需要访问当前认证的项目 ID。

参数:

session (keystoneauth1.session.Session) – 一个会话对象,以便插件可以进行 HTTP 调用。

返回值:

一个项目标识符,如果不可用则为 None。

返回类型:

str

get_sp_auth_url(session: ks_session.Session, sp_id: str) str | None

从服务提供商对象返回 auth_url。

此 URL 用于从远程云获取未作用域的联合 token。

参数:

sp_id (string) – 要查询的服务提供商的 ID。

返回值:

一个服务提供商 auth_url,如果不可用则为 None。

返回类型:

str

get_sp_url(session: ks_session.Session, sp_id: str) str | None

从服务提供商对象返回 sp_url。

此 URL 用于将 SAML2 断言传递到远程云。

参数:

sp_id (str) – 要查询的服务提供商的 ID。

返回值:

一个服务提供商 sp_url,如果不可用则为 None。

返回类型:

str

get_token(session: ks_session.Session) str | None

获取令牌。

令牌的获取方式由插件决定。如果它仍然有效,则可以重用、从缓存中检索或调用服务器上的身份验证请求。

返回 None 将指示无法检索到令牌。

此函数放置不当,因为它仅应需要使用“X-Auth-Token”标头的身份验证插件。但是,由于插件的演变方式,此方法是必需的,并且通常被调用以触发新插件上的身份验证请求。

在实现新插件时,建议您实现此方法,但是,如果您不需要“X-Auth-Token”标头,请改写 get_headers 方法。

参数:

session (keystoneauth1.session.Session) – 一个会话对象,以便插件可以进行 HTTP 调用。

返回值:

要使用的令牌。

返回类型:

字符串

get_user_id(session: ks_session.Session) str | None

返回插件的唯一用户标识符。

只要可能,用户 ID 应该从 token 推断出来,但是某些 URL 和其他地方需要访问当前认证的用户 ID。

参数:

session (keystoneauth1.session.Session) – 一个会话对象,以便插件可以进行 HTTP 调用。

返回值:

一个用户标识符,如果不可用则为 None。

返回类型:

str

invalidate() bool

使当前的身份验证数据失效。

这应该导致在下次调用时获取新的 token。

如果返回 Unauthorized HTTP 响应以指示 token 可能已被撤销或现在无效,则插件可能会失效。

返回值:

如果插件执行了某些操作以使其失效,则为 True。这意味着尝试再次是有意义的。如果未发生任何事情,则返回 False 以指示放弃。

返回类型:

bool