AWS Cognito: управление пользователями и аутентификацией

Avatar
Lisa Ernst · 18.10.2025 · Технологии · 5 мин

AWS Cognito предлагает надежное и масштабируемое решение для управления пользователями и аутентификации для веб- и мобильных приложений, не требуя собственного бэкенда идентификации. Сервис интегрирует внешних поставщиков идентичности и предоставляет токены, соответствующие стандартам, для API. Кроме того он позволяет обменивать токены идентичности на временные AWS-учетные данные для прямого доступа к сервисам AWS, таким как S3 и DynamoDB.

Основы AWS Cognito

AWS Cognito состоит из двух основных компонентов: пулов пользователей и пулов идентификации.

Пулы пользователей являются каталогом пользователей и одним OpenID-Connect-kompatibler Identity Provider. Они аутентифицируют пользователей, выдают ID-токены, токены доступа и обновления и интегрируют социальные или корпоративные IdP через OIDC или SAML.

Пулы идентификации (также называемые федеративными идентичностями) предоставляют на основе этих идентичностей kurzlebige AWS-Credentials. Это также доступно для гостей, которые ещё не вошли в систему.

Управляемая страница входа, ранее известная как „Hosted UI“ и ныне называемая „Managed Login“, предоставляет standardkonforme OAuth-Endpunkte готова, включая /oauth2/authorize, /oauth2/token, /logout а также OIDC Discovery- OIDC Discovery- и JWKS-Ressourcen. Для одностраничных приложений (SPAs) имеет центральное значение, так как предотвращает возможность злоупотребления перехваченными кодами. Authorization-Code-Flow mit PKCE имеет центральное значение, поскольку предотвращает злоупотребление перехваченными кодами.

Выданные токены являются JSON Web Tokens (JWTs). Access-токены содержат области действия (scopes) и группы для авторизации API, в то время как ID-токены содержат данные профиля. Подписи этих токенов можно проверить по JWKS-URL соответствующего пула.

Актуальное состояние и функции

Срок действия токенов можно точно настроить для каждого клиентского приложения. Access- и ID-токены могут быть настроены между 5 Minuten und 1 Tag могут настраиваться. Refresh-токены по умолчанию действуют 30 дней, но их можно настроить между 60 Minuten und 10 Jahren которые можно настроить.

Страницы управляемого входа поддерживают PKCE standardmäßig. Он Logout-Endpunkt завершает сессию браузера и перенаправляет на настроенные URL-адреса выхода.

Обзор основных функций Amazon Cognito.

Quelle: aws.amazon.com

Обзор основных функций Amazon Cognito.

Для индивидуального фирменного оформления и использования собственного домена можно настроить Custom Domain mit einem ACM-Zertifikat (Сертификат в us-east-1 обязателен). Затем вход выполняется через собственную поддомену.

API могут быть защищены либо напрямую на API Gateway с использованием JWT-Authorizer защищены напрямую на API Gateway там, где Cognito выступает в роли OIDC-issuer, или через собственный (Lambda-) авторизатор.

Эти adaptive/risikobasierte Anmeldung („Threat Protection“) могут классифицировать подозрительные попытки входа, требовать многофакторную аутентификацию (MFA) или блокировать доступ.

Для многоарендных приложений AWS документирует различные схемы, начиная с одного Single-Pool-Ansatz bis hin zu einem Pool pro Tenant, включая изоляцию через группы/роли и области действия (scopes).

Интеграция в приложениях Next.js упрощается за счет Cognito-Provider von NextAuth упрощена. Сессии управляются через JWT/куки, а Edge-Миддлвер защищает маршруты.

Контекст и мотивация

Современным приложениям необходим центральный слой идентификации, который поддерживает отраслевые стандарты, такие как OIDC/OAuth2/SAML поддерживает, адресует риски через MFA и адаптивную аутентификацию и одновременно обеспечивает интеграцию собственных поставщиков идентичности. Для SPAs это PKCE unverzichtbar, поскольку секреты клиента в браузере хранить нельзя безопасно; Cognito реализует PKCE полностью.

