keystone.token.token_formatters 模块

class keystone.token.token_formatters.ApplicationCredentialScopedPayload[source]

基类: BasePayload

classmethod assemble(user_id, methods, system, project_id, domain_id, expires_at, audit_ids, trust_id, federated_group_ids, identity_provider_id, protocol_id, access_token_id, app_cred_id, thumbprint)[source]

组装令牌的有效载荷。

参数:
  • user_id – 令牌请求中的用户标识符

  • methods – 使用的身份验证方法列表

  • system – 包含系统范围信息的字符串

  • project_id – 要限定到的项目的 ID

  • domain_id – 要限定到的域的 ID

  • expires_at – 令牌的过期时间

  • audit_ids – 令牌的审计 ID 列表

  • trust_id – 生效的信任 ID

  • federated_group_ids – 来自 SAML 断言的组 ID 列表

  • identity_provider_id – 用户的身份提供商 ID

  • protocol_id – 用于身份验证的联合协议

  • access_token_id – OAuth1 身份验证中的密钥的 ID

  • app_cred_id – 生效的应用程序凭证 ID

  • thumbprint – OAuth2 mTLS 中证书的指纹

返回值:

令牌的有效载荷

classmethod disassemble(payload)[source]

将未限定的有效载荷解组为组件数据。

元组由

(user_id, methods, system, project_id, domain_id,
 expires_at_str, audit_ids, trust_id, federated_group_ids,
 identity_provider_id, protocol_id,` access_token_id, app_cred_id)
  • methods 是身份验证方法。

如果它们不适用于此有效载荷类型,则字段将设置为 None。

参数:

payload – 这种变体的有效载荷

返回值:

有效载荷组件数据的元组

version: int = 9
class keystone.token.token_formatters.BasePayload[source]

基类: object

classmethod assemble(user_id, methods, system, project_id, domain_id, expires_at, audit_ids, trust_id, federated_group_ids, identity_provider_id, protocol_id, access_token_id, app_cred_id, thumbprint)[source]

组装令牌的有效载荷。

参数:
  • user_id – 令牌请求中的用户标识符

  • methods – 使用的身份验证方法列表

  • system – 包含系统范围信息的字符串

  • project_id – 要限定到的项目的 ID

  • domain_id – 要限定到的域的 ID

  • expires_at – 令牌的过期时间

  • audit_ids – 令牌的审计 ID 列表

  • trust_id – 生效的信任 ID

  • federated_group_ids – 来自 SAML 断言的组 ID 列表

  • identity_provider_id – 用户的身份提供商 ID

  • protocol_id – 用于身份验证的联合协议

  • access_token_id – OAuth1 身份验证中的密钥的 ID

  • app_cred_id – 生效的应用程序凭证 ID

  • thumbprint – OAuth2 mTLS 中证书的指纹

返回值:

令牌的有效载荷

classmethod attempt_convert_uuid_hex_to_bytes(value)[source]

尝试将值转换为字节或返回该值。

参数:

value – 要尝试转换为字节的值

返回值:

元组包含一个布尔值,指示是否将 user_id 存储为字节以及 uuid 值作为字节,或者原始值

classmethod base64_encode(s)[source]

编码 URL 安全字符串。

返回类型:

str

classmethod convert_uuid_bytes_to_hex(uuid_byte_string)[source]

基于字节字符串生成 uuid.hex 格式。

参数:

uuid_byte_string – 要生成的 uuid 字符串

返回值:

uuid 十六进制格式的字符串

classmethod convert_uuid_hex_to_bytes(uuid_string)[source]

将 UUID 格式的字符串压缩为字节。

参数:

uuid_string – 要压缩为字节的 uuid 字符串

返回值:

uuid 的字节表示形式

classmethod disassemble(payload)[source]

将未限定的有效载荷解组为组件数据。

元组由

(user_id, methods, system, project_id, domain_id,
 expires_at_str, audit_ids, trust_id, federated_group_ids,
 identity_provider_id, protocol_id,` access_token_id, app_cred_id)
  • methods 是身份验证方法。

如果它们不适用于此有效载荷类型,则字段将设置为 None。

参数:

payload – 这种变体的有效载荷

返回值:

有效载荷组件数据的元组

