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
<PackageReference Include="AWS.MSK.Auth" Version="1.0.0" />
paket add AWS.MSK.Auth --version 1.0.0
#r "nuget: AWS.MSK.Auth, 1.0.0"
// 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
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问题来跟踪错误和功能请求。
此存储库提供适用于任何.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 已计算。 |
-
.NETStandard 2.0
- AWSSDK.Core (>= 3.7.107.9)
- AWSSDK.SecurityToken (>= 3.7.103.16)
- Microsoft.Extensions.Logging.Abstractions (>= 7.0.1)
NuGet 包
此包未由任何 NuGet 包使用。
GitHub 仓库
此包未由任何流行的 GitHub 仓库使用。
版本 | 下载 | 最后更新 |
---|---|---|
1.0.0 | 94,369 | 11/10/2023 |