Авторизация шлюза API для пула пользователей Cognito + пула удостоверений

Я работаю над веб-приложением, в котором пользователи могут входить / регистрироваться со своими личными адресами электронной почты или входить в систему с федеративными идентификаторами, такими как Facebook / Twitter. Я настроил пул пользователей Cognito и пул идентификаторов для них.

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

Я создал User Pool Authorizer в API Gateway, и я могу аутентифицировать пользователей, созданных в userpool, на основе Id Token.

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

Я думаю о реализации аутентификации с помощью Custom Authorizer с использованием функций Lambda.

Если необходимо реализовать настраиваемый авторизатор, должна ли проверка документа политики на основе токена сеанса быть достаточной для проверки пользователей как из пула пользователей, так и из пула удостоверений? Пожалуйста, предложите альтернативы для настраиваемой авторизации, если таковые имеются.

заранее спасибо


person Rahul Vijayapuram    schedule 24.05.2017    source источник


Ответы (1)


Вы видели это сообщение в блоге? https://aws.amazon.com/blogs/mobile/integrating-amazon-cognito-user-pools-with-api-gateway/.

Можно напрямую интегрировать токены пулов пользователей Cognito в качестве авторизатора для API Gateway, что значительно упрощает описанный вами поток.

person Jeff Bailey    schedule 24.05.2017
comment
Спасибо за ваш вклад. Я уже читал этот пост, он относится только к аутентификации пользователей из Userpool. Но в моем приложении есть пользователи из пула пользователей, а также из пула удостоверений. - person Rahul Vijayapuram; 25.05.2017
comment
Ах, понял. Что ж, вы можете направлять входы в пулы пользователей через пул удостоверений. Его можно настроить как другого провайдера, параллельного Facebook, так что оба обменивают токен на учетные данные. Это позволит вам использовать тот же авторизатор. Член команды APIGW написал этот ответ, в котором он немного подробно описан: stackoverflow.com/questions/39184419/ - person Jeff Bailey; 25.05.2017