classmethod random_urlsafe_str_to_bytes(s)[source]

将来自 random_urlsafe_str() 的字符串转换为字节。

返回类型:

bytes

version: int
class keystone.token.token_formatters.DomainScopedPayload[source]

基类: BasePayload

classmethod assemble(user_id, methods, system, project_id, domain_id, expires_at, audit_ids, trust_id, federated_group_ids, identity_provider_id, protocol_id, access_token_id, app_cred_id, thumbprint)[source]

组装令牌的有效载荷。

参数:
  • user_id – 令牌请求中的用户标识符

  • methods – 使用的身份验证方法列表

  • system – 包含系统范围信息的字符串

  • project_id – 要限定到的项目的 ID

  • domain_id – 要限定到的域的 ID

  • expires_at – 令牌的过期时间

  • audit_ids – 令牌的审计 ID 列表

  • trust_id – 生效的信任 ID

  • federated_group_ids – 来自 SAML 断言的组 ID 列表

  • identity_provider_id – 用户的身份提供商 ID

  • protocol_id – 用于身份验证的联合协议

  • access_token_id – OAuth1 身份验证中的密钥的 ID

  • app_cred_id – 生效的应用程序凭证 ID

  • thumbprint – OAuth2 mTLS 中证书的指纹

返回值:

令牌的有效载荷

classmethod disassemble(payload)[source]

将未限定的有效载荷解组为组件数据。

元组由

(user_id, methods, system, project_id, domain_id,
 expires_at_str, audit_ids, trust_id, federated_group_ids,
 identity_provider_id, protocol_id,` access_token_id, app_cred_id)
  • methods 是身份验证方法。

如果它们不适用于此有效载荷类型,则字段将设置为 None。

参数:

payload – 这种变体的有效载荷

返回值:

有效载荷组件数据的元组

version: int = 1
class keystone.token.token_formatters.FederatedDomainScopedPayload[source]

基类: FederatedScopedPayload

version: int = 6
class keystone.token.token_formatters.FederatedProjectScopedPayload[source]

基类: FederatedScopedPayload

version: int = 5
class keystone.token.token_formatters.FederatedScopedPayload[source]

基类: FederatedUnscopedPayload

classmethod assemble(user_id, methods, system, project_id, domain_id, expires_at, audit_ids, trust_id, federated_group_ids, identity_provider_id, protocol_id, access_token_id, app_cred_id, thumbprint)[source]

组装令牌的有效载荷。

参数:
  • user_id – 令牌请求中的用户标识符

  • methods – 使用的身份验证方法列表

  • system – 包含系统范围信息的字符串

  • project_id – 要限定到的项目的 ID

  • domain_id – 要限定到的域的 ID

  • expires_at – 令牌的过期时间

  • audit_ids – 令牌的审计 ID 列表

  • trust_id – 生效的信任 ID

  • federated_group_ids – 来自 SAML 断言的组 ID 列表

  • identity_provider_id – 用户的身份提供商 ID

  • protocol_id – 用于身份验证的联合协议

  • access_token_id – OAuth1 身份验证中的密钥的 ID

  • app_cred_id – 生效的应用程序凭证 ID

  • thumbprint – OAuth2 mTLS 中证书的指纹

返回值:

令牌的有效载荷

classmethod disassemble(payload)[source]

将未限定的有效载荷解组为组件数据。

元组由

(user_id, methods, system, project_id, domain_id,
 expires_at_str, audit_ids, trust_id, federated_group_ids,
 identity_provider_id, protocol_id,` access_token_id, app_cred_id)
  • methods 是身份验证方法。

如果它们不适用于此有效载荷类型,则字段将设置为 None。

参数:

payload – 这种变体的有效载荷

返回值:

有效载荷组件数据的元组

class keystone.token.token_formatters.FederatedUnscopedPayload[source]

基类: BasePayload

classmethod assemble(user_id, methods, system, project_id, domain_id, expires_at, audit_ids, trust_id, federated_group_ids, identity_provider_id, protocol_id, access_token_id, app_cred_id, thumbprint)[source]

组装令牌的有效载荷。

