【问题标题】:How to configurate kafka producer in C# with Kerberos如何在 C# 中使用 Kerberos 配置 kafka 生产者
【发布时间】:2018-07-15 05:56:41
【问题描述】:

您好,我的服务器上连接到 kafka 时出现问题...

我在 Linux 服务器(使用 Kerberos)上有 kafka,通过添加配置 keytab、主体(jaas 配置)连接到它的 java 客户端,现在我需要向 c# 应用程序添加类似的配置,这将产生一些消息卡夫卡。 C# 应用程序可以在 Windows 机器上运行。

C# 应用程序正在使用 Confluent.Kafka,连接到没有 kerberos 身份验证的 kafka 非常简单,我这样做就像 https://github.com/confluentinc/confluent-kafka-dotnet

但现在我需要将其配置为连接到受保护的环境...

那么如何配置将使用现有 keytab 文件和主体的连接?

我在 java 中看到很多示例,但在 C# 中没有类似问题的有效示例

如果有任何提示可以进一步解决我的问题,我将不胜感激

//更新

当我使用如下配置时它开始工作:

        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"}
        };

【问题讨论】:

  • 是的,第一次我不知道如何使用它,但在我阅读了更多关于它的信息后,我尝试了我之前尝试过的不同凭据并且它有效,现在我在消息编码方面遇到了一些其他问题,但是这是我目标的一站:)

标签: c# apache-kafka kerberos kafka-producer-api confluent-platform


【解决方案1】:

confluent-kafka-dotnet(或更准确地说是 librdkafka,底层 Kafka 客户端实现)将使用 Windows 原生 SSPI 在 Windows 上进行 Kerberos 身份验证。 这意味着您将无法使用 keytab 等,而是依赖 Windows AD 上的登录用户凭据。

这里有一个社区贡献的指南: https://github.com/edenhill/librdkafka/wiki/Using-SASL-with-librdkafka-on-Windows

【讨论】:

    猜你喜欢
    • 2016-06-26
    • 1970-01-01
    • 2023-02-03
    • 1970-01-01
    • 1970-01-01
    • 2019-11-30
    • 1970-01-01
    • 2021-12-31
    • 1970-01-01
    相关资源
    最近更新 更多