KAFKA加密认证机制中的SASL主要包括SASL_PLAINTEXT SASL_GSSAPI SASL_SCRAM。这里主要记录一下Windows下搭建配置单机sasl_scram环境。
一、前情提要
SCRAM是kafka安全机制SASL家族中的一个,通过执行用户名/密码认证(如PLAIN和DIGEST-MD5)的传统机制来解决安全问题,Kafka中的默认SCRAM实现是在Zookeeper中存储SCRAM的证书。包括SCRAM-SHA-256和SCRAM-SHA-512,SHA_256和SHA_512是哈希算法。下面的提到的zookeeper都用的是kafka自带的。
二、配置准备
1:JAVA_HOME
有JAVA_HOME的环境变量,且java版为1.8及以上,jdk目录无中文和空格;
2:KAFKA项目部署
下载解压KAFKA项目到一个无中文无空格的目录下。配置非加密下的KAFKA环境,参考Windows环境下kafka搭建;
三、JAAS配置
3.1 zookeeper配置
3.1.1 config目录下zookeeper.properties修改为:
dataDir=./data/zookeeper
clientPort=2181
maxClientCnxns=0
authProvider.1=org.apache.zookeeper.server.auth.SASLAuthenticationProvider
requireClientAuthScheme=sasl
jaasLoginRenew=3600000
zookeeper.sasl.client=true
3.1.2 config目录新增kafka_zoo_jaas.conf,内容为:
Server {
org.apache.zookeeper.server.auth.DigestLoginModule required
username="admin"
password="admin"
user_admin="admin";
};
3.1.3 bin/windows/zookeeper-server-start.bat 设置KAFKA_OPTS,修改后内容为:
@echo off
IF [%1] EQU [] (
echo USAGE: %0 zookeeper.properties
EXIT /B 1
)
SetLocal
IF ["%KAFKA_LOG4J_OPTS%"] EQU [""] (
set KAFKA_LOG4J_OPTS=-Dlog4j.configuration=file:%~dp0../../config/log4j.properties
)
IF ["%KAFKA_HEAP_OPTS%"] EQU [""] (
set KAFKA_HEAP_OPTS=-Xmx512M -Xms512M
)
set KAFKA_OPTS=-Djava.security.auth.login.config=E:/demo/kafka/SASL_SCRAM/broker/2181/kafka_2.12-1