无服务器授权者作为AWS用户池

时间:2019-05-02 21:09:31

标签: amazon-web-services aws-api-gateway amazon-cognito serverless

我正在尝试将服务端点上的访问限制为特定的用户池(例如admin)。

根据我对文档(https://serverless.com/framework/docs/providers/aws/events/apigateway/的了解,应该可以通过设置

get:
  handler: functions/get.main
  events:
    - http:
        path: /
        method: get
        cors: true
        authorizer: "arn:aws:cognito-idp:eu-west-2:####:userpool/eu-west-2_xET8A8Kui"

可以正常部署并正确显示在此端点的API网关中

screen shot of API gateway

问题是任何通过AWS Amplify(反应集成)对API的调用都会导致401错误!如果我将授权者放回aws_iam,则可以正常工作。

我什至可以在哪里开始调试呢?我找不到任何特定的日志或失败的原因。

2 个答案:

答案 0 :(得分:0)

上次我检查了仅放大受支持的IAM身份验证,而不是用户池身份验证。您可以将标识池与用户池一起使用,并且仍通过用户池使用IAM。

答案 1 :(得分:0)

设置方式应该可以正常工作(我可以正常工作-只是一个用户池)。

您需要在idToken标头中传递从Amplify auth调用中收到的Authorization

Authorization: Bearer eyJraWQiOiJ4T2NLWG5GakljWE...

确保使用idToken,而不是accessToken。