Python通过kerberos安全认证操作kafka

【坑】Python通过kerberos安全认证操作kafka

如何通过Kerberos认证.

1.安装Kerberos客户端
CentOS:

yum install krb5-workstation
使用which kinit查看是否安装成功;

2.拷贝Kerberos配置文件
conf目录下krb5.conf和kafka.keytab和jaas.conf拷贝到客户端机器的etc目录, 同时,krb5.conf中的kdc集群主机名和IP配置到客户端机器hosts配置文件中

3.Kinit客户端通过kerberos认证
获取Principal

klist -kt kafka.keytab

4.安装python-gssapi

pip install gssapi

遇到的问题,如下:
a.在linux中执行wget命令提示 -bash: wget: command not found 解决方法

yum -y install wget

b.报错:bash: pip: command not found

wget https://bootstrap.pypa.io/get-pip.py
python get-pip.py
pip -V  #查看pip版本

python -m pip install --upgrade --force pip
easy_install -U setuptools
pip install --upgrade setuptools

3.pip安装出现Command “python setup.py egg_info” failed with error code 1 的解决方法

Traceback (most recent call last):
File “”, line 1, in
File “/tmp/pip-install-6HfDE3/gssapi/setup.py”, line 109, in
raise Exception("Could not find main GSSAPI shared library. Please "
Exception: Could not find main GSSAPI shared library. Please try setting GSSAPI_MAIN_LIB yourself or setting ENABLE_SUPPORT_DETECTION to ‘false’

Command “python setup.py egg_info” failed with error code 1 in /tmp/pip-install-6HfDE3/gssapi/

yum install -y krb5-devel.x86_64

4.关于error: command ‘gcc’ failed with exit status 1错误的解决方法

yum install gcc python-devel

安装kafka-python

pip install kafka-python

初始化环境变量

export KAFKA_OPTS="-Djava.security.auth.login.config=/etc/conf/jaas.conf -Djava.security.krb5.conf=/etc/krb5.conf"

Python操作kafka样例

from kafka import KafkaProducer
from kafka.errors import KafkaError
import os

class Kafka_Producer():
    def __init__(self, kafkahost, kafkaport, kafkatopic):
        self.kafkaHost = kafkahost
        self.kafkaPort = kafkaport
        self.kafkatopic = kafkatopic
        self.producer = KafkaProducer(
                bootstrap_servers = '{kafka_host}:{kafka_port}'.format(kafka_host=self.kafkaHost,kafka_port=self.kafkaPort),
                security_protocol="SASL_PLAINTEXT",
                sasl_mechanism="GSSAPI",
                sasl_kerberos_service_name="kafka",
                compression_type='gzip' #压缩方式
                )
    def sendFileData(self, params):
        try:
             f = open(params,'rb')
             parmasMessage = f.read(-1).strip()
             producer = self.producer
             producer.send(self.kafkatopic, parmasMessage)
             producer.flush()
        except KafkaError as e:
             print (e)
     
def main():
    filePath = "/home/public/data/"
    topic = "demo"
    producer = Kafka_Producer("xxx.xx.xx.xx","9092",topic)
    dirList = os.listdir(filePath)
    for fileName in dirList:
        producer.sendFileData(filePath+fileName)
    print('send success!!!')

if __name__=='__main__':
    main()

文稿实践参考如下::
[1].https://www.cnblogs.com/qiannianyuan/p/greenplum_compile.html
[2].https://blog.csdn.net/weixin_28738845/article/details/82598386
[3].https://blog.csdn.net/liao392781/article/details/80776528

文稿内容,仅作学习记录
竹筒

  • 12
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
要实现Spring Boot整合Kerberos认证来使用Kafka,你可以按照以下步骤进行操作: 1. 在启动类中添加Kafka相关配置。你可以使用`@EnableKafka`注解来启用Kafka,同时在`application.properties`文件中配置Kafka的连接信息。 2. 创建一个`kafka_client_jaas.conf`文件,其中配置Kafka的客户端认证信息。例如,你可以使用以下配置: ``` KafkaClient { org.apache.kafka.common.security.plain.PlainLoginModule required username="bob" password="bob-pwd"; }; ``` 将此文件放置在合适的位置,例如`C:/Users/JustryDeng/Desktop/kerberos/kafka_client_jaas.conf`。 3. 在启动类中,通过设置系统环境属性来指定`java.security.auth.login.config`参数为`kafka_client_jaas.conf`文件的路径。例如: ``` private static void systemPropertiesConfig(){ System.setProperty("java.security.auth.login.config", "C:/Users/JustryDeng/Desktop/kerberos/kafka_client_jaas.conf"); } ``` 这样,Kafka客户端将会使用指定的认证配置进行连接和认证。 通过以上步骤,你可以实现Spring Boot整合Kerberos认证来使用Kafka。请确保按照指定的路径创建和配置`kafka_client_jaas.conf`文件,并在启动类中设置正确的系统环境属性。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [SpringBoot整合并简单使用Kerberos认证Kafka](https://blog.csdn.net/justry_deng/article/details/88387898)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值