Kafka:动态更新Jaas配置

3
我已经使用sasl.jaas.config属性设置了kafka的jaas配置。我想更新此配置并动态添加用户。
根据这份文档 - http://kafka.apache.org/11/documentation.html#dynamicbrokerconfigs,我们可以使用bin/kafka-configs.sh来实现。
上述文档有一个配置列,其中写着-enter image description here 我尝试通过以下命令更新sasl.jaas.configbin/kafka-configs.sh --bootstrap-server localhost: 9092 --entity-type brokers --entity-name 59 --alter --add-config sasl.jaas.config = "KafkaServer {\ n org.apache.kafka.common.security.plain.PlainLoginModule required \ n username = \"myuser\" \n password = \"mypassword\"; \ n}; \ nClient {\ n org.apache.zookeeper.server.auth.DigestLoginModule required \ n username = \"myuser2\" \n password = \"mypassword2\"; \ n};" 但是它给我以下错误: requirement failed: Invalid entity config: all configs to be added must be in the format "key=val" 如果我看上面的列,它说sasl.jaas.config属性的值格式为(=)*。这是什么意思?
如何传递的值以动态更新jaas配置?
1个回答

3
虽然可以动态更新以添加更多用户,但默认的Plain登录模块不适用于生产环境。相反,您应该定义回调处理程序来处理用户的身份验证。这在Kafka Sasl Plain docs中有描述。
另一个需要更多工作(但提供更大的灵活性)的选项是创建自己的登录模块。该过程在Can Kafka be provided with custom LoginModule to support LDAP?中有描述。
关于您收到的错误消息,这似乎是与kafka-config.sh工具有关的问题。它不希望配置值包含=。您应该能够使用AdminClient API更新该配置。
我在JIRA中找不到现有的问题,因此创建了一个新问题: https://issues.apache.org/jira/browse/KAFKA-8010

感谢您宝贵的意见,我该如何使用AdminClient API更新sasl.jaas.config?我以前从未使用过,是否有任何示例可以帮助我?再次感谢。 - Tushar H
我已经在http://kafka.apache.org/documentation/#security_sasl_plain_production上进行了检查,但其中的信息有限。您是否有任何示例/链接可以更详细地指导“编写回调处理程序以处理用户身份验证”? - Tushar H
请参阅KIP-86(https://cwiki.apache.org/confluence/display/KAFKA/KIP-86%3A+Configurable+SASL+callback+handlers#KIP-86:ConfigurableSASLcallbackhandlers-sample_plain)获取回调处理程序示例。 - Mickael Maison
要使用AdminClient,请查看alterConfigs()的Javadocs http://kafka.apache.org/21/javadoc/org/apache/kafka/clients/admin/AdminClient.html#alterConfigs-java.util.Map- 有关示例,请参见https://stackoverflow.com/questions/54024829/java-kafka-adminclient-topic-configuration-configuration-values-are-overwritten/54026448#54026448 - Mickael Maison
好的,谢谢,我会都进行检查。 - Tushar H

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接