kafka saslèu明文与gssapi for kerberos

j7dteeu8  于 2021-06-06  发布在  Kafka
关注(0)|答案(1)|浏览(757)

我试图运行一个单一的Kafka服务器使用sasl和gssapi与明文,但得到以下错误。
[2018-10-03 16:08:54220]错误[controller id=0,targetbrokerid=0]到节点0的连接身份验证失败,原因是:评估从kafka代理接收的sasl令牌时发生错误:(java.security.privilegedactionexception:javax.security.sasl.saslexception:gss initiate failed[由gsseException引起:未提供有效凭据])。Kafka客户端将进入身份验证失败状态(org.apache.kafka.clients.networkclient)
在server.properties中,更改为:

listeners=SASL_PLAINTEXT://kafka.example.com:9095
security.inter.broker.protocol=SASL_PLAINTEXT
sasl.mechanism.inter.broker.protocol=GSSAPI
advertised.listeners=SASL_PLAINTEXT://kafka.example.com:9095
sasl.enabled.mechanism=GSSAPI
sasl.kerberos.service.name=HTTP

这是我的jaas配置:

KafkaServer {
    com.sun.security.auth.module.Krb5LoginModule required
    useKeyTab=true
    useTicketCache=true
    storeKey=true
    keyTab="/home/kafka/kafka_server.keytab"
    principal="HTTP/kafka.example.com@UNIX.EXAMPLE.COM";
};

关于如何解决这个问题有什么线索吗?

hfwmuf9z

hfwmuf9z1#

首先,要么使用keytab(usekeytab=true),要么使用ticketcache(useticketcache=true)。不要同时使用两者。这可能导致冲突。
如果你有自己的路缘,为Kafka创造一个原则 sudo /usr/sbin/kadmin.local -q 'addprinc -randkey kafka/{hostname}@{REALM}' sudo /usr/sbin/kadmin.local -q "ktadd -k /etc/security/keytabs/{keytabname}.keytab kafka/{hostname}@{REALM}" 使用 sasl.kerberos.service.name="kafka" 设置jvm参数 export KAFKA_OPTS="-Djava.security.auth.login.config=/path/to/jaas.conf -Djava.security.krb5.conf=/etc/krb5.conf -Dsun.security.krb5.debug=true" 希望这会有帮助。

相关问题