Kafka 到 zookeeper DIGEST-MD5 认证错误

Kafka to zookeeper DIGEST-MD5 authentication error

我可以使用 Kafka 提供的 kafka 代理和嵌入式 zookeeper 进行 DIGEST-MD5 身份验证,但是在使用 Kafka 代理和非嵌入式 zookeeper(单独的 zookeeper 实例)进行 DIGEST-MD5 身份验证时收到以下错误消息.

请在下面找到错误信息:

[2018-11-05 19:44:21,536] ERROR SASL authentication failed using login context 'Client' with exception: {} (org.apache.zookeeper.client.ZooKeeperSaslClient)

javax.security.sasl.SaslException: Error in authenticating with a Zookeeper Quorum member: the quorum member's saslToken is null.

org.apache.zookeeper.KeeperException$AuthFailedException: KeeperErrorCode = AuthFailed for /consumers

您的 jaas 文件是什么样的?

对于 Zookeeper 集群,zookeeper jaas 文件中必须包含三个部分: ServerQuorumServerQuorumLearner

QuorumServerQuorumLearner 部分用于相互验证 zookeeper 服务器。请参阅§基于 DIGEST-MD5 的身份验证

中的配置示例 here

Server部分用于验证kafka代理。它应该包含 kafka 用户名和密码,格式如 § 服务器配置/JAAS 配置文件中 here 所示:DIGEST-MD5 身份验证

您的 Kafka jaas 文件应该有一个带有用户名和密码的 Client 部分,如 §Client Configuration / JAAS 配置文件中 here 所示: DIGEST-MD5认证

最后,检查您是否为 zookeeper jaas 文件使用了正确的环境变量:

SERVER_JVMFLAGS="-Djava.security.auth.login.config=/path/to/server/jaas/file.conf"

嵌入式动物园管理员使用KAFKA_OPTS