AWS Cognito: Gestión de usuarios y autenticación
El servicio integra proveedores de identidad externos y proporciona tokens conformes a estándares para las APIs. Además, permite el intercambio de tokens de identidad por credenciales temporales de AWS para el acceso directo a servicios de AWS como S3 y DynamoDB.
Fundamentos de AWS Cognito
AWS Cognito consta de dos componentes principales: User Pools y Identity Pools.
User Pools son un directorio de usuarios y un OpenID-Connect-kompatibler Identity Provider. Autentican a los usuarios, emiten tokens de ID, de acceso y de actualización e integran proveedores de identidad sociales o corporativos a través de OIDC o SAML.
Identity Pools (también conocidos como identidades federadas) proporcionan sobre la base de estas identidades kurzlebige AWS-Credentials. Esto también es posible para invitados que aún no se han registrado.
La página de inicio de sesión administrada, anteriormente conocida como 'Hosted UI' y hoy denominada 'Managed Login', está disponible, entre otras cosas, junto con el descubrimiento OIDC,
standardkonforme OAuth-Endpunkte lista, entre ellas,
/oauth2/authorize, /oauth2/token, /logout así como el descubrimiento OIDC- OIDC Discovery- y JWKS-Ressourcen.
Para las aplicaciones de una página única (SPAs) es de
Authorization-Code-Flow mit PKCE gran importancia, ya que evita que códigos interceptados sean utilizados indebidamente.
Los tokens emitidos son JSON Web Tokens (JWTs). Los tokens de acceso transportan scopes y grupos para la autorización de API, mientras que los tokens de ID contienen información de perfil. Las firmas de estos tokens pueden verificarse frente a la URL JWKS del pool correspondiente.
Estado actual y funciones
Los plazos de validez de los tokens pueden configurarse con precisión por cliente de la app. Los tokens de acceso y de ID pueden configurarse entre 5 Minuten und 1 Tag pueden configurarse entre. 60 Minuten und 10 Jahren pueden ajustarse.
Las páginas de inicio de sesión gestionadas soportan PKCE standardmäßig. que la sesión del navegador termine Logout-Endpunkt y redirija a las URL de cierre de sesión configuradas.

Quelle: aws.amazon.com
Resumen de las funciones clave de Amazon Cognito.
Para una apariencia de marca personalizada y el uso de dominios propios se puede configurar una Custom Domain mit einem ACM-Zertifikat configurar (se requiere un certificado en us-east-1). Después, el inicio de sesión se realiza a través del propio subdominio.
Las APIs pueden estar protegidas directamente en API Gateway con un JWT-Authorizer protegiadas por un API Gateway que acepte a Cognito como emisor OIDC, o mediante un autorizador propio (Lambda).
La adaptive/risikobasierte Anmeldung („Threat Protection“) puede clasificar intentos de inicio de sesión sospechosos, exigir autenticación multifactor (MFA) o bloquear accesos.
Para aplicaciones multi-tenant, AWS documenta varios patrones, desde uno Single-Pool-Ansatz bis hin zu einem Pool pro Tenant, incluido aislamiento a través de grupos/roles y scopes.
La integración en aplicaciones Next.js se facilita mediante el Cognito-Provider von NextAuth Se simplifica. Las sesiones se gestionan mediante JWTs/Cookies y Edge-Middleware protege las rutas.
Contexto y motivación
Las aplicaciones modernas necesitan una capa central de identidad que soporte estándares de la industria como OIDC/OAuth2/SAML Soporta, aborda riesgos mediante MFA y autenticación adaptativa y, al mismo tiempo, permite la integración de proveedores de identidad propios. Para SPAs es PKCE unverzichtbar, ya que los secretos de cliente no pueden almacenarse de forma segura en el navegador; Cognito implementa PKCE completamente.
En el lado de la API, el acceso directo JWT-Abgleich am API Gateway atractivo. Ofrece baja latencia, una clara separación entre autenticación (AuthN) y autorización (AuthZ) y evita un viaje adicional de ida y vuelta al almacén de usuarios.
El cumplimiento y la residencia de datos son otros aspectos importantes. Los User Pools almacenan datos de perfil regionalmente. Características opcionales como Pinpoint-Analytics pueden enviar datos a otras regiones, lo que es relevante para equipos de la UE/CH y besondere Beachtung erfordert.
Quelle: YouTube
Este video muestra la SAML-Föderation mit Cognito, que es útil para visualizar escenarios basados en IdP y el cierre de sesión único.
Aplicación práctica y recomendaciones
Quien desarrolle una SPA o una app Next.js, debería elegir el Authorization Code Flow mit PKCE Elegir. Los tokens deben almacenarse en cookies httpOnly en el lado del servidor o usar la mecánica de sesión del framework. La verificación de JWTs debe realizarse siempre contra el JWKS-URL del pool correspondiente. JWKS-Endpunkt des Pools la URL JWKS del pool correspondiente.

