kafka集群使用 SASL/PLAIN 认证

kafka集群使用 SASL/PLAIN 认证

SASL/PLAIN 是一种简单的 username/password 认证机制, 通常与 TLS 加密一起使用, 用于实现安全认证. Kafka 提供了一个默认的 SASL/PLAIN 实现, 可以做扩展后在生产环境使用.
username 在 ACL 等的配置中作为已认证的 Principal.
1.配置 Kafka Broker
在每一个 Kafka broker 的 config 目录中, 添加一个 kafka_server_jaas.conf文件,内容如下:

KafkaServer {
    org.apache.kafka.common.security.plain.PlainLoginModule required
    username="admin"
    password="admin"
    user_admin="admin"
    user_alice="alice"; };

将 JAAS 配置文件的路径作为 JVM 的参数, 并传递到每一个 Kafka broker:

   -Djava.security.auth.login.config=/etc/kafka/kafka_server_jaas.conf

在 server.properties 中配置 SASL 端口和 SASL 机制. 例如:

listeners=SASL_SSL://host.name:port
    security.inter.broker.protocol=SASL_SSL
    sasl.mechanism.inter.broker.protocol=PLAIN
    sasl.enabled.mechanisms=PLAIN

完成上述配置后重启kafka集群。
2.C++客户端使用:
在kfkConsumer.cpp的 CKfkConsumer::Start内和kfkProducer.cpp的 CKfkProducer::Init中添加安全认证的设置:

//安全认证
	if (m_pGlobalConf->set("security.protocol", "SASL_PLAINTEXT", strErrMsg) != RdKafka::Conf::CONF_OK) {
		printf("%s", strErrMsg.c_str());
	}
	//sasl.mechanisms
	if (m_pGlobalConf->set("sasl.mechanism", "PLAIN", strErrMsg) != RdKafka::Conf::CONF_OK) {
		printf("%s", strErrMsg.c_str());
	}

	if (m_pGlobalConf->set("sasl.username", "alice", strErrMsg) != RdKafka::Conf::CONF_OK) {
		printf("%s", strErrMsg.c_str());
	}

	if (m_pGlobalConf->set("sasl.password", "alice-grg", strErrMsg) != RdKafka::Conf::CONF_OK) {
		printf("%s", strErrMsg.c_str());
	}

3、Java客户端需要读取配置文件kafka_client_jaas.conf
其内容如下:

kafkaClient {
        org.apache.kafka.common.security.plain.PlainLoginModule required
        username="alice"
        password="alice"; };

使用示例:

// acl Authorizer

props.put("security.protocol", "SASL_PLAINTEXT");

props.put("sasl.mechanism", "PLAIN");

System.setProperty("java.security.auth.login.config","/Users/book/conf/kafka_client_jaas.conf");

4、Kafka tool 小工具使用介绍 首先在C盘添加client_jaas.conf文件,内容如下图:
在这里插入图片描述
找到kafka tool 快捷方式,设置其属性,修改目标拦:“D:\Program Files\kafkatool2\kafkatool.exe” -J-Djava.security.auth.login.config=c:/client_jaas.conf
在这里插入图片描述
连接设置如图:
在这里插入图片描述
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_42591789/article/details/85771859