Loading
_ DESCIFRANDO CONEXIÓN SEGURA...

SAML y OIDC, qué viaja en cada flujo

5 tareas · 38 min · Principiante

Federar es dejar que otro sistema diga quién eres. Para que la nube confíe en ese «otro sistema» tiene que recibir algo comprobable: una aserción SAML firmada o un token de identidad de OIDC. Leer federación bien empieza por saber qué trae cada mensaje, por dónde llega y qué campos se comprueban antes de aceptarlo. En la Cooperativa Alborada el proveedor de identidad es propio y ambas nubes confían en él. Abres una aserción SAML, un token de identidad y el registro de un portal que rechazó uno, y lees los campos que importan.

0 de 5 · 0%

Objetivo de la sala

Federar es dejar que otro sistema diga quién eres. Para que la nube confíe en ese «otro sistema» tiene que recibir algo comprobable: una aserción SAML firmada o un token de identidad de OIDC. Leer federación bien empieza por saber qué trae cada mensaje, por dónde llega y qué campos se comprueban antes de aceptarlo. En la Cooperativa Alborada el proveedor de identidad es propio y ambas nubes confían en él. Abres una aserción SAML, un token de identidad y el registro de un portal que rechazó uno, y lees los campos que importan.

En el inicio de sesión único con SAML 2.0 la persona no entrega su contraseña a la nube. La entrega al proveedor de identidad, y este le devuelve una respuesta en XML con una aserción firmada: quién es, para quién es, hasta cuándo vale y qué atributos trae. El navegador hace de mensajero: publica esa respuesta (un POST) en el punto de recepción del servicio, que en AWS es la dirección de inicio de sesión de la consola.

El servicio no ve la contraseña, ve una afirmación firmada. Por eso lo que se revisa en una federación es la afirmación y la confianza que la nube le tiene a quien la firma.

Responde para continuar

En el flujo SAML de inicio de sesión por navegador, ¿qué recibe el punto de entrada de AWS?

Ver pista de ayuda

La nube confía en el proveedor de identidad, no en una credencial que la persona lleve consigo.

Una aserción SAML y un token de identidad de OIDC responden a la misma necesidad con formatos distintos. SAML usa XML firmado y viaja por el navegador. En OIDC con código de autorización el navegador solo lleva un código de un solo uso; la aplicación lo canjea en el punto de tokens del proveedor por un canal directo y recibe un JSON Web Token firmado, con campos como el emisor (iss), la audiencia (aud), la caducidad (exp) y el nonce que ató la petición.

Quien recibe el mensaje comprueba lo mismo en ambos casos: que lo firmó quien dice (con claves que el proveedor publica), que va dirigido a este servicio y no a otro, y que está dentro de su ventana de validez. Basta que falle una de las tres para rechazarlo. Abre comparativo-flujos.txt.

Responde para continuar

Antes de aceptar una aserción SAML o un token de OIDC, ¿qué debe comprobar quien lo recibe?

Ver pista de ayuda

Tres comprobaciones: quién lo firmó, para quién es y hasta cuándo vale.

Abre aserto-saml.xml. Entre los atributos hay uno que AWS usa como nombre de la sesión del rol: el valor de RoleSessionName. Es el que luego aparece en los registros de AWS como quién actuó, así que conviene que sea un identificador de la persona y no un nombre genérico.

Responde para continuar

¿Qué valor viaja en el atributo RoleSessionName de la aserción? Escríbelo tal cual.

Ver pista de ayuda

`cat aserto-saml.xml` y busca el atributo cuyo nombre termina en RoleSessionName.

El atributo SessionDuration indica, en segundos, cuánto debe durar la sesión de consola. Según la documentación de AWS puede ir desde 15 minutos hasta 12 horas, y si no viene, la sesión dura una hora. Que la aserción pida mucho tiempo no basta: el rol tiene su propio máximo. Pero lo que la aserción pide es lo primero que se lee.

Responde para continuar

¿Cuántos minutos de sesión pide la aserción de la persona? Escribe solo el número.

Ver pista de ayuda

Lee SessionDuration en segundos y pásalo a minutos.

La audiencia de un token identifica a la aplicación a la que va dirigido. Si el portal aceptara tokens emitidos para otra aplicación, un token pensado para el entorno de pruebas serviría en producción. validacion-portal.log recoge lo que el portal de Alborada aceptó y rechazó en una tarde, y cada rechazo dice por qué.

Responde para continuar

¿Qué audiencia traía el token que el portal rechazó por no ir dirigido a él? Escríbela tal cual.

Ver pista de ayuda

`cat validacion-portal.log` y fíjate en la línea rechazada cuyo motivo es la audiencia.

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