2.3. OAuth 2.0 身份验证和授权
此发行版本包括对基于 OAuth 2.0 令牌的身份验证和授权的以下增强。
会话重新身份验证
AMQ Streams 中的 OAuth 2.0 身份验证现在支持 Kafka 代理的 会话重新身份验证。这定义了 Kafka 客户端和 Kafka 代理之间经过身份验证的 OAuth 2.0 会话的最长持续时间。会话重新身份验证支持两种类型的令牌验证:快速本地 JWT 和内省端点。
要配置会话重新身份验证,请使用 Kafka 代理的 OAuth 2.0 配置中新的 maxSecondsWithoutReauthentication 选项。
对于特定的监听程序,maxSecondsWithoutReauthentication 允许您:
- 启用会话重新身份验证
- 设置 Kafka 客户端和 Kafka 代理之间经过身份验证的会话的最大持续时间(以秒为单位)
会话重新验证在 1 小时后的配置示例
如果经过身份验证的会话超过配置的 maxSecondsWithoutReauthentication,或者达到访问令牌到期时间,则会关闭它。然后,客户端必须再次登录到授权服务器,获取新的访问令牌,然后重新身份验证到 Kafka 代理。这将在现有连接上创建一个新的经过身份验证的会话。
当下次需要重新身份验证时,客户端尝试的任何操作(不包括重新身份验证)将导致代理终止连接。
请参阅:Kafka 代理的 会话重新身份验证以及 配置 Kafka 代理的 OAuth 2.0 支持。
JWKS 密钥刷新间隔
将 Kafka 代理配置为使用快速本地 JWT 令牌验证时,您现在可以在外部监听程序配置中设置 jwksMinRefreshPauseSeconds 选项。这会定义代理尝试刷新授权服务器发布的 JSON Web 密钥集(JWKS)公钥尝试之间的最小间隔。
在这个版本中,如果 Kafka 代理检测到未知签名密钥,它会尝试立即刷新 JWKS 密钥,而无需等待常规刷新计划。
尝试刷新 JWKS 密钥之间暂停 2 分钟的示例
JWKS 密钥刷新计划在 jwksRefreshSeconds 选项中设置。当遇到未知的签名密钥时,会在刷新计划外调度 JWKS 密钥刷新。刷新将持续到自上次刷新以来的时间到达 jwksMinRefreshPauseSeconds 中指定的间隔。
jwksMinRefreshPauseSeconds 的默认值为 1。
请参阅 为 Kafka 代理配置 OAuth 2.0 支持。
从 Red Hat Single Sign-On 刷新授权
通过红帽单点登录,为基于 OAuth 2.0 令牌的授权添加了新的配置选项。在配置 Kafka 代理时,现在可以定义以下与从 Red Hat SSO 授权服务刷新授权相关的选项:
-
grantRefreshPeriodSeconds:连续两次的时间允许刷新运行。默认值为60。如果设置为0或以下,则禁用刷新授权。 -
grantsRefreshPoolSize:可以获取的线程数并行为活动会话授予。默认值为5。
请参阅 使用基于 OAuth 2.0 令牌的授权和 配置 OAuth 2.0 授权支持。
在 Red Hat Single Sign-On 中检测权限更改
在这个版本中,密钥克隆( Red Hat SSO)授权会定期检查活动会话的权限更改。现在,可以实时检测用户更改和权限管理更改。