¿Qué es SAML (Security Assertion Markup Language)?

Escrito por David Worthington en April 12, 2023

Comparte este artículo

A medida que las TI siguen cambiando hacia la cloud y las aplicaciones de Software-como Servicio (SaaS, por sus siglas en inglés), SAML es un tema importante a la hora de considerar opciones de autenticación. SAML también proporciona una autorización única que se puede utilizar para hacer cumplir los permisos de usuario en los servicios. Exploremos SAML, cómo funciona, su historia y ventajas, cómo se puede utilizar y cómo se compara con sus alternativas.

¿Qué es SAML SSO?

El protocolo SAML (Security Assertion Markup Language) es el preferido de muchos proveedores de inicio de sesión único (SSO, por sus siglas en inglés) de aplicaciones web y se utiliza para conectar de forma segura a los usuarios con las aplicaciones web con un único conjunto de credenciales. SAML utiliza certificados XML (Extensible Markup Language) para afirmar la autenticación de usuarios entre un proveedor de identidades (IdP, por sus siglas en inglés) y un proveedor de servicios (SP, por sus siglas en inglés) o una aplicación web.

Los usuarios pueden crear una contraseña única y segura para proteger sus credenciales de IdP sin tener que preocuparse por mantener las contraseñas de sus aplicaciones web escritas en un documento o en una nota adhesiva pegada a su monitor, o tener que utilizar gestores de contraseñas para almacenar las credenciales. (Sin embargo, tenga en cuenta que aún puede beneficiarse de un gestor de contraseñas SSO).

En resumen, se trata de un inicio de sesión único (SSO) basado en la web. Son muchas siglas, pero tendrán más sentido una vez que nos sumerjamos en el funcionamiento de SAML.

¿Qué es SAML 2.0?

SAML 2.0 es la versión actual de la norma SAML. Fue una actualización sustancial que no era retrocompatible con su predecesora y añadía funciones que se habían incluido en el marco de federación de identidades de Liberty Alliance, lo que la hacía mucho más sólida y madura. El cierre de sesión único (en todos los servicios) resultó ser una de las mejoras más significativas.

Ventajas de SAML

El uso de SAML ofrece numerosas ventajas. La seguridad y la relativa facilidad de gestión de las credenciales son ventajas evidentes: los usuarios finales no tienen que recordar todas las contraseñas necesarias para acceder a sus distintas aplicaciones web. El proceso de afirmación utiliza una comunicación XML segura a través de SAML directamente entre el SP y el IdP, y las contraseñas no se almacenan en servidores remotos ni se envían por cable. En general, los administradores de TI obtienen una gestión centralizada del ciclo de vida del usuario con un control muy granular sobre los recursos a los que pueden acceder los usuarios. Esta característica es ideal para los sectores regulados que deben tomar medidas estrictas para garantizar la confidencialidad de los datos y los derechos de privacidad.

Por lo general, los administradores de TI experimentan una reducción de las solicitudes de ayuda relacionadas con contraseñas, además de una mayor seguridad gracias a SAML y la posibilidad de añadir una autenticación multi-factor (MFA, por sus siglas en inglés) sólida y fácil de usar, como Push MFA, y protecciones contra la suplantación de identidad. El SSO también reduce los riesgos de la TI en la sombra, que es cuando los usuarios gestionan su propio acceso a las aplicaciones bajo el radar del equipo TI. Los usuarios finales, al tener que preocuparse sólo de una contraseña, experimentan también menos fatiga de contraseñas con el SSO. 

Muchos proveedores de SSO han creado portales web en los que los usuarios finales pueden iniciar sesión una vez y luego hacer clic en un mosaico con la aplicación a la que necesitan acceder, lo que ofrece otro incentivo para adoptar SAML.

Ejemplos de SAML en acción

