4.4.6.3. 将 Kafka Java 客户端配置为使用 OAuth 2.0
这个步骤描述了如何配置 Kafka 制作者和使用者 API,以使用 OAuth 2.0 与 Kafka 代理交互。
将客户端回调插件添加到 pom.xml 文件,并配置系统属性。
先决条件
- AMQ Streams 和 Kafka 正在运行
- 为对 Kafka 代理的 OAuth 访问部署并配置了 OAuth 授权服务器
- 为 OAuth 2.0 配置 Kafka 代理
流程
将带有 OAuth 2.0 支持的客户端库添加到 Kafka 客户端的
pom.xml
文件中:<dependency> <groupId>io.strimzi</groupId> <artifactId>kafka-oauth-client</artifactId> <version>{oauth-version}</version> </dependency>
为回调配置系统属性:
例如:
System.setProperty(ClientConfig.OAUTH_TOKEN_ENDPOINT_URI, “https://<auth-server-address>/auth/realms/master/protocol/openid-connect/token”); 1 System.setProperty(ClientConfig.OAUTH_CLIENT_ID, "<client-name>"); 2 System.setProperty(ClientConfig.OAUTH_CLIENT_SECRET, "<client-secret>"); 3
在 Kafka 客户端配置中的 TLS 加密连接中启用 SASL OAUTHBEARER 机制:
例如:
props.put("sasl.jaas.config", "org.apache.kafka.common.security.oauthbearer.OAuthBearerLoginModule required;"); props.put("security.protocol", "SASL_SSL"); 1 props.put("sasl.mechanism", "OAUTHBEARER"); props.put("sasl.login.callback.handler.class", "io.strimzi.kafka.oauth.client.JaasClientOauthLoginCallbackHandler");
- 1
- 在这里,我们使用
SASL_SSL
通过 TLS 连接使用。对未加密的连接使用SASL_PLAINTEXT
。
- 验证 Kafka 客户端可以访问 Kafka 代理。
接下来要做什么