Kafka 核心技术与实战
胡夕
Apache Kafka Committer,老虎证券技术总监
52815 人已学习
新⼈⾸单¥68
登录后,你可以任选4讲全文学习
课程目录
已完结/共 47 讲
开篇词 (1讲)
结束语 (1讲)
Kafka 核心技术与实战
15
15
1.0x
00:00/00:00
登录|注册

33 | Kafka认证机制用哪家?

Delegation Token
OAUTHBEARER
SCRAM
PLAIN
GSSAPI
动态增减用户
消费消息
发送消息
启动Broker
创建JAAS文件
创建用户
Delegation Token
SASL/OAUTHBEARER
SASL/SCRAM
SASL/PLAIN
SASL/GSSAPI
SSL vs. SASL
SASL认证
SSL认证
认证与授权的区别
认证的定义
开放讨论
小结
SASL/SCRAM-SHA-256配置实例
认证机制的比较
Kafka认证机制
什么是认证机制?
Kafka认证机制

该思维导图由 AI 生成,仅供参考

你好,我是胡夕。今天我要和你分享的主题是:Kafka 的认证机制。

什么是认证机制?

所谓认证,又称“验证”“鉴权”,英文是 authentication,是指通过一定的手段,完成对用户身份的确认。认证的主要目的是确认当前声称为某种身份的用户确实是所声称的用户。
在计算机领域,经常和认证搞混的一个术语就是授权,英文是 authorization。授权一般是指对信息安全或计算机安全相关的资源定义与授予相应的访问权限。
举个简单的例子来区分下两者:认证要解决的是你要证明你是谁的问题,授权要解决的则是你能做什么的问题。
在 Kafka 中,认证和授权是两套独立的安全配置。我们今天主要讨论 Kafka 的认证机制,在专栏的下一讲内容中,我们将讨论授权机制。

Kafka 认证机制

自 0.9.0.0 版本开始,Kafka 正式引入了认证机制,用于实现基础的安全用户认证,这是将 Kafka 上云或进行多租户管理的必要步骤。截止到当前最新的 2.3 版本,Kafka 支持基于 SSL 和基于 SASL 的安全认证机制。
基于 SSL 的认证主要是指 Broker 和客户端的双路认证(2-way authentication)。通常来说,SSL 加密(Encryption)已经启用了单向认证,即客户端认证 Broker 的证书(Certificate)。如果要做 SSL 认证,那么我们要启用双路认证,也就是说 Broker 也要认证客户端的证书。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

Kafka认证机制对确保安全性至关重要。本文介绍了Kafka的认证机制,包括SSL和SASL等多种认证方式。SSL提供双向认证,而SASL支持多种机制,如GSSAPI、PLAIN、SCRAM等。文章对各种认证机制进行了比较,建议在实际应用中使用SSL进行通信加密,而使用SASL进行Kafka的认证实现。此外,针对不同场景,文章提供了选择认证机制的建议,如SASL/GSSAPI适用于已实施Kerberos认证的环境,而SASL/PLAIN适合小型公司中的Kafka集群。文章还介绍了SASL/SCRAM-SHA-256的配置实例,展示了动态增减用户的场景。总的来说,本文为读者提供了全面的Kafka认证机制知识,帮助读者在实际应用中做出明智的选择。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《Kafka 核心技术与实战》
新⼈⾸单¥68
立即购买
登录 后留言

全部留言(28)

  • 最新
  • 精选
  • 杰洛特
    老师,请问再java代码里怎么使用认证?比如 producer,是配置好了 conf 文件,然后传入参数吗? Properties props = new Properties(); props.put("producer.config", "<your_path>/producer.conf"); Producer<String, String> producer = new KafkaProducer<>(props) 类似这样可以吗?

    作者回复: 可以使用这样的方式: consumerProperties.put("sasl.jaas.config", "org.apache.kafka.common.security.scram.ScramLoginModule required username=\"reader2\" password=\"reader-pwd\";");

    2019-12-31
    11
  • 明翼
    老师说的这SCRAM认证用户名和密码直接保存在zookeeper上的,如果zookeeper不做安全控制,岂不是失去意义了?目前我们没有做认证的,研究过一段时间的ssl认证,很麻烦,还影响性能

    作者回复: 不是明文保存的。当然做ZooKeeper的认证也是很有必要的

    2019-08-17
    6
  • ProgramGeek
    老师,对于多个消费者,每个消费者分配的消息数量一样,每个消费者消费完的数据最快和最慢的大概有3s的差距,出现这个消费快慢差距会有哪些原因呢

    作者回复: 如果你确定是3s的差距,看看是不是这个consumer参数导致的:group.initial.rebalance.delay.ms。当前这个参数值默认是3秒。

    2019-08-19
    5
  • 胡小禾
    老师的测试中 SCRAM-SHA-256 以及 SCRAM-SHA-512 两个算法都用到了,其实使用其中之一是不是就足够了

    作者回复: 对,用一个就行

    2021-03-01
    2
  • Geek_a8727e
    kafka broker jaas 文件中admin 用户明文密码,如果别人能看到这个文件,相当于有了管理员的权限,安全性存在很大的风险,这块怎么考虑的

    作者回复: 就可以考虑使用SASL/Kerberos的认证方式

    2020-11-02
    2
  • 张洋
    老师,我这边认证过后,就可以使用producer 使用 writer 去发送消息了,那是不是相当于也是给 writer授权了呀(发送消息的权限)

    作者回复: 这篇文章没有配置ACL,因此不存在授权的问题,只有认证的问题:)

    2020-07-06
    2
  • TeamCC
    老师你好,我们生产上kafka总是发生leader切换,频率大概和zk fsync的告警日志一致,请问有经验吗?zk隔一段时间会有个fsync慢的告警日志,然后差不多同一个时间点,收到partition leader切换的告警

    作者回复: 查看一下磁盘的性能,以及可以查一下文件系统的vm.dirty_ratio,看看是不是flush频率过高导致的

    2019-08-19
    2
  • 花开漫夏
    请问下老师,认证后java代码如何访问?

    作者回复: 和之前类似,只不过你需要配置相应的Clients端参数,如sasl.jaas.config(如果用了SASL),security.protocol,sasl.mechanism(如果用了SASL)

    2020-02-18
    1
  • 昀溪
    老师,您讲的上面的例子中,reader和writer用户只是做了认证,没有做授权,它们默认的权限是什么呢?如果不授权就能收发消息么?

    作者回复: 默认没有任何权限。不授权不能收发消息

    2019-10-23
    1
  • 知易
    老师求助,,win10环境 执行命令: .\bin\windows\kafka-configs.bat --zookeeper localhost:2181 --alter --add-config 'SCRAM-SHA-256=[iterations=8192,password=admin],SCRAM-SHA-512=[password=admin]' --ent ity-type users --entity-name admin 报错如下: requirement failed: Unknown Dynamic Configuration: Set('SCRAM-SHA-256). 网上搜了很久,没有找到解决方案,,请老师解惑。感谢

    作者回复: 似乎是个已知问题,最好不要在Windows平台上跑Kafka,问题超多而且还无法解决

    2019-08-28
    2
    1
收起评论
显示
设置
留言
28
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部