3.4.3. 使用 DIGEST-MD5 启用客户端到服务器身份验证
这个步骤描述了如何使用 ZooKeeper 客户端和 ZooKeeper 之间的 SASL DIGEST-MD5 机制启用验证。
先决条件
- 在主机上安装 AMQ Streams
- zookeeper 集群 已配置并运行。
启用 SASL DIGEST-MD5 身份验证
在所有 ZooKeeper 节点上,创建或编辑
/opt/kafka/config/zookeeper-jaas.conf
JAAS 配置文件并添加以下上下文:Server { org.apache.zookeeper.server.auth.DigestLoginModule required user_super="<SuperUserPassword>" user<Username1>_="<Password1>"用户"<USername2>_="<Password2>"; };
super
自动具有管理员特权。该文件可以包含多个用户,但 Kafka 代理只需要一个用户。Kafka 用户的建议名称是kafka
。以下示例显示了客户端到服务器身份验证的
Server
上下文:Server { org.apache.zookeeper.server.auth.DigestLoginModule required user_super="123456" user_kafka="123456"; };
在所有 ZooKeeper 节点上,编辑
/opt/kafka/config/zookeeper.properties
ZooKeeper 配置文件并设置以下选项:requireClientAuthScheme=sasl authProvider.<IdOfBroker1>=org.apache.zookeeper.server.auth.SASLAuthenticationProvider authProvider.<IdOfBroker2>=org.apache.zookeeper.server.auth.SASLAuthenticationProvider authProvider.<IdOfBroker3>=org.apache.zookeeper.server.auth.SASLAuthenticationProvider
必须为每个节点添加
authProvider.<ID>
属性,这是 ZooKeeper 集群的一部分。三节点 ZooKeeper 集群配置示例必须类似如下:requireClientAuthScheme=sasl authProvider.1=org.apache.zookeeper.server.auth.SASLAuthenticationProvider authProvider.2=org.apache.zookeeper.server.auth.SASLAuthenticationProvider authProvider.3=org.apache.zookeeper.server.auth.SASLAuthenticationProvider
逐个重启所有 ZooKeeper 节点。要将 JAAS 配置传递给 ZooKeeper,请使用
KAFKA_OPTS
环境变量。su - kafka export KAFKA_OPTS="-Djava.security.auth.login.config=/opt/kafka/config/zookeeper-jaas.conf"; /opt/kafka/bin/zookeeper-server-start.sh -daemon /opt/kafka/config/zookeeper.properties
其它资源
- 有关安装 AMQ Streams 的详情请参考 第 2.3 节 “安装 AMQ Streams”。
- 有关配置 AMQ Streams 的详情请参考 第 2.8 节 “配置 AMQ 流”。
- 有关运行 ZooKeeper 集群的详情请参考 第 3.3 节 “运行多节点 ZooKeeper 集群”。