从客户端使用Kafka超级用户ACL

时间:2016-10-13 16:01:47

标签: authentication apache-kafka acl

从官方的Kafka文档,以及在我旅行过程中涌现的博客海洋,看起来我可以启动一个server.properties配置文件包含的Kafka经纪人:

authorizer.class.name=kafka.security.auth.SimpleAclAuthorizer
super.users=User:Bob;User:Alice

这定义了两个超级用户(Bob + Alice),然后他们可以向我的经纪人主题发送消息并使用消息。

但是如何从客户端利用这些用户?如果我有一个需要向我的Kafka经纪人发送消息的Java客户端,该客户端如何"验证&#34 34;本身就像鲍勃' (或者' Alice'或其他任何超级用户)?

定义/使用超级用户密码在哪里?!?

1 个答案:

答案 0 :(得分:1)

本周我做了一些挖掘,看起来Kafka本身不支持“基本身份验证”式(用户名+密码)凭据。

看起来您可以设置Kerberos或类似的解决方案(JAAS / SASL等)来创建与Kafka一起使用的票证服务,这就是这些ACL的用途。我认为要点是,您首先要对Kerberos进行身份验证,此时您将被授予票证/令牌。然后,您将向Kafka提供您的用户名/原则以及您的票证,Kafka将与Kerberos合作以确保票证仍然有效。基于我能够掌握的一些模糊/模糊的博客,我认为它是如何运作的。

我还看到Kafka目前或计划使用LDAP获得某种集成层支持的证据,因此您可以将Kafka群集挂钩到AD或类似的。

管理Kafka身份验证的最佳方式,奇怪的是,似乎是Yahoo! Kafka Manager工具,这似乎是一个非常受欢迎,维护良好的项目,最近有更新和社区支持。这可能是我将要运行的,至少暂时如此。 HTH。