我正在阅读Kafka文档(版本0.11.0),我希望根据客户证书对消费者和出版商的主题进行身份验证和授权。
它的工作方式应该是基于dn,或者仅仅是它的一部分,比如cn、email或者其他什么。
我看到kafka代理可以配置为通过tls使用安全通信,并基于客户端证书对传入连接进行身份验证。但在我看来,就是这样。这就是kafka代理对客户端证书所能做的。主题的acl应该使用sasl,在这里我们可以使用plain、kerberos或scram。
那么,是否可以在ssl证书中基于cn名称对客户端的连接进行身份验证,并在kafka(kafka 2.11-0.11.0.1)中基于该名称对主题进行acl设置呢?
1条答案
按热度按时间bwitn5fc1#
是的,使用现成的工具可以基于ssl用户名设置acl,但是默认主体生成器使用的不仅仅是较短的cn值作为用户名。
来自于https://docs.confluent.io/current/kafka/authorization.html
默认情况下,ssl用户名的格式为
cn=写入者,ou=未知,o=未知,l=未知,st=未知,c=未知
可以通过在server.properties中设置自定义的principalbuilder来改变这一点,如下所示:
principal.builder.class=自定义PrincipalBuilderClass