是否有可以使用AWS V4签名签署请求的.NET库?

Ric*_*d R 6 .net amazon-web-services aws-sdk aws-lambda aws-api-gateway

我有一个API网关,我在其中设置身份验证以使用AWS_IAM.这要求我使用AWS V4签名对每个请求进行签名,并在标头中附加HMAC.我发现库用于在nodejs中使用V4签名签署请求.但我找不到一个能够为我签名的图书馆.即使是针对.NET的aws-sdk也为自己的特定用例进行了抽象.那里有一个图书馆(我做了一个快速的谷歌搜索,没有找到结果)?或者我是否需要自己写出hmac?

小智 6

虽然这是一个老问题,但由于 AWS 没有“相应地优先考虑”上面的评论中所述的 .NET AWS 开发工具包,而且今天这仍然是一个相关的问题,我找到了一个很好的库,可以处理 AWS V4 请求为您签名。

这是 Nuget 包。

这是 GitHub 源代码和实现文档。

此外,我发现要使我的 API 网关 AWS_IAM 授权与临时安全凭证一起使用,您还需要在当前会话令牌中包含“x-amz-security-token”标头,因为它的值也在您的请求中.


Fan*_*sco 6

Aws4RequestSigner的替代方案是AwsSignatureVersion4。我认为它的 API 更容易使用,但我有偏见,因为我是后者的作者。


Mir*_*cea 5

你可以阅读签名是如何完成的,你可以(如果你想).我建议您使用AWS SDK for .NET并使用SDK中的功能来实际执行签名.

这是SDK的签名者:

https://github.com/aws/aws-sdk-net/blob/6c3be79bdafd5bfff1ab0bf5fec17abc66c7b516/sdk/src/Core/Amazon.Runtime/Internal/Auth/AWS4Signer.cs

您可能需要对其进行调整(即默认情况下它了解AWS服务和端点)

  • 我们(API网关)意识到需要官方.NET SDK支持并相应地优先考虑.在此期间,我建议@Mircea建议并且1)根据http://docs.aws.amazon.com/general/latest/gr/sigv4_signing.html实施自己的签名者或2)重复使用件现有的.NET AWS SDK (6认同)