基于客户端证书 DN 或其部分的 Kafka ACL 到主题

use*_*721 1 authentication ssl authorization ssl-certificate apache-kafka

我正在阅读 Kafka 文档(版本 0.11.0),我希望根据其客户端证书对消费者和发布者的主题进行身份验证和授权。

它的工作方式应该是根据 DN 或仅其一部分(如 CN、电子邮件或其他内容)授予授权。

我发现 Kafka 代理可以配置为通过 TLS 使用安全通信,并根据客户端证书对传入连接进行身份验证。但从我的角度来看,就是这样。这就是 Kafka 代理可以使用客户端证书执行的所有操作。主题的 ACL 应使用 SASL,其中我们可以使用 PLAIN、Kerberos 或 SCRAM。

那么是否可以根据 SSL 证书中的 CN 名称来验证客户端的连接,并将基于它的主题的 ACL 设置放入 Kafka (kafka_2.11-0.11.0.1) 中?

Han*_*sen 6

是的,可以使用开箱即用的工具根据 SSL 用户名设置 ACL,但默认的主体构建器不仅仅使用较短的 CN 值作为用户名。

来自 Confluence 在线文档https://docs.confluence.io/current/kafka/authorization.html

默认情况下,SSL 用户名的格式为

CN=写入用户、OU=未知、O=未知、L=未知、ST=未知、C=未知

人们可以通过在 server.properties 中设置自定义的 PrimaryBuilder 来更改这一点,如下所示:

principal.builder.class=CustomizedPrincipalBuilderClass