使用API​​网关的Cognito用户池

使用API​​网关的Cognito用户池

问题描述:

我不明白为什么我的用户池不会在我的API中验证方法。使用API​​网关的Cognito用户池

我已经开始使用简单的petstore示例,并为我的用户池添加了一个Authorizer。测试按钮显示我所拥有的JWT正在工作。我将该授权人应用于/pets的POST方法,将授权添加为请求标头。

当POST到/pets与邮差(或卷曲),传递Authorization: Bearer <token>头我总是得到{"message":"Unauthorized"}

我与创建链接到用户池的标识池周围乱七八糟的响应,经过身份验证的角色有一个允许访问API网关的策略。我在用户池中创建了一个组来分配这个组。

有一些我想念的东西。我希望允许任何通过Cognito提供有效ID JWT的用户访问POST方法。

政策:

{ 
    "Version": "2012-10-17", 
    "Statement": [ 
     { 
      "Effect": "Allow", 
      "Action": [ 
       "execute-api:Invoke" 
      ], 
      "Resource": "arn:aws:execute-api:us-east-1:*:XXX/*/POST/*" 
     } 
    ] 
} 

其中在模拟器工作正常。我并不十分确定这项政策应该发挥作用。我并不清楚提供的用户池身份验证器如何获取该策略,但它并未出现在我看到的任何文档中。我刚开始在墙上扔飞镖。

只希望听到任何人已经用Userpool保护了API网关端点。

+0

您可以发布允许访问API网关的政策吗?请注意,该操作需要“执行api:调用”而不是“apigateway:*”(这是API管理API) –

对于我来说,使用Postman在授权标题中没有“承载者”。

+0

不能投票表决足够。卷曲也是如此,所以这不是邮差的错。“承载者”被记录为必需的。但是我的经验表明,Authorization:标题应该只是Id JWT –