如何使用C#/C++/librdkafka与OIDC和Azure AD作为apache kafka中的ODB 2 BEARER的令牌提供程序?

llmtgqce  于 5个月前  发布在  Apache
关注(0)|答案(1)|浏览(81)

我尝试使用C#生成消息到Apache Kafka。但是我注意到有一个名为sasl.login.callback.handler.class的配置应该在Kafka生产者客户端中配置。但是我找不到正确的位置来配置它。有人可以帮助吗?非常感谢!
我注意到使用C#的生产者客户端与C++/librdkafka相关。所以我将它们添加到标题中。我在librdkafka(https://github.com/confluentinc/librdkafka/blob/master/CONFIGURATION.md)中找不到sasl.login.callback.handler.class。
以下是我的配置:

private ProducerConfig _config = new ProducerConfig();
_config.BootstrapServers = server;
_config.ClientId = clientId;
_config.SecurityProtocol = SecurityProtocol.SaslPlaintext;
_config.SaslMechanism = SaslMechanism.OAuthBearer;
_config.SaslOauthbearerClientId = "MyClientId";
_config.SaslOauthbearerClientSecret = "MyClientSecret";
_config.SaslOauthbearerScope = "ServerClientId/.default";
_config.SaslOauthbearerTokenEndpointUrl = "https://login.microsoftonline.com/MyTenantId/oauth2/v2.0/token";

字符串
需要找到一个解决方案,使用C#/C++来生成带有OAuth AAD令牌的msg到Apache Kafka。

vm0i2vca

vm0i2vca1#

我已经找到解决办法了。
librdkafka不需要设置sasl.login.callback.handler.class,但需要将sasl.oauthbearer.method设置为OIDC。
我已经用C#测试过了,它很好用。
以下是我对OAuth AAD的看法:

private ProducerConfig producerConfig = new ProducerConfig();
producerConfig.SaslMechanism = SaslMechanism.OAuthBearer;
producerConfig.SecurityProtocol = SecurityProtocol.SaslPlaintext;
producerConfig.SaslOauthbearerMethod = SaslOauthbearerMethod.Oidc;
producerConfig.SaslOauthbearerClientId = YourClientId;
producerConfig.SaslOauthbearerClientSecret = YourClientSecret;
producerConfig.SaslOauthbearerScope = "ServerTenantId/.default";
producerConfig.SaslOauthbearerTokenEndpointUrl = "https://login.microsoftonline.com/YourTenantId/oauth2/v2.0/token";

字符串

相关问题