0898-7.1.7-如何在CDP中为Kafka集成OpenLDAP
1.文档编写目的
本篇文章主要介绍如何在CDP 7.1.7集群中为Kafka集成OpenLDAP
- 文档概述
1.前置环境配置及验证
2.集成OpenLDAP
3.验证
- 测试环境
1.操作系统Redhat7.6
2.CDP7.1.7
3.使用root用户操作
4.集群已启用Kerberos
5.集群OpenLDAP服务正常运行
6.集群OpenLDAP服务未启用SSL&&TLS
2.前置环境配置
1.这里是Fayson在集成kafka&OpenLDAP前的环境信息
为Kafka启用了Kerberos认证,并且已经集成了Ranger服务
2.验证目前环境是否正常
登陆服务器,正常kinit认证Kerberos凭据
kinit kafka
klist
设置KAFKA_OPTS环境变量
$ export KAFKA_OPTS="-Djava.security.auth.login.config=/root/kafka_kb/jass.conf"
Jass.conf
内容
KafkaClient{
com.sun.security.auth.module.Krb5LoginModule required
useTicketCache=true;
};
运行Kafka Producer
kafka-console-producer --broker-list hadoop99.macro.com:9092 --topic test1 --producer.config client.properties
新开机器连接,连接Kakfa Consumer,测试是否正常实时消费
export KAFKA_OPTS="-Djava.security.auth.login.config=/root/kafka_kb/jass.conf"
kafka-console-consumer --topic test1 --from-beginning --bootstrap-server hadoop99.macro.com:9092 --consumer.config client.properties
环境检测正常
3.集成LDAP
1.进入CM>Kafka>配置>sasl,选择LDAP。
2.进入CM>Kafka>配置>LDAP,输入信息。
3.进入CM>Kafka>配置> Inter Broker Protocol,选择SASL_PLAINTEXT
4.保存配置后重启服务即可
4.验证
user.ldif
dn: uid=kafka_test,ou=People,dc=macro,dc=com
uid: kafka_test
cn: kafka_test
objectClass: account
objectClass: posixAccount
objectClass: top
objectClass: shadowAccount
userPassword: 12345678
shadowLastChange: 15678
shadowMin: 0
shadowMax: 99999
shadowWarning: 7
loginShell: /usr/bash
uidNumber: 12346
gidNumber: 12346
homeDirectory: /home/kafka_test
group.ldif
dn: cn=kafka_test,ou=Group,dc=macro,dc=com
objectClass: posixGroup
objectClass: top
cn: kafka_test
userPassword: {crypt}x
gidNumber: 20010
导入新增的测试用户
ldapadd -D "cn=Manager,dc=macro,dc=com" -W -x -f user.ldif
ldapadd -D "cn=Manager,dc=macro,dc=com" -W -x -f group.ldif
ldapsearch -b "dc=macro,dc=com" -D "cn=Manager,dc=macro,dc=com" -W | grep dn
2.登陆Ranger服务,为新增的用户赋权,这里为了方便测试,直接赋权all
注意:这里的all-topic和all-consumergroup都需要赋权
3.回到机器,编写登陆文件
jass.conf
KafkaClient {
org.apache.kafka.common.security.plain.PlainLoginModule required
username="kafka_test"
password="12345678";
};
ldap-client.properties
security.protocol=SASL_PLAINTEXT
sasl.mechanism=PLAIN
4.验证登陆
producer
export KAFKA_OPTS="-Djava.security.auth.login.config=/root/kafka_user/jaas.conf"
kafka-console-producer --bootstrap-server hadoop99.macro.com:9092 --topic kafka_test --producer.config ./ldap-client.properties
Consumer
export KAFKA_OPTS="-Djava.security.auth.login.config=/root/kafka_user/jaas.conf"
kafka-console-consumer --bootstrap-server hadoop99.macro.com:9092 --topic kafka_test --consumer.config ./ldap-client.properties
5.总结
1.在 Ranger中对于LDAP用户赋权的时候,topic和consumergroup都需要赋权,不然会出现报错Not authorized to aceess group:console-consumer-xxxx
2.集成LDAP的时候,需要注意ranger.ldap.bind.dn属性需要与自己的环境对应
3.如果LDAP启用了SSL或者TLS的话,则需要额外配置CA证书才行
相关文章
- 15个问题自查你真的了解java编译优化吗?
- 实现服务器和客户端数据交互,Java Socket有妙招
- 世界杯专题看板丨今晚8点开战,数据先睹为快!
- Crack App | 某合伙人登录参数 apisign 逻辑分析
- Crack App | 某都市魔幻 FM 请求参数 sign 的加密分析
- Crack App | 某赢+ 二手车 App 登录参数加密逻辑分析
- RocketMQ: 技术架构与启动流程
- 目前社区关于ServiceMesh的主要方向
- k8s的架构是怎么变成现在这个样子
- Envoy的lib库拓扑关系
- 转发“Istio共享代理新模式Ambient Mesh”
- 如何设计属于你自己的秒杀系统?
- 如何把Java代码玩出花?JVM Sandbox入门教程与原理浅谈
- 删错了文件怎么办,文件快速恢复
- ChatGPT 浏览器插件实现思路解析
- 存储系统中的算法:LSM 树设计原理
- 说透游戏中常用的两种随机算法
- 我用消息队列做了一款联机小游戏
- 用算法打败算法
- CRUD 一年多,我的破局思路