Безсерверный авторизатор как пул пользователей AWS - PullRequest
1 голос
/ 03 мая 2019

Я пытаюсь ограничить доступ к конечным точкам службы для определенного пула пользователей (например, администратора).

Исходя из моего понимания документации (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 (React интеграции) в API приводят к ошибке 401! Если я верну авторизатор обратно на aws_iam, он будет работать нормально.

Где я могу начать отлаживать это? Я не могу найти какие-либо конкретные журналы или причину, по которой это не удается.

Ответы [ 2 ]

0 голосов
/ 26 июня 2019

Как у вас должны работать настройки (у меня это работает - просто пул пользователей).

Вам нужно будет передать idToken, полученный от вашего вызова Amplify auth, в заголовке Authorization:

Authorization: Bearer eyJraWQiOiJ4T2NLWG5GakljWE...

Убедитесь, что вы используете idToken, а не accessToken.

0 голосов
/ 03 мая 2019

В прошлый раз, когда я проверял усиление, поддерживается только поддерживаемая аутентификация IAM, а не аутентификация пула пользователей.Вы можете использовать пул идентификаторов со своим пулом пользователей и по-прежнему использовать IAM через свой пул пользователей.

...