可以为Kafka提供自定义的LoginModule以支持LDAP吗?

约翰

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

对于纯文本auth方法,配置看起来像(摘自文档):

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文件,并确保它在类路径中。

你需要把一些样板代码正确得到的一切设置,但你可以使用PlainLoginModulePlainSaslServerProviderPlainSaslServerFactoryPlainSaslServer作为例子。

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

您的Provider类应具有与之相同的逻辑,PlainSaslServerProvider但应引用您的SaslServerFactory实现。

您的SaslFactory类应该再次具有与之相同的逻辑,PlainSaslServerFactory但是创建实现的实例SaslServer

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

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

是否可以为Docker容器提供自定义网址?

可以为Fontastic自定义图标设置动画吗?

Android MVP-我可以为自定义视图和片段提供多个演示者吗

Android MVP-我可以为自定义视图和片段提供多个演示者吗

我可以为自定义视图创建自定义构造函数吗?

是否可以为(非文件支持的) mmap 区域添加自定义名称?

我可以为C#正则表达式定义自定义模式吗?

可以为<ons-bottom-toobar>定义自定义修饰符吗?

是否可以为jQuery datapicker提供自定义日期格式

是否可以为我的android应用程序提供自定义尺寸?

是否可以为NetOffice中的多个mailItem提供自定义弹出菜单

我可以为自定义钩子添加react-hooks / exhaustive-deps吗?

自定义滚动条时可以为横截面着色吗?

我可以为Django中的路径转换器分配自定义名称吗?

可以为力导向的布局指定自定义力函数吗?

我可以为Kubernetes入口设置自定义端口以在80/443之外监听吗?

我可以为LG 32LD HDTV的输入输入自定义名称吗?

我可以为stringTag自定义现有的viewWithTag:(NSInteger)方法吗?

我可以为我的应用禁用自定义键盘(iOS8)吗?

我可以为我的自定义值类型分配后缀吗?

我可以为fotorama全屏模式添加自定义按钮吗

我可以为Facebook分享按钮添加自定义Facebook图标吗?

我可以为我的自定义主题向 SUI.COLORS 添加新颜色吗?

我可以为光滑的滑块的每个自定义点使用不同的图像吗?

我可以为自定义日志功能启用格式警告吗?

我可以为 wordpress 创建第二个自定义标签系统吗?

更少支持自定义元素吗?

我可以在 LDAP/radius/Tacas/Active Directory 中自定义身份验证吗

是否可以为.Net Core中的属性中引用的自定义模型绑定程序提供参数?