动物园管理员SASL安保



我使用的是zookeeper 3.4.12版本,并且在尝试启用SASL时发现以下错误。有人能帮忙吗。

Client {
com.sun.security.auth.module.Krb5LoginModule required
useKeyTab=true
storeKey=true
useTicketCache=true
keyTab="/tmp/kafka/zookeeper.service.keytab
principal="zookeeper/chefclient.xyz.local@XYZ.LOCAL";
};

错误:

2018-11-02 09:35:01998]错误SASL身份验证使用登录上下文"客户端"失败,出现异常:{}(org.apache.zookeeper.Client.ZooKeeperSaslClient(javax.security.sasl.SaslException:与Zookeeper Quorum成员进行身份验证时出错:Quorum成员的saslToken为空

问题已修复,jaas中的空格导致问题

Zookeeper安全的第一步是确保quorum对等通信的安全。请在此处完整解释。

你的Zookeeper jaas文件应该有QuorumServerQuorumLearner部分。

接下来,您可以像Kafka一样保护Zookeeper集群和客户端之间的通信。

您在Zookeeper jaas文件中添加了Server部分,您的Kafka jaas文件应该有Client区域

我认为问题是,中缺少一个双引号

keyTab="/tmp/kafka/zookeeper.service.keytab

我遇到了同样的问题。。。

SaslException: Error in authenticating with a Zookeeper Quorum member: the quorum member's saslToken is null

这个错误也出现在Zookeeper服务器日志中:

ERROR [NIOWorkerThread-6:ZooKeeperServer@1191] - cnxn.saslServer is null: cnxn object did not initialize its saslServer properly.

我的配置,使用zookeeper实例之间的相互kerberos身份验证。

解决方案

缺少"服务器"部分

我的问题是,在Zookeeper的服务器jaas配置中没有Server部分。

我需要类似的东西:

QuorumServer {
com.sun.security.auth.module.Krb5LoginModule required
useKeyTab=true
keyTab="/etc/security/keytabs/zookeeper.keytab"
storeKey=true
useTicketCache=false
debug=false
principal="zookeeper/zk1.example.com@EXAMPLE.COM";
};
QuorumLearner {
com.sun.security.auth.module.Krb5LoginModule required
useKeyTab=true
keyTab="/etc/security/keytabs/zookeeper.keytab"
storeKey=true
useTicketCache=false
debug=false
principal="zookeeper/zk2.example.com@EXAMPLE.COM";
};
Server {
com.sun.security.auth.module.Krb5LoginModule required
useKeyTab=true
keyTab="/etc/security/keytabs/zookeeper.keytab"
storeKey=true
useTicketCache=false
principal="zookeeper/zk3.example.com@EXAMPLE.COM";
};

当客户端连接到Zookeeper时,他们将根据该配置的Server部分进行身份验证。这是SASL工作所必需的。

还要确保你有conf/java.env设置类似于:

SERVER_JVMFLAGS="${SERVER_JVMFLAGS} -Djava.security.auth.login.config=/opt/zookeeper/conf/server-jaas.conf"
CLIENT_JVMFLAGS="${CLIENT_JVMFLAGS} -Djava.security.auth.login.config=/opt/zookeeper/conf/client-jaas.conf"

相关内容

  • 没有找到相关文章

最新更新