Amazon Cognito Popular2014年〜
Un servicio que proporciona autenticación, autorización y gestión de usuarios para aplicaciones web y móviles
Qué hace
Amazon Cognito es un servicio que añade funciones de registro, inicio de sesión y control de acceso a aplicaciones web y móviles. User Pools gestiona el directorio de usuarios con registro, inicio de sesión, MFA y recuperación de contraseña. Identity Pools proporciona credenciales AWS temporales para acceder a servicios AWS directamente desde el cliente. Soporta inicio de sesión social (Google, Facebook, Apple) y proveedores SAML/OIDC.
Casos de uso
Se utiliza para añadir autenticación a aplicaciones web y móviles, implementar inicio de sesión social y federado, gestionar usuarios y sus atributos, controlar el acceso a APIs de API Gateway, y proporcionar acceso directo a servicios AWS (S3, DynamoDB) desde aplicaciones cliente.
Analogía cotidiana
Piensa en él como el sistema de seguridad de un edificio de oficinas. User Pool es la recepción que verifica tu identidad (registro, inicio de sesión, credencial). Identity Pool es el sistema de tarjetas de acceso que te da permisos para entrar a pisos específicos (servicios AWS). Puedes usar tu credencial de empresa (usuario/contraseña) o una credencial de visitante (login social).
¿Qué es Amazon Cognito?
Amazon Cognito es un servicio de identidad que permite añadir autenticación y autorización a tus aplicaciones sin construir un sistema de gestión de usuarios desde cero. Maneja el registro de usuarios, verificación de email, inicio de sesión, tokens JWT, y se integra con proveedores de identidad externos como Google y Facebook.
User Pools e Identity Pools
User Pools es un directorio de usuarios completo: gestiona registro, inicio de sesión, MFA, recuperación de contraseña y atributos de usuario. Emite tokens JWT que puedes usar para autorizar acceso a APIs. Identity Pools (Federated Identities) intercambia tokens de User Pools u otros proveedores por credenciales AWS temporales, permitiendo acceso directo a S3, DynamoDB, etc. desde el cliente.
Inicio de sesión social y federado
Cognito soporta inicio de sesión con Google, Facebook, Apple, Amazon y cualquier proveedor OIDC o SAML 2.0. Los usuarios pueden elegir registrarse con email/contraseña o usar su cuenta social existente. Cognito unifica las identidades: si un usuario inicia sesión con Google y luego con email, puedes vincular ambas identidades al mismo perfil. Para más detalles sobre autenticación, los libros en Amazon son útiles.
Cómo empezar
Crea un User Pool en la consola de Cognito, configurando los atributos requeridos (email, nombre) y las políticas de contraseña. Crea un App Client para tu aplicación. Integra el SDK de Cognito (Amplify Auth es la forma más sencilla) en tu frontend para manejar registro e inicio de sesión. Los tokens JWT emitidos se usan para autorizar llamadas a tu API.
Aspectos a tener en cuenta
- ユーザープールの設定 (サインイン属性、MFA の種類など) は作成後に変更できない項目がある。要件を十分に検討してから作成すること
- 無料利用枠は月間 50,000 MAU (月間アクティブユーザー) まで。ソーシャルログインや SAML 連携のユーザーは別料金体系となる
- JWT トークンの有効期限はデフォルトで 1 時間。アプリケーション側でトークンのリフレッシュ処理を実装すること