Quelle: economize.cloud
Flujo de autenticación típico con AWS Cognito.
Las APIs deberían verificar scopes y usar un mecanismo para desacoplar la autenticación y la autorización y mantener bajas las latencias. JWT-Authorizer mecanismo para desacoplar la autenticación y la autorización y mantener bajas las latencias.
Para aplicaciones multi-tenant, conviene empezar con un Single-Pool-Ansatz complementado por atributos de inquilino o scopes. En requisitos de aislamiento estrictos, puede considerarse un pool por inquilino.
En el área de operaciones es recomendable, CloudTrail und CloudWatch-Metriken activar, monitorear cuotas y patrones de inicio de sesión y, opcionalmente, el Threat Protection utilizar.
En cuanto al cumplimiento, deben verificarse y documentarse para los equipos de la UE/CH los flujos de datos regionales (p. ej., a través de Analytics), especialmente considerando la regionalen Datenüberlegungen.
Quelle: YouTube
Este recorrido paso a paso ayuda a entender Authorization-Code-Flow mit PKCE de extremo a extremo.
Preguntas abiertas y desafíos
El diseño de TTL de tokens y rotación debe sopesarse cuidadosamente para lograr un equilibrio entre UX y nivel de seguridad, sin obligar a las aplicaciones a refrescarse constantemente. AWS recomienda usar tokens solo por aproximadamente 75 Prozent ihrer Lebenszeit para utilizarlos y renovarlos solo después.
Surge la pregunta de hasta qué punto el aislamiento por grupos/alcances de los inquilinos es suficiente antes de que dividir pools sea necesario desde el punto de vista organizativo y de costos. AWS describe ambos enfoques, pero los umbrales confiables son anwendungsabhängig.

Quelle: aws.amazon.com
Integración de Cognito con proveedores de identidad externos y servicios de AWS.
Qué datos pueden salir de la región de acuerdo con las reglas de cumplimiento cuando las características opcionales como Pinpoint están activas? Aquí están los regionalen Hinweise a revisar y documentar los opt-ins.
La consistencia del cierre de sesión único a través de todos los IdPs conectados es otro desafío. Para SAML hay SLO-Unterstützung, sin embargo, los detalles de implementación varían según el IdP.
Conclusión: AWS Cognito ofrece un núcleo sólido de autenticación basado en estándares con puntos de extensión claros: Inicio de sesión gestionado con PKCE, verificación de JWT limpia y federación opcional hacia IdPs sociales o empresariales. En la práctica, es crucial elegir el flujo adecuado para la aplicación, limitar conscientemente la vida útil de los tokens y autorizar estrictamente a la capa API mediante scopes. Al planificar arquitecturas multi-tenant, se deben tomar decisiones tempranas sobre límites de aislamiento y métricas operativas. Los componentes están presentes; la decisión de diseño recae en el usuario.