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



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

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

这定义了两个超级用户(Bob + Alice),他们可以生成消息到我的代理的主题,并从代理的主题中消费消息。

但是我如何从客户端利用这些用户呢?如果我有一个Java客户端需要向我的Kafka代理发送消息,该客户端如何"认证"自己为"Bob"(或"Alice",或任何其他超级用户)?

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

我这周做了一些调查,看起来Kafka不支持"基本认证"风格(用户名+密码)的凭据。

看起来你可以设置Kerberos或类似的解决方案(JAAS/SASL等)来创建与Kafka一起工作的票证服务,这就是这些acl的作用。我认为的要点是,您首先要对Kerberos进行身份验证,然后您将获得一个票证/令牌。然后你将你的用户名/原则和票据一起提交给Kafka, Kafka将与Kerberos一起工作以确保票据仍然有效。我认为这就是它的工作原理,基于一些晦涩/模糊的博客,我能够得到我的手。

我也看到有证据表明Kafka目前,或者计划,有某种与LDAP的集成层支持,所以你可能能够将你的Kafka集群连接到AD或类似的。

管理Kafka身份验证的最好方法,奇怪的是,似乎是Yahoo!Kafka Manager工具,它似乎是一个非常受欢迎的,维护良好的项目,充满了最近的更新和社区支持。这可能是我将运行的,至少目前是这样。HTH .

最新更新