一:前情提要
SASL_PLAINTEXT是一种简单的用户名和密码认证机制,是一种kafka加密协议,PLAINTEXT是传输层协议
二:配置准备
1:JAVA_HOME
有JAVA_HOME的环境变量,且java版为1.8及以上,jdk目录无中文和空格;
2:KAFKA项目部署
下载解压KAFKA项目到一个无中文无空格的目录下。配置非加密下的KAFKA环境,参考Windows环境下kafka搭建;
三:JAAS配置
KAFKA使用JAVA认证和授权服务(JAAS)进行SASL配置
1:为zookeeper配置JAAS
在config目录下创建文件kafka_zoo_jaas.conf,文件内容具体如下:
Server {
org.apache.kafka.common.security.plain.PlainLoginModule required
username="admin"
password="admin"
user_admin="admin";
};
创建了一个Server节点,其中
- org.apache.kafka.common.security.plain.PlainLoginModule required是加密方式,用plain, 连接时必须身份验证。
- username,password是zookeeper之间通讯的用户名和密码,
- user_admin="admin"的结构是user_username="password",用户名是admin, 密码是admin,客户端连接到zookeeper时,使用这个用户名和密码。
2:为broker配置JAAS
在config目录下创建文件kafka_server_jaas.conf,具体内容如下:
Client {
org.apache.kafka.common.security.plain.PlainLoginModule required
username="admin"
password="admin";
};
KafkaServer {
org.apache.kafka.common.security.plain.PlainLoginModule required
username="admin"
password="admin"
user_admin="admin"
user_alice="alice";
};
- Client节点,是broker连接zookeeper时的认证信息
- KafkaServer节点:集群中,broker之间用节点中的username,password进行通讯
- KafkaServer节点:客户端(producer,consumer)连接broker时用user_username="password"结构中的账号密码登录
3:为客户端(producer,consumer等)配置JAAS
在config目录下创建文件kafka_