lar*_*one 1 sasl jaas apache-kafka
我正在运行一个分布式 Kafka-Broker,其中代理间通信是使用 SASL/SSL 设置的。为此,我调整了此处给出的 JAAS 配置。完成的文件如下所示:
KafkaServer {
org.apache.kafka.common.security.plain.PlainLoginModule required
username="admin"
password="admin-secret"
user_admin="admin-secret"
user_alice="alice-secret"
security.protocol=SASL_PLAINTEXT
sasl.mechanism=PLAIN;
org.apache.kafka.common.security.scram.ScramLoginModule required;
};
Client {
org.apache.kafka.common.security.plain.PlainLoginModule required
username="admin"
password="admin-secret";
};
Run Code Online (Sandbox Code Playgroud)
我注意到“KafkaServer”部分有 2 个管理员用户。我也经历了惨痛的教训才知道我两者都需要,但这是为什么呢?我有一种感觉,几个月前我已经读过(并忘记了)原因,但我似乎再也找不到它了。
小智 6
根据Apache Kafka 文档,该KafkaServer部分用于配置从该代理到其他代理的身份验证,以及连接到该代理的客户端和其他代理的身份验证。该Client部分用于连接到 Zookeeper。
由于您的问题是关于该KafkaServer部分的,并且您正在配置 SASL/PLAIN 身份验证机制,因此请参阅Apache Kafka 文档的这一部分:
此配置定义了两个用户(admin和alice)。代理使用该部分中的属性
username和来启动与其他代理的连接。在此示例中,admin是经纪商间通信的用户。这组属性定义连接到代理的所有用户的密码,并且代理验证所有客户端连接,包括使用这些属性的其他代理的连接。passwordKafkaServeruser_userName
换句话说,这里配置了两种不同的情况:
username和中定义的用户名和密码password。user_userName条目用于验证这些连接,其中用户名是密钥的userName部分user_userName,密码是值。因此,在您的示例中,由于这两行,该代理将使用用户名admin和密码连接到其他代理:admin-secret
username="admin"
password="admin-secret"
Run Code Online (Sandbox Code Playgroud)
admin并且,客户和其他经纪人可以使用/admin-secret或alice/的用户名密码组合连接到该经纪人,alice-secret因为这两行:
user_admin="admin-secret"
user_alice="alice-secret"
Run Code Online (Sandbox Code Playgroud)
如果您仅接受来自其他代理的连接以在此侦听器上进行代理间通信,则它们可能正在使用部分user_admin="admin-secret"配置,并且user_alice="alice-secret"可能是多余的。
| 归档时间: |
|
| 查看次数: |
2091 次 |
| 最近记录: |