与 kafka 或其他框架一起使用时,是否存在 JAAS / SASL / PLAIN / SCRAM 的安全架构图?

问题描述

我不是专家,但我知道通常与 kafka 一起使用的身份验证机制。 kafka 的常见用例/实现使用 SASL Plain 或 SASL SCRAM 即
security.protocol=SASL_SSLsecurity.protocol=SASL_PLAINTEXT(不推荐用于 PLAIN 机制)

sasl.mechanism=SCRAM-SHA-256 或 512 或 sasl.mechanism=PLAIN(不再推荐)。

然后我看到 JAAS 配置如下 -
sasl.jaas.config = org.apache.kafka.common.security.scram.ScramLoginModule required username password

我没有看到的是 JAAS 如何适应客户端和服务器架构。有没有我可以参考的架构图来获得更大的图景。我在谷歌上搜索了 kafka 的安全架构以及 JAAS 如何适应它,但没有运气。
有人可以帮忙吗。

解决方法

您正在 KAFKA_OPTS 或客户端属性中将 jaas 文件设置为 java 参数

导出 KAFKA_OPTS="-Djava.security.auth.login.config=/etc/kafka/client_jaas.conf"

使用 KafkaClient {}

或者使用客户端配置

sasl.jaas.config=org.apache.kafka.common.security.plain.PlainLoginModule 需要
用户名=“用户”
密码="psw";

https://docs.confluent.io/platform/current/kafka/authentication_sasl/index.html

或者如果您使用的是 java spring 框架,请查看此文档

https://docs.spring.io/spring-security/site/docs/4.2.x/reference/html/jaas.html

Jaas 是包含对 kafka 集群进行身份验证的应用用户信息的文件/配置