¿Qué es SAML y cómo funciona?

El Lenguaje de Marcado de Aserción de Seguridad (SAML) es un estándar abierto que permite a los proveedores de identidad (IdP) pasar credenciales de autorización a los proveedores de servicios (SP). Lo que esta jerga significa es que se puede utilizar un conjunto de credenciales para iniciar sesión en muchos sitios web diferentes. Es mucho más sencillo gestionar un inicio de sesión por usuario que gestionar inicios de sesión separados para el correo electrónico, el software de gestión de las relaciones con los clientes (CRM), Active Directory, etc.

Las transacciones SAML utilizan el lenguaje de marcado extensible (XML) para las comunicaciones estandarizadas entre el proveedor de identidad y los proveedores de servicios. SAML es el enlace entre la autenticación de la identidad de un usuario y la autorización para utilizar un servicio.

Obtenga el EBook gratuito de Pen Testing de Entornos de Active Directory

«Esto realmente me abrió los ojos a la seguridad de AD de una manera que el trabajo defensivo nunca lo hizo.»

El Consorcio OASIS aprobó SAML 2.0 en 2005. El estándar cambió significativamente con respecto a la versión 1.1, hasta el punto de que las versiones son incompatibles. La adopción de SAML permite a las tiendas de TI utilizar soluciones de software como servicio (SaaS) manteniendo un sistema seguro de gestión de identidades federadas.

SAML permite el inicio de sesión único (SSO), un término que significa que los usuarios pueden iniciar sesión una vez, y esas mismas credenciales pueden reutilizarse para iniciar sesión en otros proveedores de servicios.

¿Para qué se utiliza SAML?

SAML simplifica los procesos de autenticación y autorización federados para los usuarios, los proveedores de identidad y los proveedores de servicios. SAML proporciona una solución para permitir que el proveedor de identidad y los proveedores de servicios existan por separado, lo que centraliza la gestión de usuarios y proporciona acceso a soluciones SaaS.

SAML implementa un método seguro para pasar las autenticaciones y autorizaciones de los usuarios entre el proveedor de identidad y los proveedores de servicios. Cuando un usuario inicia sesión en una aplicación habilitada para SAML, el proveedor de servicios solicita autorización al proveedor de identidad correspondiente. El proveedor de identidades autentica las credenciales del usuario y, a continuación, devuelve la autorización para el usuario al proveedor de servicios, y el usuario ya puede utilizar la aplicación.

La autenticación SAML es el proceso de verificación de la identidad y las credenciales del usuario (contraseña, autenticación de dos factores, etc.). La autorización SAML indica al proveedor de servicios qué acceso debe conceder al usuario autenticado.

¿Qué es un proveedor SAML?

Dos tipos de proveedores SAML
Un proveedor SAML es un sistema que ayuda a un usuario a acceder a un servicio que necesita. Hay dos tipos principales de proveedores SAML, el proveedor de servicios y el proveedor de identidades.

Un proveedor de servicios necesita la autenticación del proveedor de identidades para conceder la autorización al usuario.

Un proveedor de identidades realiza la autenticación de que el usuario final es quien dice ser y envía esos datos al proveedor de servicios junto con los derechos de acceso del usuario al servicio.

Microsoft Active Directory o Azure son proveedores de identidades comunes. Salesforce y otras soluciones de CRM suelen ser proveedores de servicios, en el sentido de que dependen de un proveedor de identidad para la autenticación del usuario.

¿Qué es una aserción SAML?

Una aserción SAML es el documento XML que el proveedor de identidad envía al proveedor de servicios y que contiene la autorización del usuario. Hay tres tipos diferentes de aserciones SAML – autenticación, atributo y decisión de autorización.

  • Las aserciones de autenticación prueban la identificación del usuario y proporcionan la hora en que el usuario se conectó y qué método de autenticación utilizó (Ej, Kerberos, 2 factores, etc.)
  • La aserción de atribución pasa los atributos SAML al proveedor de servicios – Los atributos SAML son piezas específicas de datos que proporcionan información sobre el usuario.
  • Una aserción de decisión de autorización dice si el usuario está autorizado a utilizar el servicio o si el proveedor de identidades denegó su solicitud debido a un fallo en la contraseña o a la falta de derechos sobre el servicio.
    • ¿Cómo funciona SAML?

      SAML funciona pasando información sobre usuarios, inicios de sesión y atributos entre el proveedor de identidades y los proveedores de servicios. Cada usuario se registra una vez en Single Sign On con el proveedor de identidad, y luego el proveedor de identidad puede pasar los atributos SAML al proveedor de servicios cuando el usuario intenta acceder a esos servicios. El proveedor de servicios solicita la autorización y la autenticación al proveedor de identidad. Dado que ambos sistemas hablan el mismo idioma -SAML-, el usuario sólo tiene que iniciar sesión una vez.

      Cada proveedor de identidad y proveedor de servicios tiene que acordar la configuración de SAML. Ambos extremos necesitan tener la configuración exacta para que la autenticación SAML funcione.

      Pasos de ejemplo de SAML

      Ejemplo de SAML

  1. Frodo (usuario) inicia sesión en SSO a primera hora de la mañana.
  2. Frodo entonces intenta abrir la página web de su CRM.
  3. El CRM -el proveedor de servicios- comprueba las credenciales de Frodo con el proveedor de identidades.
  4. El proveedor de identidades envía mensajes de autorización y autenticación de vuelta al proveedor de servicios, lo que permite a Frodo iniciar sesión en el CRM.
  5. Frodo puede utilizar el CRM y realizar su trabajo.
    «Necesito 8 voluntarios para un proyecto difícil…»

SAML vs. OAuth

OAuth es un estándar un poco más nuevo que fue co-desarrollado por Google y Twitter para permitir inicios de sesión en Internet racionalizados. OAuth utiliza una metodología similar a SAML para compartir la información de inicio de sesión. SAML proporciona más control a las empresas para mantener sus inicios de sesión SSO más seguros, mientras que OAuth es mejor en el móvil y utiliza JSON.

Facebook y Google son dos proveedores de OAuth que podrías utilizar para iniciar sesión en otros sitios de Internet.

Tutoriales de SAML

Algunos recursos para ayudar a investigar exactamente cómo implementar SAML:

  • Configurar SAML para Salesforce
  • Configurar OKTA como SAML IDP
  • OneLogin tiene ejemplos en 5 lenguajes de programación diferentes
  • SAML y SSO son importantes para cualquier estrategia de ciberseguridad empresarial. Las mejores prácticas de gestión de identidades requieren que las cuentas de usuario estén limitadas únicamente a los recursos que el usuario necesita para hacer su trabajo y que sean auditadas y gestionadas de forma centralizada. Mediante el uso de una solución SSO, puede desactivar las cuentas de un sistema y eliminar el acceso a todos los recursos disponibles a la vez, lo que protege sus datos del robo.