我正在尝试将服务端点上的访问限制为特定的用户池(例如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网关中
问题是任何通过AWS Amplify(反应集成)对API的调用都会导致401错误!如果我将授权者放回aws_iam
,则可以正常工作。
我什至可以在哪里开始调试呢?我找不到任何特定的日志或失败的原因。
答案 0 :(得分:0)
上次我检查了仅放大受支持的IAM身份验证,而不是用户池身份验证。您可以将标识池与用户池一起使用,并且仍通过用户池使用IAM。
答案 1 :(得分:0)
设置方式应该可以正常工作(我可以正常工作-只是一个用户池)。
您需要在idToken
标头中传递从Amplify auth调用中收到的Authorization
:
Authorization: Bearer eyJraWQiOiJ4T2NLWG5GakljWE...
确保使用idToken,而不是accessToken。