我试图使用SASL和GSSAPI使用明文运行一个kafka服务器,但是出错。
2018-10-03 16:08:54,220错误控制器id=0,targetBrokerId=0连接到节点0的身份验证失败,原因是:错误:(java.security.PrivilegedActionException: javax.security.sasl.SaslException: GSS启动失败由GSSException:未提供有效凭据引起)在评估从Kafka Broker收到的SASL令牌时发生。卡夫卡的客户将进入AUTHENTICATION_FAILED州。(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";
};关于如何解决这个问题有什么线索吗?
发布于 2018-11-24 03:27:10
首先,要么使用KeyTab (useKeyTab=true)要么使用TicketCache (useTicketCache=true)。不要同时使用两者。这可能导致冲突。
如果你有自己的路肩,为卡夫卡创造一个原则。
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"
希望这能帮上忙。
https://stackoverflow.com/questions/52625348
复制相似问题