参数:
  • user_id – 令牌请求中的用户标识符

  • methods – 使用的身份验证方法列表

  • system – 包含系统范围信息的字符串

  • project_id – 要限定到的项目的 ID

  • domain_id – 要限定到的域的 ID

  • expires_at – 令牌的过期时间

  • audit_ids – 令牌的审计 ID 列表

  • trust_id – 生效的信任 ID

  • federated_group_ids – 来自 SAML 断言的组 ID 列表

  • identity_provider_id – 用户的身份提供商 ID

  • protocol_id – 用于身份验证的联合协议

  • access_token_id – OAuth1 身份验证中的密钥的 ID

  • app_cred_id – 生效的应用程序凭证 ID

  • thumbprint – OAuth2 mTLS 中证书的指纹

返回值:

令牌的有效载荷

classmethod disassemble(payload)[source]

将未限定的有效载荷解组为组件数据。

元组由

(user_id, methods, system, project_id, domain_id,
 expires_at_str, audit_ids, trust_id, federated_group_ids,
 identity_provider_id, protocol_id,` access_token_id, app_cred_id)
  • methods 是身份验证方法。

如果它们不适用于此有效载荷类型,则字段将设置为 None。

参数:

payload – 这种变体的有效载荷

返回值:

有效载荷组件数据的元组

classmethod pack_group_id(group_dict)[source]
classmethod unpack_group_id(group_id_in_bytes)[source]
version: int = 4
class keystone.token.token_formatters.Oauth2CredentialsScopedPayload[source]

基类: BasePayload

classmethod assemble(user_id, methods, system, project_id, domain_id, expires_at, audit_ids, trust_id, federated_group_ids, identity_provider_id, protocol_id, access_token_id, app_cred_id, thumbprint)[source]

组装令牌的有效载荷。

参数:
  • user_id – 令牌请求中的用户标识符

  • methods – 使用的身份验证方法列表

  • system – 包含系统范围信息的字符串

  • project_id – 要限定到的项目的 ID

  • domain_id – 要限定到的域的 ID

  • expires_at – 令牌的过期时间

  • audit_ids – 令牌的审计 ID 列表

  • trust_id – 生效的信任 ID

  • federated_group_ids – 来自 SAML 断言的组 ID 列表

  • identity_provider_id – 用户的身份提供商 ID

  • protocol_id – 用于身份验证的联合协议

  • access_token_id – OAuth1 身份验证中的密钥的 ID

  • app_cred_id – 生效的应用程序凭证 ID

  • thumbprint – OAuth2 mTLS 中证书的指纹

返回值:

令牌的有效载荷

classmethod disassemble(payload)[source]

将未限定的有效载荷解组为组件数据。

元组由

(user_id, methods, system, project_id, domain_id,
 expires_at_str, audit_ids, trust_id, federated_group_ids,
 identity_provider_id, protocol_id,` access_token_id, app_cred_id)
  • methods 是身份验证方法。

如果它们不适用于此有效载荷类型,则字段将设置为 None。

参数:

payload – 这种变体的有效载荷

返回值:

有效载荷组件数据的元组

version: int = 10
class keystone.token.token_formatters.OauthScopedPayload[source]

基类: BasePayload

classmethod assemble(user_id, methods, system, project_id, domain_id, expires_at, audit_ids, trust_id, federated_group_ids, identity_provider_id, protocol_id, access_token_id, app_cred_id, thumbprint)[source]

组装令牌的有效载荷。

参数:
  • user_id – 令牌请求中的用户标识符

  • methods – 使用的身份验证方法列表

  • system – 包含系统范围信息的字符串

  • project_id – 要限定到的项目的 ID

  • domain_id – 要限定到的域的 ID

  • expires_at – 令牌的过期时间

  • audit_ids – 令牌的审计 ID 列表

  • trust_id – 生效的信任 ID

  • federated_group_ids – 来自 SAML 断言的组 ID 列表

  • identity_provider_id – 用户的身份提供商 ID

  • protocol_id – 用于身份验证的联合协议

  • access_token_id – OAuth1 身份验证中的密钥的 ID

  • app_cred_id – 生效的应用程序凭证 ID

  • thumbprint – OAuth2 mTLS 中证书的指纹

返回值:

令牌的有效载荷

classmethod disassemble(payload)[source]