Со стороны API прямой JWT-Abgleich am API Gateway привлекательный. Он обеспечивает минимальную задержку, четкое разделение между аутентификацией (AuthN) и авторизацией (AuthZ) и избегает дополнительного раунд-трипа к хранилищу пользователей.

Соответствие требованиям и резидентство данных — ещё одни важные аспекты. Пулы пользователей хранят данные профиля локально. Необязательные функции, такие как Pinpoint-Analytics, могут отправлять данные в другие регионы, что важно для команд из ЕС/CH и besondere Beachtung erfordert.

Quelle: YouTube

Это видео показывает SAML-Föderation mit Cognito, что полезно для визуального понимания сценариев на основе IdP и единого выхода (Single-Logout).

Практическое применение и рекомендации

Тот, кто разрабатывает SPA или Next.js-приложение, должен выбрать Authorization Code Flow mit PKCE выбрать. Токены следует хранить на стороне сервера в httpOnly-кookie или использовать механизм управления сессиями фреймворка. Проверку JWT следует всегда выполнять против JWKS-URL соответствующего пула. JWKS-Endpunkt des Pools проводиться.

Типичный процесс аутентификации с AWS Cognito.

Quelle: economize.cloud

Типичный процесс аутентификации с AWS Cognito.

API должны проверять области действий (scopes) и использовать JWT-Authorizer использовать, чтобы отделить аутентификацию и авторизацию и снизить задержки.

Для мультиарендных приложений рекомендуется начать с одного пула, дополненного атрибутами арендаторов или областями. При строгих требованиях изоляции можно рассмотреть пул на каждого арендатора. Single-Pool-Ansatz for multi-tenant applications, a pool per tenant could be considered.

В области операций рекомендуется, CloudTrail und CloudWatch-Metriken активировать, мониторить квоты и образцы входа, а при необходимости — использовать Threat Protection использовать.

В отношении комплаенса региональные потоки данных (например, через аналитические инструменты) должны быть проверены и задокументированы для команд ЕС/CH, особенно с учетом regionalen Datenüberlegungen.

Quelle: YouTube

Этот пошаговый обзор помогает понять Authorization-Code-Flow mit PKCE позволяет понять сквозной процесс.

Открытые вопросы и задачи

Разработка срока жизни токенов (TTL) и их ротации требует тщательного балансирования, чтобы найти баланс между UX и уровнем безопасности, не принуждать приложения к постоянному обновлению. AWS рекомендует использовать токены примерно на какое-то время и обновлять их только после. 75 Prozent ihrer Lebenszeit использовать и обновлять только после.

Возникает вопрос, насколько далеко изоляция арендаторов через группы/области действия (Scopes) достаточна, прежде чем раздел пула по арендаторам станет необходимым по организационным и затратным причинам. AWS описывает оба пути, но реалистичные пороги являются anwendungsabhängig.

Интеграция Cognito с внешними поставщиками идентичности и службами AWS.

Quelle: aws.amazon.com

Интеграция Cognito с внешними поставщиками идентичности и службами AWS.

Какие данные согласно требованиям комплаенса могут покинуть регион, если активны опциональные функции такие как Pinpoint? Здесь должны быть regionalen Hinweise проверены и задокументированы Opt-ins.

Согласованность единого выхода между всеми подключенными IdPs — ещё одна проблема. Для SAML существуют SLO-Unterstützung, однако детали реализации зависят от IdP.

Итог: AWS Cognito предлагает прочное, стандартное по базису ядро аутентификации с ясными точками расширения: Managed Login с PKCE, чистую верификацию JWT и опциональную федерацию к социальным или корпоративным IdPs. На практике критично выбрать подходящий поток для приложения, сознательно ограничивать срок действия токенов и строго авторизовывать API-слой через scopes. При планировании многоарендной архитектуры следует заранее принимать решения об изоляционных границах и операционных метриках. Компоненты есть, решение по дизайну лежит на пользователе.

Teilen Sie doch unseren Beitrag!