🔐 SAML: Lenguaje de Marcado para Aserciones de Seguridad

📘 ¿Qué es SAML?

SAML (Security Assertion Markup Language) es un protocolo abierto basado en XML que permite el inicio de sesión único (SSO) y el intercambio seguro de identidades entre un proveedor de identidad (IdP) y un proveedor de servicios (SP).

Utiliza mensajes XML firmados digitalmente para autenticar al usuario sin necesidad de que el SP vea las credenciales.

🧩 Componentes Clave

Componente Función
Principal (Usuario) Quiere acceder a una aplicación (el SP).
Proveedor de Identidad (IdP) Verifica la identidad del usuario y emite el token SAML.
Proveedor de Servicios (SP) Proporciona el servicio al usuario si el token SAML es válido.
Token SAML Documento XML firmado con información de autenticación y atributos.

🔄 Cómo funciona el flujo SAML (resumen paso a paso)

  1. El usuario accede al proveedor de servicios (ej: AWS).

  2. El SP redirige al IdP para autenticar al usuario.

  3. El IdP autentica al usuario (MFA, contraseña...).

  4. El IdP genera y firma un token SAML con los atributos del usuario.

  5. El token se envía al SP, que verifica la firma.

  6. Si el token es válido, el usuario accede al recurso sin haber compartido su contraseña con el SP.

🧾 Ejemplo real de SAML

La respuesta XML típica de una aserción SAML contiene:

  • <samlp:Response> → Es la respuesta que emite el IdP.

  • <saml:Issuer> → Identifica al IdP.

  • <ds:Signature> → Firma digital que asegura la integridad.

  • <saml:Assertion> → Contiene la identidad, atributos y condiciones.

  • <saml:AuthnStatement> → Prueba de autenticación.

  • <saml:AttributeStatement> → Roles, nombres, emails u otros atributos.

💡 Todo el flujo se basa en mensajes HTTPS y SOAP con firma XML.

🧪 Aplicaciones y herramientas en usos reales

Herramienta / Proveedor Uso
AWS (SP) Soporta SAML para autenticar usuarios desde Azure AD u Okta.
Okta (IdP) Plataforma de gestión de identidades que emite tokens SAML.
OneLogin, Azure AD, ADFS Proveedores de identidad compatibles con SAML.
Shibboleth IdP de código abierto ampliamente usado en universidades.
SAML-tracer (extensión) Inspecciona mensajes SAML para debugging.

🎯 ¿Qué hace un líder red, blue y purple team al respecto?

  • 🔴 Red Team:

    • Busca errores en validación de tokens SAML en el SP.

    • Intenta aprovechar la firma mal configurada o la reutilización de tokens (replay attacks).

    • Ataca endpoints mal asegurados de SSO.

  • 🔵 Blue Team:

    • Asegura que los tokens SAML estén firmados y tengan expiración.

    • Configura correctamente la relación de confianza SP-IdP.

    • Usa HTTPS obligatorio para transporte seguro.

    • Supervisa logs de autenticación federada y verifica anomalías.

  • 🟣 Purple Team → ¿Cómo se ataca y cómo se defiende?

    • 🚨 Ataques posibles:

      • Reutilización de tokens.

      • Tokens no firmados o con firma débil.

      • IdP mal configurado que emite atributos sin validación.

    • 🛡️ Defensas:

      • Validación estricta de firma XML.

      • Rechazo de tokens con timestamps caducados.

      • Limitar reenvío de tokens y habilitar validación de audiencia.

✅ Resumen práctico

SAML → Protocolo XML para SSO entre SP e IdP.
Permite que un usuario se autentique en un IdP y use aplicaciones sin repetir login.
Los tokens SAML están firmados digitalmente y contienen la identidad y atributos del usuario.
Ideal para empresas con múltiples apps y portales, especialmente en entornos B2B y SaaS.

🧠 Esquema visual práctico

  1. Usuario accede a una app (SP) 
  2. El SP redirige al IdP 
  3. Usuario se autentica en el IdP 
  4. El IdP emite un token SAML firmado 
  5. El usuario presenta el token al SP 
  6. El SP verifica y autoriza el acceso
Purple Mystara - Cristina Martínez Girol
Todos los derechos reservados 2025
Creado con Webnode Cookies
¡Crea tu página web gratis! Esta página web fue creada con Webnode. Crea tu propia web gratis hoy mismo! Comenzar