3.5. OAuth 2.0 身份验证增强


配置使用者和范围

现在,您可以在从授权服务器获取令牌时配置 clientAudience 和 clientScope 属性。属性值作为 使用者 和范围 参数传递给 令牌端点。这两个属性都在 Kafka 自定义资源中的 OAuth 2.0 身份验证监听程序配置中配置。

在以下情况下使用这些属性:

  • 获取用于内部代理身份验证的访问令牌时
  • 在基于 PLAIN 客户端身份验证的 OAuth 2.0 客户端名称中,使用 clientIdsecret

    具体来说,当 PLAIN 回调首次与授权服务器交换 clientID (作为用户名)和 机密 (作为密码)以获取访问令牌时,现在请求中可以包含 使用者 和范围

这些属性会影响客户端是否可以获取令牌和令牌的内容。它们不会影响侦听器实施的令牌验证规则。

clientAudience 和 client Scope 属性的配置示例

# ...
  authentication:
    type: oauth
    # ...
    clientAudience: AUDIENCE
    clientScope: SCOPE

授权服务器有时在 JWT 访问令牌中提供 提示( 严重)声明。当启用用户检查时,Kafka 代理会拒绝在 A ud 声明中不包含代理 客户端Id 的令牌。要启用受众检查,请在 oauth 监听程序配置中将 checkAudience 选项设置为 true。默认情况下禁用受众检查。

请参阅 为 Kafka 代理和 KafkaListenerAuthenticationOAuth 模式配置 OAuth 2.0 支持 https://access.redhat.com/documentation/en-us/red_hat_amq/2021.q3/html-single/using_amq_streams_on_openshift/index#type-KafkaListenerAuthenticationOAuth-reference

Kafka Connect 和 Kafka Bridge 指定使用者

现在,您可以在为 Kafka Connect 或 Kafka Bridge 配置相应的自定义资源中指定 OAuth 客户端身份验证时的使用者 选项。在以前的版本中,只支持这些资源的 scope 选项。

请参阅 KafkaClientAuthenticationOAuth 模式参考

OAuth 2.0 over PLAIN 不需要令牌端点

在通过 PLAIN 身份验证对 OAuth 2.0 使用"客户端 ID 和 secret"方法时,不再需要 tokenEndpointUri 选项。

指定了令牌端点 URI 的 OAuth 2.0 over PLAIN 配置示例

# ...
  authentication:
    type: oauth
    # ...
    enablePlain: true
    tokenEndpointUri: https://OAUTH-SERVER-ADDRESS/auth/realms/external/protocol/openid-connect/token

如果没有指定 tokenEndpointUri,侦听器将处理:

  • 用户名 参数作为帐户名称
  • 作为原始访问令牌 的密码 参数,传递给授权服务器进行验证(与 OAUTHBEARER 身份验证的作用相同)

OAuth 2.0 与 PLAIN 身份验证相比的"长生命访问令牌"方法的行为没有改变。使用此方法时不需要 tokenEndpointUri

请参阅 OAuth 2.0 身份验证机制

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.