2023.1 系列发布说明

10.1.0

新特性

  • [蓝图 oauth2-client-credentials-ext] 添加了 oauth2_token 过滤器,用于接受或拒绝包含通过 Authorization 标头作为 bearer 令牌传递的 OAuth2.0 客户端凭据访问令牌的传入请求。

10.0.0

升级说明

  • 已停止对 Python 3.6 和 3.7 的支持。现在支持的 Python 最低版本是 Python 3.8。

9.3.0

升级说明

  • [bug 1892852] [bug 1888394] [bug 1883659] Keystonemiddleware 现在默认使用 oslo.cache 库中的 eventlet-safe 实现的 MemcacheClientPoolkeystonemiddleware 实现现已弃用。为了向后兼容,可以将 [keystone_authtoken] memcache_use_advanced_pool 选项设置为 False,在各种服务的配置文件中(例如 nova、glance 等),当使用 memcached 作为令牌缓存时。

弃用说明

  • 当使用 eventlet 不安全的 keystonemiddleware 的 memcacheclientpool 时,不再建议使用。此实现可能会导致与 memcached 的连接不断增长。

    建议将 memcache_use_advanced_pool 选项设置为 True,在各种服务(例如 nova、glance 等)的 keystone_authtoken 配置部分中,当使用 memcached 作为令牌缓存时。

9.1.0

序言

由于移除了 Identity API v2,Keystone 不再具有需要使用 admin 端点才能实现的任何特殊功能。因此,此版本将默认使用的端点从 admin 更改为 internal,从而使部署无需 admin 端点即可工作。

升级说明

  • [bug 1830002] 默认 Identity 端点已从 admin 更改为 internal

9.0.0

升级说明

  • 已停止对 Python 2.7 的支持。keystonemiddleware 支持 python 2.7 的最后一个版本是 OpenStack Train。现在支持的 Python 最低版本是 Python 3.6。

8.0.0

升级说明

  • [bug 1845539] [bug 1777177] keystonemiddleware 不再支持 keystone v2.0 api,所有相关功能已被移除。

其他说明

  • [bug 1845539] ec2 ‘url’ 配置选项现在默认设置为 https://:5000/v3/ec2tokens,并且移除了 ec2 v2.0 的支持。Keystonemiddleware 不再支持使用 v2.0 API 的 ec2tokens。

7.0.0

新特性

  • [规范] auth_token 中间件现在支持根据用户在其 keystone 应用程序凭据中提供的访问规则来接受或拒绝传入请求。

6.1.0

新特性

  • [bug 1830002] 为了允许安装在未部署管理身份端点的情况下工作,添加了一个新的选项 interface,允许选择在验证身份令牌时使用的身份端点。它默认设置为 admin 以复制旧行为,但可以根据需要设置为 publicinternal

6.0.0

新特性

  • [bug 1803940] 将请求 ID 和全局请求 ID 添加到 CADF 通知。

升级说明

  • [bug 1649735] Keystonemiddleware 不再支持 PKI/PKIZ 令牌,所有相关的离线验证已被删除。已删除配置选项 signing_dirhash_algorithms,如果它们仍然存在于您的配置中,现在可以安全地删除它们。请考虑使用较新的 fernet 或 JWS 令牌格式。

错误修复

  • [bug 1649735] auth_token 中间件不再尝试从 Keystone 服务器检索撤销列表。已删除弃用的选项 revocations_cache_timecheck_revocations_for_cached。Keystone 不再发布 PKI/PKIZ 令牌,现在 keystonemiddleware 对 PKI/PKIZ 和相关的离线验证的支持已被删除。这包括弃用的配置选项 signing_dirhash_algorithms

  • [bug 1800017] 修复审计中间件服务目录解析问题,针对服务不包含任何端点的情况。在这种情况下,我们应该跳过该服务。

  • [bug 1809101] 修复 req.context of Keystone audit middleware 和 Glance 冲突问题。审计中间件现在将 admin context 存储到 req.environ['audit.context']。

  • [bug 1813739] 当未创建管理身份端点时,keystonemiddleware 发出 EndpointNotFound 异常。即使在创建管理身份端点之后,auth_token 中间件也无法收到更新通知,因为它不会使现有身份验证失效。添加一个使无效步骤,以便可以检测到端点更新。

  • [bug 1797584] 修复了审计代码在 OpenStack 服务端点未使用唯一的 TCP 端口时会选择错误目标服务的问题。

5.3.0

错误修复

  • [bug 1789351] 修复了在初始化 AuthProtocol 时,如果输入 CONF 对象包含弃用的选项,则会引发“dictionary changed size during iteration”错误的错误。

  • 当启用 delay_auth_decision 时,如果 Keystone 故障阻止最终确定令牌是否有效或无效,它将被标记为无效,并且应用程序将负责最终身份验证决策。这类似于在确认令牌有效时发生的情况。这允许 Keystone 中断仅影响多重身份验证系统中的 Keystone 用户。

5.1.0

新特性

  • [bug 1762362] 401 (Unauthorized) 响应中的 “WWW-Authenticate” 标头的值现在用双引号括起来,以符合 RFC 要求。

错误修复

  • [bug 1766731] Keystonemiddleware 现在支持系统范围令牌。当系统范围令牌由 auth_token 中间件解析时,它将相应地设置 OpenStack-System-Scope 标头。

5.0.0

新特性

  • [bug 1695038] 添加了 use_oslo_messaging 配置选项,用于 Swift 等服务,这些服务需要审计中间件使用本地记录器而不是 oslo.messaging 通知器,无论 oslo.messaging 包是否存在。将此选项设置为其默认值 True 以保持以前的行为不变 - 如果存在 oslo.messaging 包,审计中间件将使用 oslo.messaging 通知器,否则使用本地记录器。依赖于本地记录器进行审计通知的服务必须将此选项设置为 False。

错误修复

  • [bug/1747655] 当 keystone 暂时不可用时,keystonemiddleware 会正确地向 HTTP 客户端发送 503 响应,但没有识别哪个服务出现故障,导致混淆,不知道是 keystone 还是使用 keystonemiddleware 的服务不可用。此更改在错误响应中标识 keystone。

其他说明

  • BaseAuthProtocol 类中删除了 kwargs_to_fetch_token 设置。auth_token 的实现现在假定 kwargs 将传递给 fetch_token 方法。

4.20.0

错误修复

  • [bug 1737115] 上次发布意外地使 python-memcached 成为硬依赖项,这已更改为可选依赖项。

  • [bug 1737119] 如果应用程序没有使用全局 cfg.CONF 对象,则未从配置文件中读取配置。这已修复。

4.18.0

弃用说明

  • keystone_authtoken 的 auth_uri 参数已弃用,转而使用 www_authenticate_uri。auth_uri 选项通常与 keystoneauth 插件的 auth_url 参数混淆,该参数也始终需要。该参数指的是在用户需要重定向到 Identity 服务进行身份验证时返回的 WWW-Authenticate 标头。

4.16.0

升级说明

  • [bug 1677308] 从 pycryptocryptography 切换时没有升级影响。所有数据都将使用相同的块大小、填充、算法 (AES) 和模式 (CBC) 进行加密和解密。以前使用 pycrypto 加密的数据可以使用 pycryptocryptography 进行解密。同样,使用 cryptography 加密的数据也是如此。

错误修复

  • [bug 1677308] 删除了 pycrypto 依赖项,因为该库不再维护,并将其替换为 cryptography 库。

4.12.0

序言

现在允许在使用有效服务令牌时获取过期的令牌。 这将有助于长时间运行的操作,这些操作必须在服务之间持续进行,超过原始令牌的有效期。

新特性

  • AuthToken 中间件现在允许在存在有效服务令牌时获取过期的令牌。 此服务令牌必须包含 service_token_roles 中指定的任何一个角色。

  • 服务令牌会与有效角色的列表进行比较。 这将确保只有服务以 X-Service-Token 的形式提交令牌。 为了向后兼容,如果未设置 service_token_roles_required,将发出警告。 要正确执行检查,请将 service_token_roles_required 设置为 True。 目前默认值为 False

