我有一个API网关,我在那里设置身份验证使用AWS_IAM。这要求我用AWS V4签名对每个请求进行签名,并在头中附加HMAC。我在nodejs中找到了用V4签名对请求进行签名的库。但我找不到为我签名的库。即使是aws-sdk for .NET也针对它们自己的特定用例进行了此抽象。有库吗(我在谷歌上快速搜索了一下,没有找到任何结果)?还是我需要自己写出hmac?
yeotifhr1#
虽然这是一个老问题,因为AWS还没有“相应地优先考虑”关于.NET AWS SDK,如他们在上面的评论中所述,这仍然是一个相关的问题,今天,我发现了一个很好的库,将照顾AWS V4请求签名为您。Here is the Nuget package.Here is the GitHub source and implementation documentation.此外,我发现要使我的API Gateway AWS_IAM Authorization使用临时安全凭据,还需要在请求中包含“x-amz-security-token”头,并将当前会话令牌作为其值。
cnh2zyt32#
你可以阅读签名是如何完成的,你可以(如果你愿意的话)。我建议拉入awsdk for .NET并使用SDK中的功能来实际执行签名。以下是SDK的签名者:https://github.com/aws/aws-sdk-net/blob/6c3be79bdafd5bfff1ab0bf5fec17abc66c7b516/sdk/src/Core/Amazon.Runtime/Internal/Auth/AWS4Signer.cs您可能需要对其进行调整(即默认情况下它知道AWS服务和端点)
5jdjgkvh3#
Aws4RequestSigner的一个替代品是AwsSignatureVersion4。我认为它的API更容易使用,但我有偏见,因为我是后者的作者。
3条答案
按热度按时间yeotifhr1#
虽然这是一个老问题,因为AWS还没有“相应地优先考虑”关于.NET AWS SDK,如他们在上面的评论中所述,这仍然是一个相关的问题,今天,我发现了一个很好的库,将照顾AWS V4请求签名为您。
Here is the Nuget package.
Here is the GitHub source and implementation documentation.
此外,我发现要使我的API Gateway AWS_IAM Authorization使用临时安全凭据,还需要在请求中包含“x-amz-security-token”头,并将当前会话令牌作为其值。
cnh2zyt32#
你可以阅读签名是如何完成的,你可以(如果你愿意的话)。我建议拉入awsdk for .NET并使用SDK中的功能来实际执行签名。
以下是SDK的签名者:
https://github.com/aws/aws-sdk-net/blob/6c3be79bdafd5bfff1ab0bf5fec17abc66c7b516/sdk/src/Core/Amazon.Runtime/Internal/Auth/AWS4Signer.cs
您可能需要对其进行调整(即默认情况下它知道AWS服务和端点)
5jdjgkvh3#
Aws4RequestSigner的一个替代品是AwsSignatureVersion4。我认为它的API更容易使用,但我有偏见,因为我是后者的作者。