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

时间:2016-05-13 19:02:58

标签: .net amazon-web-services aws-sdk aws-api-gateway aws-lambda

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

3 个答案:

答案 0 :(得分: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服务和端点)

答案 1 :(得分:2)

尽管这是一个古老的问题,由于AWS并未如上述评论中所述对.NET AWS SDK进行“相应的优先排序”,而今天这仍然是一个相关的问题,所以我找到了一个很好的库来照顾为您签名的AWS V4请求。

Here is the Nuget package.

Here is the GitHub source and implementation documentation.

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

答案 2 :(得分:-1)

Aws4RequestSignerAwsSignatureVersion4的替代方法。我认为它的API更易于使用,但由于我是后者的作者,所以我有偏见。