2

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

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

/pets当使用邮递员(或 curl)进行 POST 时,传递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/*"
        }
    ]
}

在模拟器中运行良好。不过,我不能 100% 确定该政策是否应该发挥作用。我不清楚提供的用户池身份验证器将如何获取该策略,它不在我看到的任何文档中。我刚开始往墙上扔飞镖。

只是想听听有人使用用户池保护了 API 网关端点。

4

1 回答 1

3

对我来说,使用邮递员在授权标题中没有“承载”的情况下工作。

于 2017-03-06T13:28:51.173 回答