Аутентификация пользователей с Amazon Cognito
Развёртывание приложений на AWS
Dunieski Otano
Amazon Web Services Solutions Architect
Писать собственный механизм входа?
Новому приложению нужна регистрация и вход
Команда начинает строить аутентификацию с нуля
Cognito уже делает это безопасно
Пулы пользователей и пулы удостоверений
Пул пользователей
: управляемый каталог пользователей
Обрабатывает регистрацию, вход и выдаёт
токены
Пул удостоверений
: обменивает вход на
учётные данные AWS
Используйте совместно: сначала аутентификация, затем доступ к AWS
Три токена Cognito
ID-токен
: кто является пользователем (данные идентификации)
Токен доступа
: что пользователь вправе вызывать
Токен обновления
: получение новых токенов без повторного входа
Все три —
JWT
, которые можно декодировать и проверить
Федеративные удостоверения
Федерация
: вход через внешнего поставщика удостоверений
Социальные: Google, Facebook, Apple
Корпоративные: поставщики
SAML
и
OIDC
Cognito управляет доверием и выдаёт собственные токены
Cognito как авторизатор API Gateway
API Gateway может использовать
авторизатор Cognito
Клиент передаёт токен в
заголовке Authorization
API Gateway проверяет токен до запуска бэкенда
Недействительные или просроченные токены
отклоняются на границе
Типичный поток: от входа до вызова API
Пользователь выполняет вход в
пул пользователей
Получает ID-токен, токен доступа и токен обновления
Клиент обращается к API Gateway с
токеном доступа
Авторизатор Cognito проверяет токен, затем запускается бэкенд
Типичные ошибки при работе с Cognito
Передача
ID-токена
вместо токена доступа
Путаница между пулом пользователей и пулом удостоверений
Попытка авторизовать
доступ к AWS
только через пул пользователей
Небезопасное хранение токенов на клиенте
Давайте потренируемся!
Развёртывание приложений на AWS
Preparing Video For Download...