El mencionado portal SSO es un buen ejemplo de cómo SAML puede impulsar las sinergias informáticas en las pequeñas y medianas empresas (PyMEs). Este proceso suele denominarse “flujo SAML”, cuando los usuarios hacen clic en el icono de una aplicación y la autenticación se produce entre bastidores. 

Otro caso de uso aprovecha los atributos del usuario para determinar a qué parte de una aplicación debe tener acceso. Por ejemplo, un auxiliar contable no debería tener el mismo nivel de acceso que un director financiero. Refuerza el concepto de seguridad de la separación de funciones y ayuda a garantizar el cumplimiento de los mínimos privilegios, esencial para un sólido modelo de seguridad de Confianza Cero (Zero Trust). 

JumpCloud aprovecha de forma única el control de acceso basado en atributos (ABAC, por sus siglas en inglés) para proporcionar una comprobación cruzada instantánea de los usuarios dentro de un grupo a las aplicaciones y recursos que necesitan, e incluye sugerencias para modificar la pertenencia a grupos. Esto difiere de los métodos tradicionales de control de acceso basados en roles y anidados, que no fueron diseñados originalmente para infraestructuras de TI basadas en SaaS.

Los desarrolladores también pueden utilizar SAML como solución para proteger los servicios web backend mediante una función denominada protección de mensajes SAML. SAML es extremadamente flexible y personalizable.

JumpCloud applications
El Portal del Usuario JumpCloud aprovecha SAML

¿Cómo funciona SAML?

El proceso de SAML es, en esencia, una serie de intercambios entre el usuario, un proveedor de servicios (que aloja la aplicación web a la que el usuario quiere acceder) y un proveedor de identidad (que es el medio por el que el usuario puede autenticarse). Cuando un usuario quiere acceder a una aplicación web, primero visita el servicio a través de un “agente”, que casi siempre es un navegador web estándar como Chrome, Firefox, Safari o Edge. A continuación, el agente intenta solicitar acceso al SP iniciando sesión en la aplicación web. 

Componentes de SAML

El intercambio de información de identidad sobre autenticación y autorización es posible gracias a que los componentes principales de SAML funcionan como un sistema. En esta sección se describe cada componente y su función en el marco de mensajes/respuestas de SAML, que permite federar identidades e información de usuario entre dominios. En primer lugar, vamos a examinar una visualización de los pasos básicos de una transacción a través del protocolo SAML. Este ejemplo ilustra lo que sucede bajo las cubiertas cuando un usuario introduce sus credenciales de la empresa en un servicio que su organización utiliza.

Componentes de SAML

Fijaciones

Los enlaces son la infraestructura que hace que los mensajes SAML se transfieran a través de protocolos de red comunes. Por ejemplo, un enlace HTTPS POST define cómo transportar las respuestas de un SP a las solicitudes de un agente de usuario (navegadores web).

Protocolos

¿Cómo establecen la mayoría de los usuarios conexiones seguras con los servicios web? HTTPS es un ejemplo de uno de los protocolos, junto con SOAP, especificados en el estándar SAML. Los certificados digitales (certificado X.509) se utilizan en el lado del IdP y del SP para las comunicaciones seguras.

Perfiles

Los perfiles son el pegamento que une los protocolos, enlaces y aserciones de SAML para cada caso de uso. JumpCloud simplifica este concepto poniendo a disposición de los usuarios una biblioteca de cientos de “conectores” para evitarles el trabajo pesado. 

La siguiente sección detalla cómo funcionan las aserciones, que son paquetes XML que contienen información organizativa sobre el usuario, el método de autenticación, así como políticas que especifican el acceso a los recursos y registros de transacciones.

¿Qué es la aserción SAML?

El SP ha sido configurado administrativamente para diferir su autenticación a una fuente específica de autenticación – el IdP o base de datos de usuarios, si se quiere. El inicio de sesión se redirige entonces de forma segura a través de Internet (y a través del navegador) para solicitar una autenticación al proveedor de identidad para verificar la identidad del usuario. 

