AWS.MSK.Auth 1.0.0

前缀已预留
dotnet add package AWS.MSK.Auth --version 1.0.0                
NuGet\Install-Package AWS.MSK.Auth -Version 1.0.0                
此命令建议用于Visual Studio的包管理器控制台,因为它使用NuGet模块的Install-Package版本。
<PackageReference Include="AWS.MSK.Auth" Version="1.0.0" />                
对于支持PackageReference的项目,请将此XML节点复制到项目文件以引用该包。
paket add AWS.MSK.Auth --version 1.0.0                
#r "nuget: AWS.MSK.Auth, 1.0.0"                
#r指令可以在F# Interactive和Polyglot Notebooks中使用。将此内容复制到交互工具或脚本源代码中以引用包。
// Install AWS.MSK.Auth as a Cake Addin
#addin nuget:?package=AWS.MSK.Auth&version=1.0.0

// Install AWS.MSK.Auth as a Cake Tool
#tool nuget:?package=AWS.MSK.Auth&version=1.0.0                

AWS MSK IAM SASL Signer for .NET

Build status Apache V2 License Security Scan

aws-msk-iam-sasl-signer-net是AWS MSK IAM SASL Signer for .NET。

此库提供了编码的IAM v4签名,可用作身份验证MSK集群的IAM Auth令牌。

AWS MSK IAM SASL Signer for .NET的目标框架为netstandard2.0

有关有关库的最新错误修复、更新和添加的功能的信息,请查阅发行说明

跳转到

<a name="getting-started"></a> 入门

要使用您的Kafka客户端库开始使用AWS MSK IAM SASL Signer for .NET,请按照以下代码示例操作-

添加依赖项

AWS MSK IAM SASL SIGNER通过NuGet发行。我们提供可导入到您开发环境中的包AWS.MSK.Auth

编写代码

例如,您可以使用signer库,使用以下confluent-kafka-dotnet库生成基于IAM的OAUTH令牌:

   var producerConfig = new ProducerConfig
   {
       BootstrapServers = < BOOTSTRAP - SERVER - HERE >,
       SecurityProtocol = SecurityProtocol.SaslSsl,
       SaslMechanism = SaslMechanism.OAuthBearer
   };

   AWSMSKAuthTokenGenerator mskAuthTokenGenerator = new AWSMSKAuthTokenGenerator();

   //Callback to handle OAuth bearer token refresh. It fetches the OAUTH Token from the AWSMSKAuthTokenGenerator class. 
   void OauthCallback(IClient client, string cfg)
   {
       try
       {
           var (token, expiryMs) = await mskAuthTokenGenerator.GenerateAuthTokenAsync(Amazon.RegionEndpoint.USEast1);
           client.OAuthBearerSetToken(token, expiryMs, "DummyPrincipal");
       }
       catch (Exception e)
       {
           client.OAuthBearerSetTokenFailure(e.ToString());
       }
   }

   var producer = new ProducerBuilder<string, string>(producerConfig)
                       .SetOAuthBearerTokenRefreshHandler(OauthCallback).Build();
           try
           {
               var deliveryReport = await producer.ProduceAsync("test-topic", new Message<string, string> { Value = "Hello from .NET" });

               Console.WriteLine($"Produced message to {deliveryReport.TopicPartitionOffset}");
           }
           catch (ProduceException<string, string> e)
           {
               Console.WriteLine($"failed to deliver message: {e.Message} [{e.Error.Code}]");
           }

生成认证令牌的更多示例

指定客户端的备用凭据配置文件

AWSMSKAuthTokenGenerator mskAuthTokenGenerator = new AWSMSKAuthTokenGenerator();
var (token, expiryMs) = await mskAuthTokenGenerator.GenerateAuthTokenFromProfileAsync(Amazon.RegionEndpoint.USEast1, "profileName");

指定基于角色的客户端凭据

AWSMSKAuthTokenGenerator mskAuthTokenGenerator = new AWSMSKAuthTokenGenerator();
var (token, expiryMs) = await mskAuthTokenGenerator.GenerateAuthTokenFromRoleAsync(Amazon.RegionEndpoint.USEast1, "roleName", "roleSessioName");

注意,在此处roleSessionName是可选的。如果没有指定,将使用默认名称。这将使用默认的令牌过期时间,并为每次调用创建一个新的STS客户端。为了更高的可配置性,请使用以下方法,该方法以凭据提供程序作为输入。这允许您在签署请求时提供自己的凭据。

<a name="credential-provider-method"></a>指定客户端的AWS凭据提供程序

AWSMSKAuthTokenGenerator mskAuthTokenGenerator = new AWSMSKAuthTokenGenerator();
var (token, expiryMs) = await mskAuthTokenGenerator.GenerateAuthTokenFromCredentialsProviderAsyc(Amazon.RegionEndpoint.USEast1, () => new BasicAWSCredentials("secretKey", "accessKey"));

<a name="troubleshooting"></a>故障排除

<a name="debug-creds"></a>找出正在使用哪个身份

