¿Qué es SAML? Security Assertion Markup Language
SAML es un estándar basado en XML utilizado para intercambiar información de autenticación y autorización entre un proveedor de identidad y una aplicación. Es habitual en arquitecturas empresariales de Single Sign-On, donde una identidad centralizada puede utilizarse para acceder a diferentes aplicaciones.
¿Qué es SAML?
SAML significa Security Assertion Markup Language y es un estándar utilizado para intercambiar información sobre identidad, autenticación y autorización entre sistemas, especialmente entre un proveedor de identidad y una aplicación.
SAML se utiliza frecuentemente para implementar Single Sign-On, permitiendo que una aplicación confíe en la autenticación realizada por un proveedor de identidad sin gestionar directamente las credenciales principales del usuario.
¿Cómo funciona SAML?
SAML permite que un proveedor de identidad comunique una afirmación sobre un usuario a una aplicación que necesita comprobar su identidad y condiciones de acceso.
El usuario solicita acceso
El usuario intenta acceder a una aplicación que utiliza un proveedor de identidad para gestionar la autenticación.
El proveedor autentica al usuario
El proveedor de identidad realiza el proceso de autenticación correspondiente y determina si puede emitir una respuesta para la aplicación.
La aplicación recibe una assertion
La aplicación recibe y valida una SAML assertion que contiene información sobre la identidad y las condiciones asociadas a la autenticación.
SAML y SSO están relacionados, pero no significan lo mismo
SSO describe una arquitectura o experiencia de acceso, mientras que SAML es uno de los estándares que puede utilizarse para intercambiar información de identidad dentro de esa arquitectura.
Una experiencia de acceso
Single Sign-On permite utilizar una autenticación centralizada para acceder a diferentes aplicaciones compatibles.
Un estándar de intercambio
SAML define estructuras y mecanismos para intercambiar información de identidad y autenticación entre sistemas.
Información verificable
La SAML assertion transporta declaraciones que la aplicación puede validar antes de aceptar la identidad del usuario.
Principales componentes de SAML
| Componente | Función | Ejemplo | Característica |
|---|---|---|---|
| Identity Provider | Gestiona identidad y autenticación. | Proveedor de identidad. | Genera respuestas SAML para las aplicaciones. |
| Service Provider | Consume la información de identidad. | Aplicación empresarial. | Confía en el proveedor de identidad configurado. |
| Assertion | Contiene declaraciones sobre identidad. | Documento XML. | Puede incluir información sobre autenticación y atributos. |
| Metadata | Describe entidades y configuraciones. | Archivo XML. | Facilita la configuración entre participantes. |
| ACS | Recibe la respuesta SAML. | URL de una aplicación. | Assertion Consumer Service del Service Provider. |
¿Qué es un Identity Provider en SAML?
El Identity Provider o IdP es el sistema que mantiene la identidad del usuario y participa en el proceso de autenticación.
Autenticación
El usuario puede introducir sus credenciales o utilizar mecanismos adicionales configurados por el proveedor de identidad.
Identidad
Después de autenticar al usuario, el IdP puede generar una assertion con información sobre esa identidad y el proceso de autenticación.
Confianza
El Service Provider debe estar configurado para confiar en las respuestas procedentes del Identity Provider correspondiente.
¿Qué es un Service Provider en SAML?
El Service Provider o SP es la aplicación que necesita conocer la identidad del usuario y que recibe la respuesta generada por el Identity Provider.
Solicitud
El Service Provider puede iniciar un proceso de autenticación cuando un usuario intenta acceder a un recurso protegido.
Recepción
Después del proceso de autenticación, el SP recibe la respuesta SAML en el endpoint configurado para ello.
Validación
El Service Provider debe validar correctamente la respuesta antes de crear o continuar una sesión para el usuario.
¿Qué es una SAML Assertion?
Una SAML assertion es una estructura XML que contiene declaraciones realizadas por una autoridad SAML sobre una identidad o una operación de autenticación.
Identidad
La assertion puede incluir información que permite al Service Provider identificar al usuario autenticado.
Autenticación
También puede contener información relacionada con el proceso mediante el cual el Identity Provider autenticó al usuario.
Atributos
Una assertion puede transportar atributos asociados con el usuario, dependiendo de la configuración y de la información que el proveedor esté autorizado a entregar.
¿Qué es una SAML Response?
Una SAML Response es el mensaje que transporta la información enviada desde el Identity Provider hacia el Service Provider como parte del flujo definido.
Contenido
La respuesta puede contener una o más assertions con declaraciones relacionadas con la identidad y autenticación.
Firma
Las respuestas o assertions pueden utilizar mecanismos de firma para que el Service Provider pueda verificar su autenticidad e integridad.
Validación
El Service Provider debe realizar las comprobaciones correspondientes antes de confiar en la información recibida.
¿Cómo se utiliza SAML para Single Sign-On?
SAML puede utilizarse para que una aplicación empresarial confíe en una autenticación realizada por un proveedor de identidad central.
Solicitud
El Service Provider inicia el proceso cuando el usuario intenta acceder y necesita una identidad autenticada.
Autenticación centralizada
El usuario es dirigido al Identity Provider, donde realiza el proceso de autenticación correspondiente.
Acceso a la aplicación
Después de validar la respuesta SAML, la aplicación puede establecer una sesión para el usuario sin solicitar nuevamente las credenciales principales.
¿Qué es SAML Metadata?
SAML Metadata es información estructurada que describe entidades SAML, sus identificadores, endpoints y determinados elementos necesarios para establecer confianza entre participantes.
Entity ID
Una entidad SAML dispone de un identificador que permite distinguirla dentro de la arquitectura.
Endpoints
Los metadatos pueden describir las direcciones utilizadas para determinados servicios y flujos SAML.
Certificados
El metadata puede incluir información relacionada con certificados utilizados para verificar firmas y establecer la confianza entre entidades.
¿Qué es un Assertion Consumer Service?
El Assertion Consumer Service o ACS es el endpoint del Service Provider destinado a recibir la respuesta SAML correspondiente a un flujo de autenticación.
Recepción
El Identity Provider envía la respuesta al endpoint configurado por el Service Provider.
Procesamiento
La aplicación recibe la respuesta y realiza las validaciones necesarias sobre la assertion y sus elementos de seguridad.
Creación de sesión
Después de validar correctamente la respuesta, el Service Provider puede crear una sesión local para el usuario autenticado.
¿Cuál es la diferencia entre SAML y OpenID Connect?
SAML y OpenID Connect permiten implementar soluciones de identidad y Single Sign-On, pero utilizan modelos y formatos diferentes.
SAML
SAML utiliza assertions XML y tiene un uso extendido en entornos empresariales y aplicaciones que integran proveedores de identidad mediante este estándar.
OpenID Connect
OpenID Connect utiliza OAuth 2.0 como base y utiliza mecanismos como ID Tokens en arquitecturas de identidad modernas.
Formatos diferentes
SAML se basa principalmente en XML, mientras que las implementaciones de OpenID Connect utilizan formatos y mecanismos habituales del ecosistema OAuth 2.0 y JSON Web Token.
¿Por qué es importante validar una respuesta SAML?
Una aplicación no debería confiar automáticamente en cualquier respuesta SAML recibida. Debe comprobar que provenga del Identity Provider esperado y que cumpla las condiciones de seguridad configuradas.
Firma
Las firmas permiten comprobar la autenticidad e integridad de determinados elementos de la respuesta cuando el sistema está configurado para utilizarlas.
Emisor
El Service Provider debe verificar que el emisor de la respuesta corresponda con el proveedor de identidad configurado.
Audiencia y destino
También deben comprobarse los valores de audiencia, destino, tiempos y demás condiciones relevantes para asegurar que la respuesta corresponde con la solicitud y aplicación esperadas.
¿SAML autentica o autoriza?
SAML puede transportar información relacionada con autenticación y autorización, pero el estándar se utiliza principalmente para intercambiar declaraciones entre entidades de identidad y servicios.
Autenticación
Una assertion puede incluir información sobre cómo y cuándo fue autenticado el usuario por el Identity Provider.
Atributos
La respuesta puede incluir atributos del usuario que el Service Provider puede utilizar para tomar decisiones dentro de la aplicación.
Autorización local
La aplicación puede utilizar la identidad y atributos recibidos para aplicar posteriormente sus propias reglas de autorización y permisos.
¿Qué se necesita para implementar SAML?
Una integración SAML requiere configurar correctamente el Identity Provider y el Service Provider para que ambos conozcan las identidades, endpoints y relaciones de confianza correspondientes.
Entity ID
Las entidades deben utilizar identificadores que permitan distinguir correctamente al proveedor y a la aplicación dentro de la arquitectura.
URLs
Deben configurarse correctamente los endpoints relacionados con el flujo, incluyendo la dirección del Assertion Consumer Service cuando corresponda.
Certificados
Las configuraciones pueden incluir certificados y claves utilizadas para validar firmas y proteger determinadas comunicaciones entre las entidades.
¿SAML garantiza una implementación segura?
No. SAML proporciona mecanismos estandarizados para intercambio de información, pero la seguridad depende también de cómo se configure y valide la integración.
Configuración incorrecta
Errores en certificados, endpoints, audiencia, validación de respuestas o relaciones de confianza pueden generar problemas de seguridad.
Gestión de certificados
Los certificados y claves asociados con una integración deben gestionarse adecuadamente y renovarse cuando corresponda.
Aplicación cliente
El Service Provider debe realizar correctamente las validaciones necesarias antes de aceptar una identidad y crear una sesión.
SAML: conceptos principales
| Concepto | Significado | Ejemplo | Función |
|---|---|---|---|
| SAML | Estándar de intercambio de identidad. | SAML 2.0. | Intercambiar información de autenticación y autorización. |
| Identity Provider | Proveedor de identidad. | Sistema central de autenticación. | Autenticar usuarios y emitir respuestas SAML. |
| Service Provider | Aplicación que consume identidad. | Aplicación empresarial. | Validar la respuesta y establecer una sesión. |
| Assertion | Declaración SAML. | Documento XML firmado. | Transportar información sobre identidad y autenticación. |
| ACS | Assertion Consumer Service. | Endpoint de una aplicación. | Recibir la respuesta SAML. |
Guías relacionadas sobre identidad y autenticación
Elige el tema que quieras profundizar:
Preguntas frecuentes sobre SAML
SAML es un estándar utilizado para intercambiar información de identidad, autenticación y autorización entre sistemas, especialmente entre un proveedor de identidad y una aplicación.
SAML sirve para intercambiar información de identidad y autenticación y puede utilizarse para implementar arquitecturas de Single Sign-On.
Es una estructura XML que contiene declaraciones realizadas por una autoridad SAML sobre una identidad, autenticación u otros atributos asociados.
Es el sistema que gestiona la identidad y autenticación del usuario y puede emitir respuestas SAML para las aplicaciones integradas.
Es la aplicación que recibe y valida la información de identidad proporcionada por el Identity Provider para permitir el acceso correspondiente.
Sí. SAML puede utilizarse para implementar Single Sign-On permitiendo que una aplicación confíe en la autenticación realizada por un proveedor de identidad central.
SAML utiliza assertions XML y es habitual en entornos empresariales, mientras que OpenID Connect utiliza OAuth 2.0 como base y mecanismos como ID Tokens para gestionar identidad.
No. La seguridad depende también de la correcta configuración y validación de respuestas, firmas, certificados, endpoints, audiencia y demás elementos de la integración.
¿Qué es OpenID Connect?
Continúa aprendiendo sobre identidad digital y compara SAML con OpenID Connect para comprender cómo funcionan ambos modelos de autenticación.
Ver guía →