Amazon Cognito
Registro, login y contraseñas de tu app, a cargo de AWS y no tuyo.
Amazon Cognito administra los usuarios de una aplicación: registro, login, recuperación de contraseña, verificación por email o teléfono, autenticación de dos factores, y federación estilo 'ingresar con Google'. Tu app no guarda contraseñas; las guarda Cognito, y le entrega a tu app un token firmado que dice quién es el usuario.
Tiene dos partes. Un user pool es el directorio de usuarios más la maquinaria de login: emite JSON Web Tokens (JWT) que tu backend, o Amazon API Gateway directamente, puede verificar. Un identity pool va un paso más allá: cambia ese token por credenciales temporales de AWS, así una app móvil puede subir una foto directo a Amazon S3 bajo reglas de IAM, sin ningún servidor en el medio.
Ejemplo: la app de un gimnasio. Los socios se registran con su email, confirman con un código, y entran con contraseña más un código por SMS. La app le manda el token de Cognito a la API; API Gateway revisa la firma y el vencimiento, y la función AWS Lambda de atrás lee el id del socio desde el token. Nadie escribió código de login, y las contraseñas viven en un almacén que AWS protege.
Por qué importa: el login es donde pasan muchos errores de seguridad (contraseñas mal guardadas, flujos de recuperación que filtran datos). Delegarlo a un servicio administrado es una de las mejoras más baratas en seguridad. Cognito tiene una capa gratuita para un primer grupo de usuarios activos por mes, y después cobra por usuario.
Para quedarse
- Los user pools autentican personas y emiten tokens JWT; los identity pools convierten tokens en credenciales temporales de AWS.
- Soporta MFA, login social (Google, Apple, Facebook) y SAML u OIDC corporativo a través de los estándares de OAuth y SSO.
- API Gateway puede verificar tokens de Cognito sin una línea de backend.
- Tu app nunca toca una contraseña.