一、JAAS配置


Zookeeper配置JAAS

zookeeper环境下新增一个配置文件,如zk_server_jass.conf,内容如下:

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

其作用是:在改zookeeper节点创建了一个Server节点,其中

  • org.apache.kafka.common.security.plain.PlainLoginModule required 是加密机制为PLAIN的处理类。在kafka-client包下
  • usernamepassword是zookeeper之间通讯的用户名和密码,
  • user_admin="admin"的结构是user_[username]=[password],定义kafka-broker(zookeeper客户端)连接到zookeeper时用的用户名和密码。

注意jaas配置都要以结尾

Kafka-Broker配置JAAS

在kafka-broker环境下新增配置,如kafka_server_jaas.conf,内容如下:

# 用于broker和zookeeper之间的认证,对应zk_server_jass.conf中的【user_admin="admin"】配置
Client {
org.apache.kafka.common.security.plain.PlainLoginModule required
username="admin"
password="admin";
}; # 定义kafka客户端与broker的认知信息
KafkaServer {
org.apache.kafka.common.security.plain.PlainLoginModule required
username="admin"
password="admin"
user_admin="admin"
user_alice="alice";
};
  • Client:用于broker和zookeeper之间的认证,对应zk_server_jass.conf中的【user_admin="admin"】配置
  • KafkaServer:集群中,broker之间用节点中的username,password进行通讯
  • KafkaServerkafka客户端(producer,consumer)连接broker时,用该配置下user_[username]=[password]结构配置的账号密码登录
Kafka-Producer配置JAAS

在kafka-broker环境下新增配置,如kafka_producer_jaas.conf,内容如下:

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

Client:客户端登录服务端认证信息,对应broker配置中user_[username]=[password]定义的配置

Kafka-Consumer配置JAAS

新增kafka_consumer_jaas.conf,配置同producer

从以上配置可以得出结论:

  • username="admin" password="admin"配置格式有两种场景

1、是用于服务端集群之间的认证信息,定义在Server节点里

2、用户登录服务端的认证信息,定义在Client节点里

  • user_[username]=[password]配置定义在Server节点里,用于提供给客户端登录。

以上关系是:Zookeeper:Kafka-Broker关系里,Zookeeper是服务端,Kafka-Broker是客户端;Kafka-Broker:Kafka-Producer、Kafka-Consumer关系里,Kafka-Broker是服务端,Kafka-Producer、Kafka-Consumer是客户端

二、SASL配置


zookeeper的sasl配置

zookeeper.properties配置文件新增:

authProvider.1=org.apache.zookeeper.server.auth.SASLAuthenticationProvider
requireClientAuthScheme=sasl
jaasLoginRenew=3600000

修改zookeeper-server-start.bat,新增一个配置KAFKA_OPTS

SetLocal

set KAFKA_OPTS=-Djava.security.auth.login.config=【zk_server_jass.conf路径】
...... EndLocal
broker新增sasl配置

server.properties新增配置

listeners=SASL_PLAINTEXT://localhost:9092
#使用的认证协议
security.inter.broker.protocol=SASL_PLAINTEXT
#SASL机制
sasl.enabled.mechanisms=PLAIN
sasl.mechanism.inter.broker.protocol=PLAIN
# 完成身份验证的类
#authorizer.class.name=kafka.security.auth.SimpleAclAuthorizer
# 如果没有找到ACL(访问控制列表)配置,则允许任何操作。
allow.everyone.if.no.acl.found=false
#超级管理员权限用户
super.users=User:admin
advertised.listeners=SASL_PLAINTEXT://localhost:9092

修改kafka-server-start.bat ,新增一个配置KAFKA_OPTS:

SetLocal

set KAFKA_OPTS=-Djava.security.auth.login.config=【kafka_server_jass.conf路径】
...... EndLocal
producer的sasl配置

producer.properties新增配置

sasl.jaas.config=org.apache.kafka.common.security.plain.PlainLoginModule required username="admin" password="admin";
security.protocol=SASL_PLAINTEXT
sasl.mechanism=PLAIN
producer的sasl配置

consumer.properties新增配置

sasl.jaas.config=org.apache.kafka.common.security.plain.PlainLoginModule required username="admin" password="admin";
security.protocol=SASL_PLAINTEXT
sasl.mechanism=PLAIN

三、启动命令【示例】

zk:

.\bin\windows\zookeeper-server-start.bat .\config\zookeeper.properties

broker:

.\bin\windows\kafka-server-start.bat .\config\server.properties

producer:

.\bin\windows\kafka-console-producer.bat --broker-list localhost:9092  --topic testTopic  --producer.config  .\config\producer.properties

consumer:

.\bin\windows\kafka-console-consumer.bat --bootstrap-server  localhost:9092 --topic testTopic --consumer.config .\config\consumer.properties

