首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为kerberos提供GSSAPI的Kafka SASL_PLAINTEXT

为kerberos提供GSSAPI的Kafka SASL_PLAINTEXT
EN

Stack Overflow用户
提问于 2018-10-03 10:45:50
回答 1查看 4.4K关注 0票数 0

我试图使用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中,更改如下:

代码语言:javascript
复制
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配置:

代码语言:javascript
复制
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";
};

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

EN

回答 1

Stack Overflow用户

发布于 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"

希望这能帮上忙。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52625348

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档