【发布时间】:2019-04-28 07:39:08
【问题描述】:
我的目标是让我的用户使用 Cognito 登录并获得一个临时 IAM 角色,允许他们通过 HTTP 访问 API Gateway 中的特定方法。
到目前为止我做了什么:
- 设置我的用户池
- 设置我的身份池
为经过身份验证和未经身份验证的用户设置 IAM 角色
设置一个具有 IAM 角色的组,允许访问 POST 到(在 存在)所有 API 网关方法。
将我的用户加入群组
设置我的 API 网关方法以使用
IAM授权
我可以在浏览器中使用通过 Amplify 创建的前端通过 Cognito 登录。
当我检查浏览器本地存储时,我可以看到我有以下内容:
idTokenaccessTokenrefreshToken
当我在 API 网关上使用 COGNITO 授权方完成此操作后,我在 Postman 中所要做的就是添加一个 Authorization 标头并粘贴到 idToken 中。这让我可以访问 API。
如何使用具有 IAM 授权的 Postman 测试我的 API?
我仍然得到了令牌,但现在将它们粘贴到 Authorization 标头中会给我一条错误消息:
Authorization header requires 'Credential' parameter. Authorization header requires 'Signature' parameter. Authorization header requires 'SignedHeaders' parameter. Authorization header requires existence of either a 'X-Amz-Date' or a 'Date' header.
我已经读到我需要签署请求,但我不确定如何从基于 Web 浏览器的应用程序中执行此操作。
即使我可以做到这一点,我如何在 Postman 中进行测试,或者这不再可能?
【问题讨论】:
标签: amazon-web-services postman aws-api-gateway amazon-cognito