AWS API-Gateway Cognito授权人无法使用有效令牌

时间:2019-03-29 17:55:15

标签: amazon-web-services aws-lambda authorization aws-api-gateway amazon-cognito

使用 Authorizer Test 按钮(或使用postman / Insomnia)和有效令牌时,带有 Cognito用户池授权者的简单API端点失败(屏幕截图如下) ):

enter image description here

我知道令牌是有效的,因为我可以使用相同的令牌成功调用Cognito用户池user-info端点,并获得所需的响应。 同样删除授权者(将其设置为None)也将返回所需的响应。 我尝试过使用Bearer ...和不使用Authorization的情况,也尝试过将method.request.header.Authorization令牌源更改为Authorization,就像我在some older Question中发现的那样,但是保存后立即,它将其更改回method.response.header.Authorization,而plt.scatter(y,Coh1mean40,label='1', c='r') plt.scatter(y, Coh75mean40,label='75', c='b') plt.scatter(y,Coh05mean40,label='50', c='y') plt.scatter(y,Coh25mean40,label='25', c='g') plt.scatter(y,Coh00mean40,label='0') plt.legend() plt.show() 似乎也不起作用。 该API是通过CloudFormation堆栈部署的。

1 个答案:

答案 0 :(得分:0)

由于缺少文档,因此我正在编写有关此问题的完整指南,并且很难找到适合此类简单任务的正确信息。但是可能要花几天的时间,因此在此之前,我将在此处发布一个简短的答案,并希望(一旦完成)指南,我将更新此答案:

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

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

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