Loading
_ DESCIFRANDO CONEXIÓN SEGURA...

OIDC: el token de identidad y lo que se debe validar

5 tareas · 40 min · Principiante

OAuth 2.0 reparte permisos, no identidades: un token de acceso dice qué se puede hacer, no quién eres. OpenID Connect añade esa capa encima con un segundo token, el de identidad, que la aplicación recibe y tiene que comprobar antes de creerle. El fallo más común de toda la federación vive aquí, y no se ve mirando el token: se ve mirando qué comprueba quien lo recibe. Lees los metadatos que publica el proveedor de Alimentos Apulo, las afirmaciones de los tokens que sus cuatro cuentas de prueba recibieron y la lista de comprobaciones que el equipo documentó para cada aplicación.

0 de 5 · 0%

Objetivo de la sala

OAuth 2.0 reparte permisos, no identidades: un token de acceso dice qué se puede hacer, no quién eres. OpenID Connect añade esa capa encima con un segundo token, el de identidad, que la aplicación recibe y tiene que comprobar antes de creerle. El fallo más común de toda la federación vive aquí, y no se ve mirando el token: se ve mirando qué comprueba quien lo recibe. Lees los metadatos que publica el proveedor de Alimentos Apulo, las afirmaciones de los tokens que sus cuatro cuentas de prueba recibieron y la lista de comprobaciones que el equipo documentó para cada aplicación.

El token de acceso se le presenta a una interfaz de programación para pedirle algo; la aplicación que lo transporta no tiene por qué entender lo que dice, y en muchos despliegues no puede. El token de identidad va en la otra dirección: se lo entrega el proveedor a la aplicación para contarle quién acaba de iniciar sesión, y la aplicación sí tiene que leerlo entero y comprobarlo.

Las afirmaciones que deciden son pocas. El emisor dice quién lo firmó y debe coincidir exactamente con el proveedor que la aplicación espera. La audiencia dice para qué aplicación se emitió. Las dos fechas dicen desde cuándo y hasta cuándo vale. Y el valor que ata el token a la petición concreta que lo originó impide que valga uno recibido en otro momento. Si la aplicación se salta una de esas comprobaciones, la firma correcta deja de ser suficiente.

Responde para continuar

¿Para qué sirve el token de identidad que recibe la aplicación?

Ver pista de ayuda

Uno de los dos tokens va dirigido a la aplicación; el otro solo pasa por ella.

La audiencia es la comprobación que más se olvida y la que más duele cuando falta. Si una aplicación acepta cualquier token bien firmado por el proveedor sin mirar para quién fue emitido, entonces un token legítimo obtenido en otra aplicación del mismo emisor sirve también aquí. No hace falta romper ninguna firma: basta con que el emisor sea el mismo.

En la evidencia hay cuatro tokens de prueba, y uno de ellos fue aceptado por una aplicación distinta de aquella para la que se emitió. Abre el laboratorio y compara las dos columnas.

Responde para continuar

Escribe el nombre de la aplicación que aceptó un token de identidad emitido para otra.

Ver pista de ayuda

Ejecuta `SELECT cuenta_de_prueba, aplicacion_que_lo_recibio, audiencia FROM tokens_de_identidad` y busca la fila donde las dos últimas columnas no coinciden.

La vida corta de un token de identidad solo existe si alguien la hace cumplir. El proveedor puede emitirlos con cinco minutos de validez y la aplicación seguirá aceptando uno de hace tres semanas si no compara la fecha de vencimiento con la hora actual. Es un fallo de una línea que convierte cualquier token filtrado en una llave permanente.

Vuelve al laboratorio y mira la tabla de comprobaciones.

Responde para continuar

Escribe el nombre de la aplicación que no comprueba hasta cuándo vale el token.

Ver pista de ayuda

Ejecuta `SELECT aplicacion, comprueba_vigencia FROM validaciones` y quédate con la fila que dice que no.

El informe necesita el tamaño del problema, no una anécdota. La tabla de comprobaciones tiene cinco columnas de sí o no por aplicación; cuenta cuántas aplicaciones tienen al menos un «no». Esa cifra es la que abre el hallazgo, y la lista nominal va debajo.

Responde para continuar

¿Cuántas de las aplicaciones de la tabla de comprobaciones dejan de hacer al menos una de las validaciones?

Ver pista de ayuda

Ejecuta `SELECT * FROM validaciones` y cuenta las filas que tengan algún «no», sin importar en qué columna.

Una de las aplicaciones no comprueba el valor que ata el token a la petición que lo originó. Sin esa atadura, un token de identidad válido capturado antes puede presentarse después como si fuera la respuesta a un inicio de sesión nuevo. No es lo mismo que la audiencia ni que la vigencia: es la comprobación de que este token responde a esta petición y no a otra.

Responde para continuar

¿Cómo se le explica al cliente el riesgo de no comprobar ese valor?

Ver pista de ayuda

La firma sigue siendo válida en los tres casos; lo que cambia es si el token responde a esta petición.

Inicia sesión para registrar tus puntos y progreso en el ranking.

Whoami-Labs Pro

Whoami-Labs Pro utiliza cookies

Utilizamos cookies y almacenamiento local para el funcionamiento del sitio, seguridad de sesión y, si lo autorizas, analítica y marketing. Puedes aceptar, rechazar o personalizar. Política de Privacidad