一段时间以来,我一直在尝试使用 SASL_PLAINTEXT SCRAM-SHA-256 向我的 Kafka Brokers 添加 SASL 身份验证,但没有任何成功。我在 Kafka 的日志文件中不断收到以下错误。
错误 [Controller id=0, targetBrokerId=0] 连接到节点 0 的身份验证失败,原因是:由于 SASL 机制 SCRAM-SHA-256 (org.apache.kafka.clients.NetworkClient) 的凭据无效,身份验证失败。
但是我一直在关注 SCRAM Config 上的 Kafka 文档,并没有成功实现这一目标。
我使用 kafka-configs.sh 在 Zookeeper 上注册了一个管理员用户,如下所示:
bin/kafka-configs.sh --zookeeper localhost:2181 --alter --add-config 'SCRAM-SHA-256=[password=admin-secret],SCRAM-SHA-512=[password=admin-secret]' --entity-type users --entity-name admin
这是我配置 SCRAM-SHA-256 的 server.properties 的一部分。
broker.id=50
sasl.enabled.mechanisms=SCRAM-SHA-256
sasl.mechanism.inter.broker.protocol=SCRAM-SHA-256
security.inter.broker.protocol=SASL_PLAINTEXT
listeners=SASL_PLAINTEXT://172.16.3.21:9092
advertised.listeners=SASL_PLAINTEXT://172.16.3.21:9092
listener.name.sasl_plaintext.scram-sha-256.sasl.jaas.config=org.apache.kafka.common.security.scram.ScramLoginModule required \
username="admin" \
password="admin-secret";