AWS API-Gateway Cognito Authorizer 无法使用有效的令牌

mim*_*mim 5 authorization amazon-web-services amazon-cognito aws-lambda aws-api-gateway

一个带有Cognito User Pool Authorizer的简单 API 端点,当使用Authorizer Test按钮(或使用 postman/Insomnia )和有效令牌失败时(屏幕截图如下):

在此处输入图片说明

我知道令牌是有效的,因为我可以user-info使用相同的令牌成功调用 Cognito 用户池端点并获得所需的响应。同时删除授权人(将其设置为None),也将返回所需的响应。我已经尝试过使用和不使用Bearer ...,我还尝试将Authorization令牌源更改method.request.header.Authorization为我在一些较旧的问题中发现的,但在保存后立即将其更改回Authorization,而method.response.header.Authorization似乎也不起作用。API 是通过 CloudFormation 堆栈部署的。

mim*_*mim 7

我正在编写有关此问题的完整指南,因为缺少文档,而且要为这样一个简单的任务找到正确的信息并不容易。但可能需要几天时间,所以在那之前我会在这里发布一个简短的答案,一旦(希望)我完成了指南,我会更新这个答案:

我的问题是我使用的是access_token,但我必须使用identity_token! 另一个问题是,没有可用的OAuth2工具(如 Postman 和 Insomnia 的 Auth 模块)返回或使用identity_token,它们甚至不显示令牌!虽然它在 OAuth2 规范中,但没有人使用它(除了 Cognito!),...

所以我对 OAuth2 模块的 Insomnia 源代码进行了一些更改并使用了正确的令牌,然后它开始工作了!

我将对Insomnia进行PR,如果它通过该功能可能会在下一个版本中可用,否则,我将使我的打包二进制文件可用,以便 peep 可以使用它,否则,从 AWS 获取令牌是一场噩梦!

  • 感谢您的回答,我正在为同样的问题而苦苦挣扎 (2认同)