keystoneauth1.plugin 模块¶
- class keystoneauth1.plugin.BaseAuthPlugin
基类:
object身份验证插件的基本结构。
注意
有关此库提供的插件的描述,请参阅身份验证插件。
- __annotations__ = {}
- __dict__ = mappingproxy({'__module__': 'keystoneauth1.plugin', '__doc__': '身份验证插件的基本结构。\n\n .. note::\n 有关此库提供的插件的描述,请参阅 :doc:`/authentication-plugins` 。\n\n ' '__init__': <function BaseAuthPlugin.__init__>, 'get_token': <function BaseAuthPlugin.get_token>, 'get_auth_ref': <function BaseAuthPlugin.get_auth_ref>, 'get_headers': <function BaseAuthPlugin.get_headers>, 'get_endpoint_data': <function BaseAuthPlugin.get_endpoint_data>, 'get_api_major_version': <function BaseAuthPlugin.get_api_major_version>, 'get_all_version_data': <function BaseAuthPlugin.get_all_version_data>, 'get_endpoint': <function BaseAuthPlugin.get_endpoint>, 'get_connection_params': <function BaseAuthPlugin.get_connection_params>, 'invalidate': <function BaseAuthPlugin.invalidate>, 'get_user_id': <function BaseAuthPlugin.get_user_id>, 'get_project_id': <function BaseAuthPlugin.get_project_id>, 'get_sp_auth_url': <function BaseAuthPlugin.get_sp_auth_url>, 'get_sp_url': <function BaseAuthPlugin.get_sp_url>, 'get_cache_id': <function BaseAuthPlugin.get_cache_id>, 'get_auth_state': <function BaseAuthPlugin.get_auth_state>, 'set_auth_state': <function BaseAuthPlugin.set_auth_state>, '__dict__': <attribute '__dict__' of 'BaseAuthPlugin' objects>, '__weakref__': <attribute '__weakref__' of 'BaseAuthPlugin' objects>, '__annotations__': {'_discovery_cache': 'dict[str, discover.Discover]'}})
- __doc__ = '身份验证插件的基本结构。\n\n .. note::\n 有关此库提供的插件的描述,请参阅 :doc:`/authentication-plugins` 。\n\n '
- __init__() None
- __module__ = 'keystoneauth1.plugin'
- __weakref__
对该对象的弱引用列表
- get_all_version_data(session: ks_session.Session, interface: str | list[str] | None = 'public', region_name: str | None = None, service_type: str | None = None) dict[str, dict[str, dict[str, list[VersionData]]]]
获取目录中所有服务的版本数据。
- 参数:
session (keystoneauth1.session.Session) – 可以用于通信的会话对象。
interface – 要获取版本数据的端点类型。可以是一个单一值或一个值列表。值为 None 表示应查询所有接口。(可选,默认为 public)
region_name (string) – 要获取版本数据的端点区域。值为 None 表示应查询所有区域。(可选,默认为 None)
service_type (string) – 限制版本数据到单个服务。(可选,默认为 None)
- 返回值:
一个字典,键为 region_name,值为包含字典的字典,字典的键为 interface,值为
VersionData列表。
- get_api_major_version(session: ks_session.Session, *, endpoint_override: str | None = None, **kwargs: Any) tuple[int | float, ...] | None
从端点获取 API 主版本。
- 参数:
session (keystoneauth1.session.Session) – 可以用于通信的会话对象。
endpoint_override (str) – 用于版本发现的 URL。
kwargs – 已忽略。
- 引发:
keystoneauth1.exceptions.http.HttpError – 来自无效 HTTP 响应的错误。
- 返回值:
有效的 EndpointData 或不可用的 None。
- 返回类型:
keystoneauth1.discover.EndpointData 或 None
- get_auth_ref(session: ks_session.Session) access.AccessInfo | None
返回身份验证插件的身份验证引用。
- 参数:
session (keystoneauth1.session.session) – 用于通信的会话对象
- 返回值:
如果支持,则为访问信息对象。
- 返回类型:
keystoneauth1.access.AccessInfo 或 None
- get_auth_state() object
检索插件当前的身份验证状态。
检索表示已身份验证插件的任何内部状态。
如果不存在,则不应获取任何新数据。
- 引发:
NotImplementedError – 如果插件不支持此功能。
- 返回值:
可以移入另一个(相同类型的)插件以具有相同身份验证状态的原始 Python 数据(可 JSON 序列化)。
- 返回类型:
对象或 None(如果未进行身份验证)。
- get_cache_id() str | None
获取唯一标识身份验证选项的标识符。
返回的标识符不必是可分解的,也不必提供任何方式来重新创建插件。它不应包含明文敏感数据。
如果用于唯一标识此插件的任何参数发生更改,则此字符串必须更改。
如果 get_cache_id 返回一个表明支持缓存的 str 值,那么 get_auth_cache 和 set_auth_cache 也必须实现。
- 返回值:
选项的唯一字符串
- 返回类型:
str 或如果不支持或不可用则为 None。
- 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_endpoint_data(session: ks_session.Session, *, endpoint_override: str | None = None, discover_versions: bool = True, **kwargs: Any) EndpointData | None
为服务返回有效的端点数据。
- 参数:
session (keystoneauth1.session.Session) – 可以用于通信的会话对象。
endpoint_override (str) – 用于版本发现的 URL。
discover_versions (bool) – 是否从版本发现文档中获取版本元数据,即使可以从 URL 推断出主要 API 版本信息。 (可选,默认为 True)
kwargs – 已忽略。
- 引发:
keystoneauth1.exceptions.http.HttpError – 来自无效 HTTP 响应的错误。
- 返回值:
有效的 EndpointData 或不可用的 None。
- 返回类型:
keystoneauth1.discover.EndpointData 或 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 调用。
- 返回值:
要使用的令牌。
- 返回类型:
字符串
- get_user_id(session: ks_session.Session) str | None
返回插件的唯一用户标识符。
只要可能,用户 ID 应该从 token 推断出来,但是某些 URL 和其他地方需要访问当前认证的用户 ID。
- 参数:
session (keystoneauth1.session.Session) – 一个会话对象,以便插件可以进行 HTTP 调用。
- 返回值:
一个用户标识符,如果不可用则为 None。
- 返回类型:
- invalidate() bool
使当前的身份验证数据失效。
这应该导致在下次调用时获取新的 token。
如果返回 Unauthorized HTTP 响应以指示 token 可能已被撤销或现在无效,则插件可能会失效。
- 返回值:
如果插件执行了某些操作以使其失效,则为 True。这意味着尝试再次是有意义的。如果未发生任何事情,则返回 False 以指示放弃。
- 返回类型:
- set_auth_state(data: str) None
安装插件现有的身份验证状态。
获取 get_auth_state 的输出,并将该身份验证状态安装到当前的身份验证插件中。
- 引发:
NotImplementedError – 如果插件不支持此功能。
- class keystoneauth1.plugin.ConnectionParams
Bases:
TypedDict- __annotations__ = {'cert': typing.NotRequired[str | tuple[str, str] | None], 'verify': typing.NotRequired[bool | str | None]}
- __dict__ = mappingproxy({'__module__': 'keystoneauth1.plugin', '__annotations__': {'cert': typing.NotRequired[str | tuple[str, str] | None], 'verify': typing.NotRequired[bool | str | None]}, '__orig_bases__': (<function TypedDict>,), '__dict__': <attribute '__dict__' of 'ConnectionParams' objects>, '__weakref__': <attribute '__weakref__' of 'ConnectionParams' objects>, '__doc__': None, '__required_keys__': frozenset(), '__optional_keys__': frozenset({'verify', 'cert'}), '__total__': True})
- __doc__ = None
- __module__ = 'keystoneauth1.plugin'
- __optional_keys__ = frozenset({'cert', 'verify'})
- __orig_bases__ = (<function TypedDict>,)
- __required_keys__ = frozenset({})
- __total__ = True
- __weakref__
对该对象的弱引用列表
- verify: NotRequired[bool | str | None]
- class keystoneauth1.plugin.FixedEndpointPlugin(endpoint: str | None = None)
基类:
BaseAuthPlugin具有固定端点的插件的基类。
- __annotations__ = {}
- __doc__ = '具有固定端点的插件的基类。'
- __module__ = 'keystoneauth1.plugin'
- get_endpoint(session: ks_session.Session, endpoint_override: str | None = None, **kwargs: Any) str | None
返回提供的端点。
使用此插件,无论传递给插件的参数如何,都会返回相同的端点。endpoint_override 覆盖了构造插件时指定的端点。
- get_endpoint_data(session: ks_session.Session, *, endpoint_override: str | None = None, discover_versions: bool = True, **kwargs: Any) EndpointData | None
返回服务有效的端点数据。
- 参数:
session (keystoneauth1.session.Session) – 可以用于通信的会话对象。
endpoint_override (str) – 用于版本发现的 URL。
discover_versions (bool) – 是否从版本发现文档中获取版本元数据,即使可以从 URL 推断出主要 API 版本信息。 (可选,默认为 True)
kwargs – 已忽略。
- 引发:
keystoneauth1.exceptions.http.HttpError – 来自无效 HTTP 响应的错误。
- 返回值:
有效的 EndpointData 或不可用的 None。
- 返回类型:
keystoneauth1.discover.EndpointData 或 None