将未限定的有效载荷解组为组件数据。

元组由

(user_id, methods, system, project_id, domain_id,
 expires_at_str, audit_ids, trust_id, federated_group_ids,
 identity_provider_id, protocol_id,` access_token_id, app_cred_id)
  • methods 是身份验证方法。

如果它们不适用于此有效载荷类型,则字段将设置为 None。

参数:

payload – 这种变体的有效载荷

返回值:

有效载荷组件数据的元组

version: int = 7
class keystone.token.token_formatters.ProjectScopedPayload[source]

基类: BasePayload

classmethod assemble(user_id, methods, system, project_id, domain_id, expires_at, audit_ids, trust_id, federated_group_ids, identity_provider_id, protocol_id, access_token_id, app_cred_id, thumbprint)[source]

组装令牌的有效载荷。

参数:
  • user_id – 令牌请求中的用户标识符

  • methods – 使用的身份验证方法列表

  • system – 包含系统范围信息的字符串

  • project_id – 要限定到的项目的 ID

  • domain_id – 要限定到的域的 ID

  • expires_at – 令牌的过期时间

  • audit_ids – 令牌的审计 ID 列表

  • trust_id – 生效的信任 ID

  • federated_group_ids – 来自 SAML 断言的组 ID 列表

  • identity_provider_id – 用户的身份提供商 ID

  • protocol_id – 用于身份验证的联合协议

  • access_token_id – OAuth1 身份验证中的密钥的 ID

  • app_cred_id – 生效的应用程序凭证 ID

  • thumbprint – OAuth2 mTLS 中证书的指纹

返回值:

令牌的有效载荷

classmethod disassemble(payload)[source]

将未限定的有效载荷解组为组件数据。

元组由

(user_id, methods, system, project_id, domain_id,
 expires_at_str, audit_ids, trust_id, federated_group_ids,
 identity_provider_id, protocol_id,` access_token_id, app_cred_id)
  • methods 是身份验证方法。

如果它们不适用于此有效载荷类型,则字段将设置为 None。

参数:

payload – 这种变体的有效载荷

返回值:

有效载荷组件数据的元组

version: int = 2
class keystone.token.token_formatters.SystemScopedPayload[source]

基类: BasePayload

classmethod assemble(user_id, methods, system, project_id, domain_id, expires_at, audit_ids, trust_id, federated_group_ids, identity_provider_id, protocol_id, access_token_id, app_cred_id, thumbprint)[source]

组装令牌的有效载荷。

参数:
  • user_id – 令牌请求中的用户标识符

  • methods – 使用的身份验证方法列表

  • system – 包含系统范围信息的字符串

  • project_id – 要限定到的项目的 ID

  • domain_id – 要限定到的域的 ID

  • expires_at – 令牌的过期时间

  • audit_ids – 令牌的审计 ID 列表

  • trust_id – 生效的信任 ID

  • federated_group_ids – 来自 SAML 断言的组 ID 列表

  • identity_provider_id – 用户的身份提供商 ID

  • protocol_id – 用于身份验证的联合协议

  • access_token_id – OAuth1 身份验证中的密钥的 ID

  • app_cred_id – 生效的应用程序凭证 ID

  • thumbprint – OAuth2 mTLS 中证书的指纹

返回值:

令牌的有效载荷

classmethod disassemble(payload)[source]

将未限定的有效载荷解组为组件数据。

元组由

