使用 AWS_IAM auth (AWS API GATEWAY) 将查询字符串传递给 http 端点
Passing querystring to http endpoint with AWS_IAM auth (AWS API GATEWAY)
我有一个 GET 方法,其中包含一些在 AWS Api 网关中定义的查询字符串,此方法受 AWS IAM 身份验证保护。
当我使用任何查询字符串向邮递员发出请求时,我收到此消息:“我们计算的请求签名与您提供的签名不匹配。请检查您的 AWS 秘密访问密钥和签名方法。. .
但是,如果我删除 IAM 身份验证,它会起作用。
我们已经看到有关 Postman 默认设置 Content-Type header 为 "x-www-form-urlencoded" 的报告。在某些情况下,这会阻止它生成正确的签名。尝试在 Postman 中显式设置 Content-Type header of "application/json"。
如果这不起作用,请 post 您的 Postman 请求的详细信息,但不要 post 您的 AWS 访问密钥或密钥的实际值。另外,不要 post 实际签名值。
感谢迈克的及时回复。
看来问题出在邮递员的 mac 版本上,我再次尝试使用 chrome 版本并且效果很好。
我意识到这两个版本使用相同的 AWS 访问密钥和密钥生成不同的签名。
我们还发现某些版本的 Postman 在更改请求的其他方面后不会重置授权 header。在这些情况下,您可以手动删除授权 header 以强制 Postman 重新创建它。
我有一个 GET 方法,其中包含一些在 AWS Api 网关中定义的查询字符串,此方法受 AWS IAM 身份验证保护。
当我使用任何查询字符串向邮递员发出请求时,我收到此消息:“我们计算的请求签名与您提供的签名不匹配。请检查您的 AWS 秘密访问密钥和签名方法。. .
但是,如果我删除 IAM 身份验证,它会起作用。
我们已经看到有关 Postman 默认设置 Content-Type header 为 "x-www-form-urlencoded" 的报告。在某些情况下,这会阻止它生成正确的签名。尝试在 Postman 中显式设置 Content-Type header of "application/json"。
如果这不起作用,请 post 您的 Postman 请求的详细信息,但不要 post 您的 AWS 访问密钥或密钥的实际值。另外,不要 post 实际签名值。
感谢迈克的及时回复。 看来问题出在邮递员的 mac 版本上,我再次尝试使用 chrome 版本并且效果很好。 我意识到这两个版本使用相同的 AWS 访问密钥和密钥生成不同的签名。
我们还发现某些版本的 Postman 在更改请求的其他方面后不会重置授权 header。在这些情况下,您可以手动删除授权 header 以强制 Postman 重新创建它。