Desde la perspectiva del usuario, esto actúa como una redirección a otro sitio web que contiene una sencilla interfaz de usuario con un campo de nombre de usuario y uno de contraseña. A continuación, el usuario introduce sus credenciales de IdP, que a su vez las verifica con sus propios registros. 

Tras una verificación satisfactoria, el IdP generará un certificado basado en XML, denominado aserción. Esto significa que el IdP genera un “permiso de pasillo” figurado, afirmando que conoce al usuario y que éste puede acceder a la aplicación solicitada. Este certificado se devuelve al navegador del usuario y luego al proveedor de servicios, que redirige la página de nuevo al servicio para que pueda ingerir el “permiso de pasillo” y permitir la entrada del usuario. Tenga en cuenta que, en algunos flujos más sofisticados, el IdP devuelve más datos, incluidos atributos, pertenencia a grupos, etc., para ayudar al proveedor de servicios a asignar con precisión los derechos de autorización, así como proporcionar datos adicionales que el SP pueda necesitar para prestar un mejor servicio al usuario.

IdP y SP con SAML

El intercambio de información se produce entre el IdP y el SP. Como se ha demostrado anteriormente, los proveedores utilizan SAML para transmitir credenciales entre un proveedor de identidad, que contiene las credenciales para verificar a un usuario, y un proveedor de servicios, que es el recurso que requiere autenticación. El proceso puede ser iniciado por cualquiera de las partes, pero el IdP es el responsable de asegurar y gestionar las identidades de usuario y los grupos de directorio. Las cuentas almacenadas en un IdP se convierten finalmente en usuarios verificados en un servicio a través de la federación de identidades SAML.

SAML puede utilizarse en combinación con otros estándares de autenticación en función del caso de uso. Por ejemplo, una PyME del sector sanitario utilizaría SAML para el acceso seguro al portal de aplicaciones, pero una aplicación móvil se beneficiaría de la eficacia de OIDC. La siguiente sección ofrece un breve resumen sobre qué método de SSO resulta ser el más óptimo para cada caso.

Otras opciones de autenticación

SAML frente a OAuth

OAuth tiende a estar más centrado en la aplicación que SAML, que se utiliza principalmente para el SSO web. OAuth sería la opción preferida en un caso en el que una aplicación deba acceder a las funciones de hardware de los dispositivos, como una webcam o una cámara.

SAML frente a OpenID Connect (OIDC)

OIDC es cada vez más popular, sobre todo entre los desarrolladores móviles. Proporciona comunicaciones escalables y eficientes, pero no tiene la misma capacidad para autorizar a los usuarios con los servicios para los que se ha creado SAML. OAuth es su base, con una capa de identidad adicional destinada a la identidad descentralizada. Se trata tanto de una postura filosófica como tecnológica. 

Haga clic aquí para ver una comparación detallada de SAML frente a OpenID.

SAML frente a LDAP

Estos dos estándares van de la mano, con un directorio LDAP que sirve como función de gestión de usuarios para un IdP. La combinación de estos protocolos de autenticación permite conectarse a una variedad aún mayor de servicios, de forma segura, para ayudarle a cumplir sus objetivos empresariales. 

Haga clic aquí para ver una comparación detallada entre SAML y LDAP.

JumpCloud Directory Platform permite a los administradores de TI gestionar a sus usuarios y su acceso a sistemas, aplicaciones, redes, infraestructura, servidores de archivos y mucho más con un único conjunto de credenciales. Como IdP en la cloud, JumpCloud ha reimaginado la asociación que existe entre Active Directory y SSO para la era moderna, proporcionando prácticamente todas las mismas capacidades y muchas otras, todo desde una única consola de administración en la cloud.

JumpCloud aprovecha SAML, junto con LDAP, RADIUS, y más, para proporcionar una experiencia True SSO, lo que significa que las organizaciones de TI pueden utilizar una solución integral en lugar de una serie de otras. Más allá de eso, los administradores de TI también pueden utilizar JumpCloud para implementar políticas de seguridad de Confianza Cero, como la autenticación multi-factor (MFA), el acceso condicional, la complejidad de la contraseña, y más, en toda su organización a escala. 

