我已成功为 Kafka 代理设置了 SASL PLAIN 和 PLAINTEXT 安全性,因为由于身份验证失败,客户端无法使用有效的用户名和密码凭据提供kafka_client_jaas.conf而无法成功使用或生成。

但是,我不能对 Zookeeper 做同样的事情,所以例如kafka_topics.sh成功连接到 Zookeeper,没有KAFKA_OPTS设置java.security.auth.login.config指向任何jaas.conf文件。我想它必须指向与控制台消费者和生产者相同的kafka_client_jaas.conf,因为有一个客户端部分被定义用于 Zookeeper 的身份验证。我在zookeeper.properties文件中添加了以下三行(我不知道第三行是用于什么):

authProvider.1=org.apache.zookeeper.server.auth.SASLAuthenticationProvider
requireClientAuthScheme=sasl
jaasLoginRenew=3600000

我创建了zookeeper_jaas.conf(定义了 Server 部分)并启动了 Zookeeper,指向它的KAFKA_OPTS,并将 Client 部分添加到kafka_server_jaas.conf,以便代理正确地对 Zookeeper 进行身份验证,就像这里描述的那样:

Kafka SASL zookeeper 认证

但是如前所述,在运行kafka_topics.sh时我无法激发身份验证失败。我哪里做错了?