API网关Cognito用户池授权程序 - 401未经授权

ASR*_*ASR 3 amazon-cognito aws-api-gateway

我试图让我的API网关与Cognito用户池授权程序一起工作,但我似乎无法让它工作.我目前没有使用任何SDK.一些细节 - 对于Cognito池,我有设置ID提供者作为认知用户池,Oauth流'impilicit grant'和范围为'openid'.创建了一个也生成了客户端密钥的应用程序(和域).电子邮件是唯一的字段. - 在API网关上,我为cognito auth&header添加了与"授权"相同的用户池.没有添加范围且没有令牌验证.

我使用Cognito的默认登录页面登录并检索'id_token'(登录后出现在URL中)并在postman中使用它将我的API激活为'401未授权'.我在API网关授权测试工具中使用相同的令牌,我仍然未经授权.很明显,我的标记是问题所在.

我已经尝试了各种组合的oauth流和范围和api网关与lambda集成,以创建另一个与模拟集成.同样错误地创建了具有和不具有客户端密钥的不同用户池和应用程序.

如果上面没有工作我会很好(相信我的错误)但同样的事情适用于尝试过的同事.唯一的区别是,在登录后,他指向一个localhost页面,在那里他成功地使用该令牌捕获了相同的"id_token"并点击了API网关.

所以我无法弄清楚有什么区别?是不是应该按照我的方式工作?

当我从邮递员那里点击API时,一些cloudwatch访问日志.(也试过卷曲)

{"requestId":"bb9ba6a2-6c25-11e8-b024-530b33bce48d","ip":"xxxx","来电者":" - ","用户":" - ","requestTime":"09/Jun/2018:20:43:15 +0000","httpMethod":"GET","resourcePath":"/ test","status":"401","protocol":"HTTP/1.1","responseLength": "26","authProvider":" - ","authType":" - ","claimProperty":" - ","property":" - ","principalId":" - "}

谢谢.任何帮助表示赞赏.

ASR*_*ASR 7

结果也是一个非常愚蠢的错误access_token.有了id_token它的正确性.花了我2天才搞清楚!

  • *更新*你就是那个男人!我意识到我犯了与你完全相同的错误,即我没有意识到在复制“id_token”的值时我还包括了“&access_token=<access_token>”,这当然会给我一个401。 (2认同)