当使用默认凭据时,您可能会收到访问拒绝错误,并且可能会有一些疑问,不知道确切使用了哪个凭据。凭据可能来自角色ARN、EC2实例配置文件、凭据配置文件等。

在这种情况下,您可以在获取令牌之前设置可选参数awsDebugCreds并设置为true。

var (token, expiryMs) = mskAuthTokenGenerator.GenerateAuthTokenAsync(Amazon.RegionEndpoint.USEast1, awsDebugCreds:true);

客户端库将打印如下格式的调试日志:

"Credentials Identity: UserId: ABCD:test124, Account: 1234567890, Arn: arn:aws:sts::1234567890:assumed-role/abc/test124"

<a name="getting-help"></a>获取帮助

请使用这些社区资源来获取帮助。我们使用GitHub问题来跟踪错误和功能请求。

  • 提出一个问题或打开一个讨论
  • 如果您认为您可能找到一个错误,请打开一个问题
  • 通过AWS支持打开支持票据。

此存储库提供适用于任何.NET Kafka客户端的SASL/OAUTHBEARER机制的可挂载库。有关SASL/OAUTHBEARER机制的信息,请参阅KIP 255

打开的问题

如果您在使用AWS MSK IAM SASL Signer for .NET时遇到错误,我们希望听到您的情况。在打开新的错误报告之前,请先搜索现有的问题,看看是否其他人也遇到了同样的问题。请包括AWS MSK IAM SASL Signer for .NET的版本以及您使用的操作系统。在适当的情况下,请包括复现案例。

GitHub问题打算用于错误报告和功能请求。有关使用AWS MSK IAM SASL Signer for .NET的问题和疑问,请使用获取帮助部分中列出的资源。保持打开问题的列表精简将帮助我们及时响应。

<a name="contributing"></a>反馈和贡献

AWS MSK IAM SASL Signer for .NET将使用GitHub 问题来跟踪功能请求和库的问题。此外,我们将使用GitHub 项目来跟踪跨越多个拉取请求的大型任务,例如重构库的内部请求生命周期。您可以通过几种方式向我们提供反馈。

GitHub 问题。要反馈或报告错误,请提交库的 GitHub 问题。这是提供反馈的首选机制,以便其他用户可以参与到对话中,对问题点赞等。您提交的问题将被评估,并纳入我们的 GA 发布路线图中。

贡献。您可以开启拉取请求来修复或添加 AWS MSK IAM SASL Signer for .NET。所有拉取请求都必须在 Apache 2.0 许可下提交,并在合并之前由团队成员进行审查。伴随单元测试将在可能的情况下受到赞赏。

<a name="resources"></a> 资源

开发者指南 - 使用此文档了解如何开始并使用 AWS MSK IAM SASL Signer for .NET。

服务文档 - 使用此文档了解如何与 AWS MSK 进行接口。

问题 - 报告问题、提交拉取请求和参与其中(参见 Apache 2.0 许可协议

产品 兼容及其他计算目标框架版本。
.NET net5.0 已计算。 net5.0-windows 已计算。 net6.0 已计算。 net6.0-android 已计算。 net6.0-ios 已计算。 net6.0-maccatalyst 已计算。 net6.0-macos 已计算。 net6.0-tvos 已计算。 net6.0-windows 已计算。 net7.0 已计算。 net7.0-android 已计算。 net7.0-ios 已计算。 net7.0-maccatalyst 已计算。 net7.0-macos 已计算。 net7.0-tvos 已计算。 net7.0-windows 已计算。 net8.0 已计算。 net8.0-android 已计算。 net8.0-browser 已计算。 net8.0-ios 已计算。 net8.0-maccatalyst 已计算。 net8.0-macos 已计算。 net8.0-tvos 已计算。 net8.0-windows 已计算。
.NET Core netcoreapp2.0 已计算。  netcoreapp2.1 已计算。  netcoreapp2.2 已计算。  netcoreapp3.0 已计算。  netcoreapp3.1 已计算。 
.NET标准 netstandard2.0 兼容。  netstandard2.1 已计算。 
.NET框架 net461 已计算。  net462 已计算。  net463 已计算。  net47 已计算。  net471 已计算。  net472 已计算。  net48 已计算。  net481 已计算。 
MonoAndroid monoandroid 已计算。 
MonoMac monomac 已计算。 
MonoTouch monotouch 已计算。 
Tizen tizen40 已计算。  tizen60 已计算。 
Xamarin.iOS xamarinios 已计算。 
Xamarin.Mac xamarinmac 已计算。 
Xamarin.TVOS xamarintvos 已计算。 
Xamarin.WatchOS xamarinwatchos 已计算。 
兼容的目标框架
包含的目标框架(在包中)
了解有关目标框架.NET 标准的更多信息。

NuGet 包

此包未由任何 NuGet 包使用。

GitHub 仓库

此包未由任何流行的 GitHub 仓库使用。

版本 下载 最后更新
1.0.0 94,369 11/10/2023