# Amazon Cognito

> Registro, login y contraseñas de tu app, a cargo de AWS y no tuyo.

- Nivel: Intermedio
- Temas: AWS, Seguridad
- URL: https://tidbit.legios.com.ar/es/amazon-cognito/
- En inglés: [Amazon Cognito](https://tidbit.legios.com.ar/amazon-cognito/)

**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.

## Una analogía

La mesa de socios de un club. Emite carnets, mira caras, se ocupa de los carnets perdidos y las renovaciones. Todas las demás puertas del club solo tienen que mirar el carnet.

## 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.

## Para seguir leyendo

- [¿Qué es Amazon Cognito? (documentación oficial)](https://docs.aws.amazon.com/es_es/cognito/latest/developerguide/what-is-amazon-cognito.html)
- [Página de Amazon Cognito](https://aws.amazon.com/es/cognito/)

## Términos relacionados

- [Autenticación de dos factores](https://tidbit.legios.com.ar/es/two-factor-authentication/): Una segunda prueba de que sos vos, para que una contraseña robada no alcance.
- [Google](https://tidbit.legios.com.ar/es/google/): La empresa del buscador, que regala casi todo y gana plata con publicidad.
- [Token](https://tidbit.legios.com.ar/es/token/): El pedacito de texto que un modelo de lenguaje realmente lee.
- [JSON](https://tidbit.legios.com.ar/es/json/): El formato de texto con el que los programas se pasan datos estructurados.
- [Frontend y backend](https://tidbit.legios.com.ar/es/frontend-and-backend/): La parte de una app que ves y tocás, y la parte que trabaja detrás.
- [Amazon API Gateway](https://tidbit.legios.com.ar/es/amazon-api-gateway/): La puerta de entrada de tu API: recibe los pedidos y se los pasa a tu código.
- [Amazon S3](https://tidbit.legios.com.ar/es/amazon-s3/): Un cajón gigante en internet para guardar archivos, alquilado por gigabyte.
- [IAM](https://tidbit.legios.com.ar/es/iam/): El reglamento que dice quién puede hacer qué en tu cuenta de AWS.