升级说明

  • service_token_roles 设置为服务可能拥有的角色列表。 可能的列表是 serviceadmin。 任何 service_token_roles 都可能适用以接受服务令牌。 确保服务用户具有其中一个角色,以便服务间通信能够正常工作。 验证后,将 service_token_roles_required 标志设置为 True 以强制执行此行为。 这将在未来的版本中成为默认设置。

弃用说明

  • 为了向后兼容,在 [keystone_authtoken] 中添加了 service_token_roles_required 选项。 该选项默认为 False,并立即被弃用。 这将允许当前行为,即验证服务令牌但不检查角色继续进行。 应该尽快将该选项设置为 True。 在未来的版本中,该选项将默认为 True

4.6.0

序言

  • 添加 X_IS_ADMIN_PROJECT 标头。

新特性

  • [bug 1583690] 对于 Swift 等可能未使用 oslo_config 的服务,我们需要能够从本地配置确定项目名称。如果项目名称同时在本地配置和 oslo_config 中指定,则使用本地配置中的项目名称。如果项目名称未确定(即未设置),我们使用 taxonomy.UNKNOWN 作为指示器,以便操作员采取纠正措施。

  • [bug 1540115] 可选依赖项现在可以使用 extras 进行安装。要安装审计相关库,请使用 pip install keystonemiddleware[audit_nofications]。有关更多信息,请参阅 keystonemiddleware 文档。

  • 已将 X_IS_ADMIN_PROJECT 标头添加到经过身份验证的标头中。该字符串值为“True”或“False”,可用于强制执行管理员项目策略。

错误修复

  • [bug 1583699] 某些服务 API(例如 Swift 列出公共容器)不需要令牌。因此,将没有身份或服务目录信息。在这种情况下,审计现在为发起者和目标填充默认值(即 taxonomy.UNKNOWN),而不是引发异常。

  • [bug 1583702] 某些服务,例如 Swift,不使用 Oslo(全局)配置。在这种情况下,选项通过本地配置传递。此补丁利用了 auth_token 中间件中已建立的模式,即首先在本地配置中查找给定的选项,然后在 Oslo 全局配置中查找。

4.5.0

新特性

  • [bug 1544840] 添加审计中间件特定的通知相关配置,以允许在需要时使用不同的通知驱动程序和传输方式进行审计。

  • 为 s3token 中间件添加了一个新的配置选项,名为 auth_uri,可用于设置用于身份验证的 URI。这取代了 auth_host、auth_port 和 auth_protocol。

弃用说明

  • s3token 中间件的 auth_host、auth_port 和 auth_protocol 配置选项现已弃用。

4.3.0

新特性

  • [bug 1540022] auth_token 中间件现在将接受名为 oslo_config_config 的 conf 设置。如果设置了此项,则其值必须是现有的 oslo_config ConfigOptsoslo_config_config 优先于 oslo_config_project。此功能对于自行实例化 auth_token 中间件并希望使用现有配置的应用程序非常有用。

4.2.0

弃用说明

  • 随着 keystonemiddleware 4.2.0 的发布,我们不再建议使用进程内令牌缓存。进程内缓存可能导致验证不一致、用户体验差和竞争条件。建议在各种服务(例如 nova、glance 等)的 keystone_authtoken 配置部分中设置 memcached_servers 选项,并使用正在运行的 memcached 服务器的端点。未设置 memcached_servers 选项时,该功能将被删除,keystone 将更频繁地验证令牌,从而增加负载。在生产环境中,强烈建议使用缓存。此功能自 4.2.0 起已弃用,目标是在 keystonemiddleware 5.0.0 或在 O 开发周期中(以较晚者为准)将其删除。

4.1.0

新特性

  • [bug 1490804] auth_token 中间件在身份服务器在令牌撤销列表中包含审计 ID 时,将在离线令牌验证期间验证令牌的审计 ID。

安全问题

  • [bug 1490804] [CVE-2015-7546] 修复了一个错误,即当使用 PKI 或 PKIZ 令牌提供程序时,攻击者可以避免令牌撤销。此漏洞的完整修复需要 Identity(keystone)项目中的相应修复。

错误修复

  • [bug 1523311] 不要在示例配置中列出已弃用的选项。

  • [bug 1333951] 添加对解析 ec2 的 AWS v4 的支持。

  • [bug 1423973] 为配置选项使用 oslo.config 选项。