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 小时后的配置示例

apiVersion: kafka.strimzi.io/v1beta1
kind: Kafka
spec:
  kafka:
    listeners:
      #...
      - name: tls
        port: 9093
        type: internal
        tls: true
        authentication:
          type: oauth
          maxSecondsWithoutReauthentication: 3600
          # ...
Copy to Clipboard Toggle word wrap

如果经过身份验证的会话超过配置的 maxSecondsWithoutReauthentication,或者达到访问令牌到期时间,则会关闭它。然后,客户端必须再次登录到授权服务器,获取新的访问令牌,然后重新身份验证到 Kafka 代理。这将在现有连接上创建一个新的经过身份验证的会话。

当下次需要重新身份验证时,客户端尝试的任何操作(不包括重新身份验证)将导致代理终止连接。

请参阅:Kafka 代理的 会话重新身份验证以及 配置 Kafka 代理的 OAuth 2.0 支持。

JWKS 密钥刷新间隔

将 Kafka 代理配置为使用快速本地 JWT 令牌验证时,您现在可以在外部监听程序配置中设置 jwksMinRefreshPauseSeconds 选项。这会定义代理尝试刷新授权服务器发布的 JSON Web 密钥集(JWKS)公钥尝试之间的最小间隔。

在这个版本中,如果 Kafka 代理检测到未知签名密钥,它会尝试立即刷新 JWKS 密钥,而无需等待常规刷新计划。

尝试刷新 JWKS 密钥之间暂停 2 分钟的示例

    listeners:
      #...
      - name: external2
        port: 9095
        type: loadbalancer
        tls: false
        authentication:
          type: oauth
          validIssuerUri: <https://<auth-server-address>/auth/realms/external>
          jwksEndpointUri: <https://<auth-server-address>/auth/realms/external/protocol/openid-connect/certs>
          userNameClaim: preferred_username
          tlsTrustedCertificates:
          - secretName: oauth-server-cert
            certificate: ca.crt
          disableTlsHostnameVerification: true
          jwksExpirySeconds: 360
          jwksRefreshSeconds: 300
          jwksMinRefreshPauseSeconds: 120
          enableECDSA: "true"
Copy to Clipboard Toggle word wrap

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)授权会定期检查活动会话的权限更改。现在,可以实时检测用户更改和权限管理更改。

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat