3.5. OAuth 2.0 身份验证增强
配置使用者和范围
现在,您可以在从授权服务器获取令牌时配置
属性。属性值作为 clientAudience
和 clientScope使用者
令牌端点。这两个属性都在 和范围
参数传递给Kafka
自定义资源中的 OAuth 2.0 身份验证监听程序配置中配置。
在以下情况下使用这些属性:
- 获取用于内部代理身份验证的访问令牌时
在基于 PLAIN 客户端身份验证的 OAuth 2.0 客户端名称中,使用
clientId
和secret
具体来说,当 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 身份验证机制