Uso de SAML con JumpCloud

True Single Sign-On™ se extiende más allá de simplemente SAML, utilizando una serie de otros protocolos y métodos de autenticación para extender un conjunto de credenciales de usuario a prácticamente todos los recursos. Afortunadamente, el servicio de directorio en la cloud de nueva generación de JumpCloud proporciona una experiencia True SSO para las organizaciones de TI modernas.

Este artículo describe cómo empezar con SAML SSO usando JumpCloud. El método más sencillo es buscar en nuestra creciente biblioteca de conectores, pero también es posible escribir el suyo propio.

Cómo configurar SAML

Para conectar una aplicación a JumpCloud:

  1. Inicie sesión en el portal de administración JumpCloud en https://console.jumpcloud.com/login.
  2. Vaya a Autenticación de usuarios > SSO y haga clic en el símbolo ( + ). Aparecerá el panel para configurar una nueva aplicación.
  3. Busque una aplicación por su nombre utilizando la barra de búsqueda situada en la parte superior del panel.
  4. Cuando encuentre la aplicación que desea conectar, haga clic en configurar. 

Consejo: Si no hay un conector para una aplicación que desea conectar a JumpCloud, puede utilizar el conector SAML 2.0 para conectar esa aplicación con JumpCloud. 

JumpCloud utiliza el protocolo SAML 2.0 como método para afirmar identidades con proveedores de servicios de aplicaciones. JumpCloud se considera el proveedor de identidad, y la aplicación se considera el proveedor de servicios.

Cómo gestionar la autenticación SAML

El proveedor de servicios suele proporcionar parámetros de configuración SAML para configurar el SSO desde un IdP compatible como JumpCloud. 

La siguiente imagen muestra las instrucciones de Salesforce para configurar Marketing Cloud para SAML SSO.

Cómo gestionar la aserción SAML

Para iniciar sesión en una aplicación basada en web mediante autenticación SAML iniciada por un IdP: 

  1. Un usuario introduce sus credenciales en el IdP. 
  2. El IdP autentica y autoriza al usuario.
  3. Tras conectarse, el usuario navega hasta una lista de aplicaciones web a las que puede acceder y selecciona la que desea utilizar. 
  4. Cuando el usuario hace clic en la aplicación basada en web, el IdP envía una aserción SAML al SP.
  5. El SP recibe la aserción SAML y hace algunas cosas:
  • El SP comprueba que la afirmación es válida y auténtica.
  • El SP averigua quién es el usuario y cómo debe conectarse. 
  1. El SP permite al usuario acceder a la aplicación sin que tenga que volver a identificarse. 

Para iniciar sesión en una aplicación basada en web utilizando autenticación SAML iniciada por SP:

  1. Un usuario accede a la página de inicio de sesión de una aplicación web e introduce su nombre de usuario. 
  2. El comportamiento del SP varía, pero muchos detectan que SAML SSO está involucrado, y redirige al usuario a una página de inicio de sesión IdP. 
  3. El usuario introduce sus credenciales en la página de inicio de sesión del IdP. 
  4. El IdP autentica y autoriza al usuario y, a continuación, envía una aserción SAML al SP con la información que necesita. 
  5. El usuario es redirigido de nuevo al SP con acceso a la aplicación. 

Comience con JumpCloud

Puede experimentar True SSO con SAML, LDAP, RADIUS y más usted mismo, con JumpCloud.

También ofrecemos demostraciones personalizadas y gratuitas de la plataforma para mostrarle cómo funciona antes de que pruebe JumpCloud usted mismo.

David Worthington

I'm the JumpCloud Champion for Product, Security. JumpCloud and Microsoft certified, security analyst, a one-time tech journalist, and former IT director.

Continúa Aprendiendo con nuestro Newsletter