首页 文章

使用API网关的Cognito用户池

提问于
浏览
2

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

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

当使用postman(或curl)POST到 /pets 时,传递 Authorization: Bearer <token> Headers 我总是得到响应 {"message":"Unauthorized"}

我已经搞乱了创建一个链接到用户池的身份池,其身份验证角色具有允许访问API网关的策略 . 我在用户池中创建了一个组来分配该组 .

必须要有一些我缺少的东西 . 所有我想允许访问POST方法给任何从Cognito呈现有效ID JWT的用户 .

政策:

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

哪个在模拟器中工作正常 . 我不是百分之百确定政策应该在发挥作用 . 我不清楚提供的用户池身份验证器如何获取策略,它不在我看到的任何文档中 . 我刚刚开始在墙上投掷飞镖 .

只想听听有人用Userpool保护了一个API网关 endpoints .

1 回答

  • 2

    对我来说,使用Postman在Authorization的 Headers 中没有“Bearer” .

相关问题