4.4. 在提取用户名时 Oauth 2.0 支持 JsonPath 查询


要在 Kafka 集群中使用 OAuth 2.0 身份验证,您可以使用 OAUTH 身份验证机制指定监听程序配置。在配置侦听器属性时,现在可以使用 JsonPath 查询从正在使用的授权服务器中提取用户名。您可以使用 JsonPath 查询来为 oauth.username.claimoauth.fallback.username.claim 属性在监听器中指定 username extraction 选项。这可让您通过访问嵌套数据结构中的特定值从令牌中提取用户名。例如,您可能有一个包含在 JSON 令牌数据结构中的 user info 数据结构的用户名。

下例演示了如何在使用内省端点配置令牌验证时为属性指定 JsonPath 查询。

使用内省端点配置令牌验证

# ...
listener.name.client.oauthbearer.sasl.jaas.config=org.apache.kafka.common.security.oauthbearer.OAuthBearerLoginModule required ;
  # ...
  oauth.username.claim="['user.info'].['user.id']" \ 1
  oauth.fallback.username.claim="['client.info'].['client.id']" \ 2
  # ...

1
在令牌中包含实际用户名的令牌声明(或密钥)。用户名是用于识别用户的 主体userNameClaim 值取决于使用的授权服务器。
2
授权服务器可能无法提供单个属性来识别常规用户和客户端。当客户端以自己的名称进行身份验证时,服务器可能会提供 客户端 ID。当用户使用用户名和密码进行身份验证时,若要获取刷新令牌或访问令牌,除了客户端 ID 外,服务器可能会提供一个 username 属性。如果主用户 ID 属性不可用,则使用这个 fallback 选项指定要使用的用户名声明(attribute)。

请参阅 为 Kafka 代理配置 OAuth 2.0 支持

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.