Flujo de autenticación de usuario: del registro a la sesión validada
Un flujo de autenticación de usuario en un lienzo interactivo: creación de la cuenta, hash y almacenamiento de la credencial, inicio de sesión, creación de la sesión y validación de las peticiones protegidas.
Un flujo de autenticación de usuario es el camino desde que alguien crea una cuenta hasta que se confía en cada petición posterior: se calcula el hash de las credenciales antes de guardarlas, se verifican al iniciar sesión y después un token de sesión ocupa el lugar de la contraseña.
Flujo de autenticación de usuario: del registro a la sesión validada
El lienzo interactivo de FlowJam de esta explicación: cada carril, cada fila y cada flecha de arriba forma parte de un diagrama real de QueryChart que puedes abrir y editar.
Cómo leer este diagrama
- Lee las tres columnas de izquierda a derecha: Registro, Inicio de sesión, Sesión.
- Los cuatro carriles son los actores, y la contraseña nunca sale de los tres primeros: al carril «Base de datos» solo llegan hashes.
- La decisión «¿Coincide el hash con el guardado?» divide el inicio de sesión entre el camino de la sesión y el rechazo «Inicio de sesión denegado».
Registro
«El usuario crea una cuenta» y «El cliente envía el correo y la contraseña» alimentan «El servicio de autenticación calcula el hash de la contraseña», el momento en que la contraseña deja de ser recuperable. «La credencial con hash se guarda en la base de datos» es el final del registro: la base de datos ya solo tiene un hash con sal, y su comentario explica que el servicio no puede recuperar el texto plano, que es justo para lo que sirve el hash.
Inicio de sesión
«El usuario inicia sesión con sus credenciales» y «El cliente las reenvía al servicio de autenticación» repiten la primera mitad del recorrido, y «¿Coincide el hash con el guardado?» es la verificación: a la contraseña entrante se le calcula el hash de la misma forma y se compara. La rama «No» termina en «Inicio de sesión denegado»; la rama «Sí» continúa hasta crear la sesión.
Sesión
«El servicio de autenticación crea una sesión» emite el token que sustituye a la contraseña, «El cliente guarda el token de sesión» lo mueve al cliente, y «Las peticiones protegidas llevan el token; el servidor lo valida» es el estado estable del sistema: cada petición protegida se demuestra con el token. «Acceso concedido para la sesión» cierra el flujo: el usuario queda autenticado durante toda la vida de la sesión, no para una sola petición.
Relaciones clave y conclusiones
- A las contraseñas se les calcula el hash antes de guardarlas: la base de datos guarda un hash de un solo sentido con sal, nunca el texto plano.
- El inicio de sesión compara hashes, así que ni el propio servicio de autenticación puede recuperar la contraseña guardada.
- El token de sesión sustituye a la contraseña en las peticiones siguientes, y eso es lo que hace practicable la autenticación a escala.
- Almacenar y verificar son responsabilidades separadas en carriles distintos, así que cada una se puede proteger por separado.
- El flujo tiene la misma forma tanto si el token es una sesión de servidor como si es un JWT: la mecánica del token está en el diagrama de JWT.
Cuándo usar este diagrama
- Enseñar a un equipo nuevo la forma segura de la autenticación antes de que diseñen su primer inicio de sesión.
- Revisar un flujo de autenticación en busca de los fallos clásicos: guardar texto plano, comparar texto plano, confiar en el cliente.
- Aterrizar una conversación sobre autenticación multifactor y sobre dónde se enchufa en el flujo.
Cómo funciona
Renombra los actores según tu sistema
Sustituye «Aplicación cliente» y «Servicio de autenticación» por tus componentes reales —tu aplicación web, tu proveedor de identidad— y añade los que le faltan al diagrama genérico.
Añade la autenticación multifactor
Inserta un paso de MFA en el inicio de sesión, entre la comprobación del hash y la creación de la sesión, con una rama para la verificación del segundo factor.
Muestra la ruta de restablecimiento de contraseña
Añade una rama de restablecimiento a partir de la decisión del inicio de sesión —contraseña olvidada, token de restablecimiento, nueva contraseña— y que cada final sea un estado explícito.
Anota el ciclo de vida del token
En la caja de la sesión, apunta las reglas de caducidad, revocación y renovación de tu token, y enlaza con el diagrama de JWT si emites JWT.
Preguntas frecuentes
¿Cuál es la forma segura de guardar contraseñas?
Nunca guardes la contraseña en sí. Guarda un hash con sal —una función de un solo sentido aplicada a la contraseña más una sal aleatoria— y descarta el texto plano. Al iniciar sesión, calcula el hash de la contraseña entrante de la misma forma y compara los hashes. Si la base de datos se filtra, el atacante obtiene hashes que no puede invertir, que es exactamente la propiedad que existen para mostrar las cajas del hash del diagrama.
¿Qué diferencia hay entre el hash y el cifrado?
El cifrado es reversible: con la clave puedes recuperar el valor original. El hash es de un solo sentido: no hay clave ni camino de vuelta. Para las contraseñas quieres hash, porque nunca vuelves a necesitar el texto plano, solo poder verificarlo. Por eso el diagrama dice «calcula el hash» y no «cifra»; cifrar contraseñas es una confusión habitual y peligrosa.
¿Cómo sustituye un token de sesión a la contraseña?
Tras un inicio de sesión correcto, el servicio de autenticación crea una sesión y entrega al cliente un token —un valor aleatorio o un JWT firmado— que representa al usuario autenticado. Las peticiones protegidas llevan el token, y el servidor lo valida en lugar de volver a pedir la contraseña. Eso es lo que hace practicable la autenticación para peticiones repetidas, y por eso la caducidad del token es la verdadera frontera de seguridad.
¿Dónde encaja la autenticación multifactor en este flujo?
La MFA es una comprobación adicional en el inicio de sesión, después de verificar la contraseña y antes de crear la sesión: el usuario aporta un segundo factor —un código de un solo uso, una aplicación de autenticación, una llave de hardware—. La columna de inicio de sesión del diagrama es donde se enchufa ese paso. La MFA no cambia la mecánica del hash ni de la sesión; sube el listón de esa única decisión, «¿Coincide el hash con el guardado?», añadiendo una segunda prueba.
Edita este diagrama en QueryChart (FlowJam)
Abre ese mismo lienzo de autenticación como tu propio diagrama, renombra los actores según tu sistema y añade tus controles reales.