gpt4 book ai didi

apache-kafka - Kafka 是否可以提供自定义 LoginModule 来支持 LDAP?

转载 作者:行者123 更新时间:2023-12-05 00:14:17 26 4
gpt4 key购买 nike

Kafka 可以配置为使用多种身份验证机制:纯文本用户名/密码、Kerberos 或 SSL。前 2 个使用 SASL,其中需要一个 JAAS 配置文件。

对于纯文本身份验证方法,配置如下(取自 documentation ):

KafkaServer {
org.apache.kafka.common.security.plain.PlainLoginModule required
username="admin"
password="admin-secret"
user_admin="admin-secret"
user_alice="alice-secret";
};

如果可能,我想使用 LDAP 进行身份验证。我的问题是:如果我更换 PlainLoginModule具有实现 LoginModule 的类并将此类放在代理的类路径中,我可以以我希望的任何方式(即 LDAP)实现身份验证吗?

我不能以合理的方式使用 Kerberos,因为它的主体在我工作的组织内定义的方式,因此我希望使用 LDAP,因为我需要支持 RBAC。

最佳答案

是的,您可以为 Kafka 提供实现 LoginModule 的自定义类。并在其中包含您想要的身份验证逻辑。

然后用您的类名更新 JAAS 文件并确保它在类路径中。

您需要放置一些样板代码才能正确设置所有内容,但您可以使用 PlainLoginModule , PlainSaslServerProvider , PlainSaslServerFactoryPlainSaslServer作为例子。

您的 LoginModule类应该具有与 PlainLoginModule 相同的逻辑而是初始化您的 Provider实现(在静态块中)。

您的 Provider类应该具有与 PlainSaslServerProvider 相同的逻辑而是引用您的 SaslServerFactory执行。

您的 SaslFactory类应该再次具有与 PlainSaslServerFactory 相同的逻辑但是创建您的 SaslServer 的实例执行。

最后你的 SaslServer类应该在其 evaluateResponse() 中实现必要的 LDAP 逻辑。方法。只要确保设置正确设置this.authorizationId因为这将成为用户主体并设置 completetrue (就像 PlainSaslServer.evaluateResponse() 一样)

关于apache-kafka - Kafka 是否可以提供自定义 LoginModule 来支持 LDAP?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47295512/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com