Kafka开启SASL认证 【windowe详细版】的更多相关文章

  1. Kafka的安全认证机制SASL/PLAINTEXT

    一.背景 kafka提供了多种安全认证机制,主要分为SSL和SASL2大类.其中SASL/PLAIN是基于账号密码的认证方式,比较常用.最近做了个kafka的鉴权,发现官网上讲的不是很清楚,网上各种博 ...

  2. Kafka Kerberos 安全认证

    本主要介绍在 Kafka 中如何配置 Kerberos 认证,文中所使用到的软件版本:Java 1.8.0_261.Kafka_2.12-2.6.0.Kerberos 1.15.1. 1. Kerbe ...

  3. Kafka安装及开启SASL_PLAINTEXT认证(用户名和密码认证)

    前些日子要封装一个kafka的客户端驱动,配置了下kafka环境,发现配置复杂度完爆rabbitmq很多倍啊,而且发布订阅模式使用起来也很麻烦,可能就胜在分布式了吧. kafka需要java环境,自行 ...

  4. Kafka - SASL认证

    kafka SASL认证配置 1.找到kafka安装根目录,在config文件夹下创建kafka_server_jaas.conf,写入 KafkaServer { org.apache.kafka. ...

  5. kafka SASL认证介绍及自定义SASL PLAIN认证功能

    目录 kafka 2.x用户认证方式小结 SASL/PLAIN实例(配置及客户端) broker配置 客户端配置 自定义SASL/PLAIN认证(二次开发) kafka2新的callback接口介绍 ...

  6. MySQL与MariaDB核心特性比较详细版v1.0(覆盖mysql 8.0/mariadb 10.3,包括优化、功能及维护)

    注:本文严禁任何形式的转载,原文使用word编写,为了大家阅读方便,提供pdf版下载. MySQL与MariaDB主要特性比较详细版v1.0(不含HA).pdf 链接:https://pan.baid ...

  7. XEP-0078:非SASL认证

    XEP-0078:非SASL认证 抽象: 这个文件规定了使用Jabber的Jabber的服务器和服务认证的协议:智商:AUTH命名空间.注意哦:本文规定的协议,取而代之的SASL认证的被取代,如RFC ...

  8. Openldap基于digest-md5方式的SASL认证配置

    1. openldap编译 如果需要openldap支持SASL认证,需要在编译时加上–enable-spasswd选项安装完cyrus-sasl,openssl(可选),BDB包后执行: 1 2 $ ...

  9. mongodb分片集群开启安全认证

    原文地址:https://blog.csdn.net/uncle_david/article/details/78713551 对于搭建好的mongodb副本集加分片集群,为了安全,启动安全认证,使用 ...

随机推荐

  1. HMS Core 机器学习服务打造同传翻译新“声”态,AI让国际交流更顺畅

    2022年6月,HMS Core机器学习服务面向开发者提供一项全新的开放能力--同声传译,通过AI语音技术减少资源成本,加强沟通交流,旨在帮助开发者制作丰富多样的同声传译应用. HMS Core同声传 ...

  2. SuperSocket 1.6 创建一个简易的报文长度在头部的Socket服务器

    我们来做一个头为6位报文总长度,并且长度不包含长度域自身的例子.比如这样的Socket报文000006123456. 添加SuperSocket.Engine,直接使用Nuget搜索SuperSock ...

  3. JAVA编程练习01作业

    1.已知y与x的关系:,要求:从键盘上输入一个x的值,输出其对应的y的值. 2. 输入一个圆半径(r),计算并输出圆的面积和周长. 3.输入一个三位正整数n,输出其个位.十位和百位上的数字. 4.根据 ...

  4. Python图像处理丨三种实现图像形态学转化运算模式

    摘要:本篇文章主要讲解Python调用OpenCV实现图像形态学转化,包括图像开运算.图像闭运算和梯度运算 本文分享自华为云社区<[Python图像处理] 九.形态学之图像开运算.闭运算.梯度运 ...

  5. 记一次Linux server偶发CPU飙升问题的跟进与解决

    背景 进入6月后,随着一个主要功能版本api的上线,服务端的QPS翻了一倍,平时服务器的CPU使用稳定在30%上下,高峰期则在60%上下,但是偶尔会有单台机器出现持续数分钟突然飙到90%以上,导致大量 ...

  6. SpringBoot定时任务 - 集成quartz实现定时任务(单实例和分布式两种方式)

    最为常用定时任务框架是Quartz,并且Spring也集成了Quartz的框架,Quartz不仅支持单实例方式还支持分布式方式.本文主要介绍Quartz,基础的Quartz的集成案例本,以及实现基于数 ...

  7. 石火电光追风逐日|前端优化之次时代图片压缩格式WebP的项目级躬身实践(Python3 PIL+Nginx)

    原文转载自「刘悦的技术博客」https://v3u.cn/a_id_190 我们知道,在前端界有一个共识:速度就是生命,带宽就是金钱.怎样将页面加载速度有效提升是无数前端工程师无时不刻在思考的课题,目 ...

  8. 提交代码的其他方式,不单单只有git

    1.  xftp提交代码至服务器,直接连接服务器(如果使用可以直接到官网下载一个试用版或者家庭教育版的,本人不推荐使用破解版毕竟是直接和公司服务器对接出问题不好交代) // https://www.n ...

  9. DolphinScheduler 在绿瘦的实践成果,开启了我的开源之路!

    点击上方 蓝字关注我们 ✎ 编 者 按 2021 年,Apache DolphinScheduler 社区又迎来了新的蓬勃发展,社区活跃度持续提高.目前,项目 GitHub Star 已达 6.7k, ...

  10. Luogu2938 [USACO09FEB]股票市场Stock Market (DP,多重背包)

    第n天不卖,视为卖了又原价买回 #include <iostream> #include <cstdio> #include <cstring> #include ...