Пул пользователей Cognito и AWS шлюз - как настроить другой набор разрешений пользователей для одного клиента приложения? - PullRequest
1 голос
/ 19 июня 2020

Я пытаюсь понять использование токенов доступа для авторизации API, обслуживаемого API Gateway.

Мое текущее понимание этого процесса следующее:

  • После настройки пул пользователей Cognito, я могу определить сервер ресурсов и связанные области (например, https://wibble-api.com/read, https://wibble-api.com/full).
  • Затем я могу выбрать разрешенные настраиваемые области для клиента приложения пула пользователей.
  • В AWS Шлюз, я могу создать Cognito Authorizer для авторизации входящих запросов.
  • Для каждого AWS ресурса шлюза я могу go в запрос метода и выбрать Cognito Authorizer и определить, какие области OAuth необходимо для выполнения метода API, например, я могу ввести https://wibble-api.com/read, https://wibble-api.com/full, чтобы указать, что либо из этих двух областей достаточно для выполнения ресурса API.
  • Когда при использовании размещенного пользовательского интерфейса параметр scope будет включать все разрешенные области, настроенные для этого клиента приложения, и возвращенный токен доступа (при использовании неявного gr ant) будет содержать эти области как часть JWT.

Чего я не понимаю, так это то, что у меня должен быть очень распространенный сценарий, в котором я хочу иметь возможность предоставлять доступ только для чтения например, для пользователя, который не заплатил за услугу, и для пользователя, который заплатил. Тем не менее, похоже, что мне понадобятся два отдельных клиента приложений, если я собираюсь использовать размещенный пользовательский интерфейс, потому что, похоже, нет способа вернуть разные области в зависимости, скажем, от того, в какой группе был пользователь. назначены или некоторые другие метаданные в профиле пользователя, например отдел и т. д. c. Я не буду знать, что это за пользователь, пока не будет аутентифицирован, но мне все равно нужно ввести точный scope при аутентификации. Есть ли решение для этого, пожалуйста?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...