令牌

一旦用户通过身份验证,就会生成一个令牌用于 OpenStack 环境的授权和访问。令牌可以具有不同的生命周期;但是,默认的过期值为一小时。建议将过期值设置为较低的值,该值允许内部服务完成任务的时间足够。如果令牌在任务完成之前过期,云可能会无响应或停止提供服务。使用期间的扩展时间示例是 Compute 服务将磁盘镜像传输到 hypervisor 以进行本地缓存所需的时间。在使用有效的服务令牌时,获取过期的令牌是被允许的。

令牌通常在 Identity 服务响应的更大结构内传递。这些响应还提供各种 OpenStack 服务的目录。每个服务都列出了其名称、内部、管理和公共访问的访问端点。

可以使用 identity API 撤销令牌。

在 Stein 版本中,有两种受支持的令牌类型:fernet 和 JWT。

Fernet 和 JWT 令牌都不需要持久化。Keystone 令牌数据库不再因身份验证而膨胀。过期令牌的修剪会自动发生。跨多个节点复制也不再需要。只要每个 Keystone 节点共享相同的存储库,就可以在所有节点上立即创建和验证令牌。

Fernet 令牌

Fernet 令牌是 Stein(默认)支持的令牌提供程序。Fernet 是一种安全消息格式,专门设计用于 API 令牌。它们重量轻(范围在 180 到 240 字节之间),并减少了运行云所需的运营开销。身份验证和授权元数据被整齐地打包到打包的消息负载中,然后加密并签名,作为 fernet 令牌。

JWT 令牌

JSON Web Signature (JWS) 令牌是在 Stein 版本中引入的。与 fernet 相比,JWS 通过限制需要共享对称加密密钥的主机数量,为运营商提供潜在的好处。这有助于防止可能已经进入您部署的恶意行为者蔓延到其他节点。

有关这些令牌提供程序之间差异的更多详细信息,请参见此处 https://docs.openstack.org/keystone/2025.2/admin/tokens-overview.html#token-providers