从Kafka的官方文件,以及在我旅行过程中翻腾起来的博客海洋来看,我似乎可以创造一个Kafka经纪人 server.properties
配置文件包含:
authorizer.class.name=kafka.security.auth.SimpleAclAuthorizer
super.users=User:Bob;User:Alice
这定义了两个超级用户(bob+alice),他们可以向我的代理主题生成消息,并从中使用消息。
但是如何从客户端利用这些用户呢?如果我有一个java客户机需要向kafka代理发送消息,那么该客户机如何将自己“验证”为“bob”(或“alice”,或任何其他超级用户)?
超级用户密码在哪里定义/使用?!?
1条答案
按热度按时间llew8vvj1#
我这周做了一些挖掘,看起来“基本身份验证”样式(用户名+密码)的凭证在Kafka本身是不受支持的。
看起来您可以设置kerberos或类似的解决方案(jaas/sasl等)来创建一个与kafka一起工作的票证服务,这就是这些acl的用途。我认为要点是您首先要针对kerberos进行身份验证,此时您将被授予一个票证/令牌。然后您将把您的用户名/原则与您的票证一起提交给kafka,kafka将与kerberos一起工作以确保票证仍然有效。我想这就是它的工作原理,基于一些我能接触到的模糊的博客。
我还看到有证据表明kafka目前或计划使用ldap提供某种集成层支持,因此您可以将kafka集群连接到ad或类似的平台。
奇怪的是,管理Kafka身份验证的最佳方法似乎是雅虎!Kafka管理器工具,这似乎是一个非常流行的,维护良好的项目与最近的更新和社区支持充斥。这很可能是我将运行的,至少暂时。嗯。