如何用kerberos在c#中配置kafka producer

gpnt7bae  于 2021-06-07  发布在  Kafka
关注(0)|答案(1)|浏览(460)

嗨,我有一个问题,连接到Kafka在我的服务器上。。。
我在linux服务器上有kafka(带有kerberos),java客户机通过添加configuration keytab、principal(jaas config)与之连接,现在我需要向c#app添加类似的配置,它将向kafka生成一些消息。c#应用程序将在windows计算机上运行。
应用程序正在使用confluent.kafka,连接到没有kerberos身份验证的kafka非常简单,我就像在https://github.com/confluentinc/confluent-kafka-dotnet
但现在我需要配置它连接到安全环境。。。
那么如何配置将使用现有keytab文件和主体的连接呢?
我在java中看到了很多例子,但在c中没有类似问题的工作示例#
如果有任何提示能进一步解决我的问题,我将不胜感激
//更新
当我使用config时它就开始工作了,比如:

config = new Dictionary<string, object>
        {
            {"bootstrap.servers", KAFKA_BROKER_SERVERS},
            {"api.version.request", "true"},
            {"security.protocol", "SASL_PLAINTEXT"},
            {"sasl.kerberos.service.name", "kafka"},
            {"sasl.kerberos.principal", "myPrincaipal@REALM"},
            {"debug", "security,broker,protocol"}
        };
vohkndzv

vohkndzv1#

合流kafka dotnet(或者更准确地说是librdkafka,底层kafka客户机实现)将在windows上使用windows本机sspi进行kerberos身份验证。这意味着您将无法使用keytab等,而是依赖于windows广告上登录用户的凭据。
这里有一个社区贡献的指南:https://github.com/edenhill/librdkafka/wiki/using-sasl-with-librdkafka-on-windows

相关问题