(user_id, methods, system, project_id, domain_id,
 expires_at_str, audit_ids, trust_id, federated_group_ids,
 identity_provider_id, protocol_id,` access_token_id, app_cred_id)
  • methods 是身份验证方法。

如果它们不适用于此有效载荷类型,则字段将设置为 None。

参数:

payload – 这种变体的有效载荷

返回值:

有效载荷组件数据的元组

version: int = 8
class keystone.token.token_formatters.TokenFormatter[source]

基类: object

将有效载荷打包和解包成用于传输的令牌。

create_token(user_id, expires_at, audit_ids, payload_class, methods=None, system=None, domain_id=None, project_id=None, trust_id=None, federated_group_ids=None, identity_provider_id=None, protocol_id=None, access_token_id=None, app_cred_id=None, thumbprint=None)[source]

根据一组有效载荷属性,生成 Fernet 令牌。

classmethod creation_time(fernet_token)[source]

返回有效 Fernet 令牌的创建时间。

property crypto

返回一个加密实例。

你可以使用自定义的加密 @property 扩展这个类,以提供你自己的 token 编码/解码方式。例如,使用不同的密码学库(例如 python-keyczar)或满足任意安全要求。

这个 @property 只需要返回一个实现 encrypt(plaintext)decrypt(ciphertext) 的对象。

pack(payload)[source]

将 payload 打包成 token 供传输。

返回类型:

str

classmethod restore_padding(token)[source]

根据 token 大小恢复填充。

参数:

token (str) – 要恢复填充的 token

返回值:

带有正确填充的 token

unpack(token)[source]

解包 token 并验证 payload。

返回类型:

bytes

validate_token(token)[source]

验证 Fernet token 并返回 payload 属性。

class keystone.token.token_formatters.TrustScopedPayload[source]

基类: BasePayload

classmethod assemble(user_id, methods, system, project_id, domain_id, expires_at, audit_ids, trust_id, federated_group_ids, identity_provider_id, protocol_id, access_token_id, app_cred_id, thumbprint)[source]

组装令牌的有效载荷。

参数:
  • user_id – 令牌请求中的用户标识符

  • methods – 使用的身份验证方法列表

  • system – 包含系统范围信息的字符串

  • project_id – 要限定到的项目的 ID

  • domain_id – 要限定到的域的 ID

  • expires_at – 令牌的过期时间

  • audit_ids – 令牌的审计 ID 列表

  • trust_id – 生效的信任 ID

  • federated_group_ids – 来自 SAML 断言的组 ID 列表

  • identity_provider_id – 用户的身份提供商 ID

  • protocol_id – 用于身份验证的联合协议

  • access_token_id – OAuth1 身份验证中的密钥的 ID

  • app_cred_id – 生效的应用程序凭证 ID

  • thumbprint – OAuth2 mTLS 中证书的指纹

返回值:

令牌的有效载荷

classmethod disassemble(payload)[source]

将未限定的有效载荷解组为组件数据。

元组由

(user_id, methods, system, project_id, domain_id,
 expires_at_str, audit_ids, trust_id, federated_group_ids,
 identity_provider_id, protocol_id,` access_token_id, app_cred_id)
  • methods 是身份验证方法。

如果它们不适用于此有效载荷类型,则字段将设置为 None。

参数:

payload – 这种变体的有效载荷

返回值:

有效载荷组件数据的元组

version: int = 3
class keystone.token.token_formatters.UnscopedPayload[source]

基类: BasePayload

classmethod assemble(user_id, methods, system, project_id, domain_id, expires_at, audit_ids, trust_id, federated_group_ids, identity_provider_id, protocol_id, access_token_id, app_cred_id, thumbprint)[source]

组装令牌的有效载荷。

参数:
  • user_id – 令牌请求中的用户标识符

  • methods – 使用的身份验证方法列表

  • system – 包含系统范围信息的字符串

  • project_id – 要限定到的项目的 ID

  • domain_id – 要限定到的域的 ID

  • expires_at – 令牌的过期时间

  • audit_ids – 令牌的审计 ID 列表

  • trust_id – 生效的信任 ID

  • federated_group_ids – 来自 SAML 断言的组 ID 列表

  • identity_provider_id – 用户的身份提供商 ID

  • protocol_id – 用于身份验证的联合协议

  • access_token_id – OAuth1 身份验证中的密钥的 ID

  • app_cred_id – 生效的应用程序凭证 ID

  • thumbprint – OAuth2 mTLS 中证书的指纹

返回值:

令牌的有效载荷

classmethod disassemble(payload)[source]

将未限定的有效载荷解组为组件数据。

元组由

(user_id, methods, system, project_id, domain_id,
 expires_at_str, audit_ids, trust_id, federated_group_ids,
 identity_provider_id, protocol_id,` access_token_id, app_cred_id)
  • methods 是身份验证方法。

如果它们不适用于此有效载荷类型,则字段将设置为 None。

参数:

payload – 这种变体的有效载荷

返回值:

有效载荷组件数据的元组

version: int = 0