A medida que TI continúa cambiando hacia la nube y las aplicaciones de software como servicio (SaaS), SAML se está convirtiendo en un tema candente. Exploremos SAML, cómo funciona, su historia y beneficios, y cómo puedes usarlo.
Indice
¿Qué es SAML (Security Assertion Markup Language)?
SAML (Security Assertion Markup Language) es un estándar abierto que permite a los usuarios acceder a numerosas aplicaciones web o servicios web utilizando las mismas credenciales de inicio de sesión a través de la federación de identidad.
Depende de dos partes: un proveedor de identidad (IDP) y un proveedor de servicios (SP). El IDP proporciona información de autenticación sobre el usuario al SP. El SP utiliza esta información para proporcionar autorización al usuario. El emparejamiento de autenticación con autorización permite al usuario acceder a los servicios del SP.
El caso de uso principal de SAML es facilitar el inicio de sesión único (SSO). Sin SAML, los usuarios necesitarían un nombre de usuario y una contraseña únicos para cada aplicación web o servicio web que utilicen. A medida que las organizaciones continúan adoptando un número creciente de aplicaciones SaaS , está claro que los empleados tendrían dificultades para administrar las credenciales individuales para cada servicio de forma segura.
SAML habilita el inicio de sesión único del navegador web al permitir que los usuarios inicien sesión en aplicaciones / servicios con un único conjunto de credenciales. Esta centralización no solo brinda comodidad a los empleados, sino que también mejora la seguridad organizacional, entre otros beneficios.
SAML 1.0 fue lanzado por OASIS en 2002 como un estándar Extensible Markup Language (XML), seguido de una revisión menor en 2003.
El Consorcio OASIS aprobó SAML 2.0 en 2005. El estándar cambió significativamente de 1.1, tanto que las versiones son incompatibles. La adopción de SAML permite que las tiendas de TI utilicen soluciones de software como servicio (SaaS) mientras mantienen un sistema de gestión de identidad federado seguro.
SAML habilita el inicio de sesión único (SSO), un término que significa que los usuarios pueden iniciar sesión una vez y que esas mismas credenciales se pueden reutilizar para iniciar sesión en otros proveedores de servicios.
Tipos de proveedores de SAML
Un proveedor de SAML es un sistema que ayuda a un usuario a acceder a un servicio que necesita. Para que SAML funcione, debe haber un proveedor de identidad y un proveedor de servicios:
- Los proveedores de identidad autentican a los usuarios: estos sistemas son responsables de confirmar que un usuario es quien dice ser y luego enviar esos datos (y los derechos de acceso del usuario) a un proveedor de servicios. Okta, Microsoft Active Directory (AD) y Microsoft Azure son ejemplos de proveedores de identidad.
- Los proveedores de servicios autorizan a los usuarios: estos sistemas utilizan los datos de autenticación de un proveedor de identidad para otorgar acceso a un servicio. Los ejemplos incluyen Salesforce, Box y otras tecnologías de primer nivel.
SAML, por tanto, es el vínculo entre la autenticación de la identidad de un usuario y la autorización para utilizar un servicio. Es el lenguaje que ayuda a los IdP y SP a comunicarse. Cuando un empleador (el IdP) y una empresa SaaS (el SP) implementan SAML, pueden autenticar sin problemas a los usuarios acreditados.
¿Para qué se utiliza SAML?
SAML cambia por completo la forma en que los usuarios inician sesión en los servicios o sitios web, y tiene como objetivo simplificar los procesos de autorización y autenticación federados para todas las partes: proveedores de identidad, proveedores de servicios y usuarios finales.
En lugar de solicitar credenciales como un nombre de usuario y contraseña para cada intento de inicio de sesión, SAML puede ayudar a verificar que un usuario es quien dice ser y confirmar los niveles de permiso para otorgar o denegar el acceso. Además, SAML permite que los proveedores de identidad y de servicios existan por separado, lo que ayuda a las organizaciones a centralizar la gestión de usuarios y proporcionar acceso a diversas soluciones de software.
SAML se utiliza con mayor frecuencia para habilitar el inicio de sesión único (SSO), que autentica a los usuarios acreditados entre un proveedor de identidad y un proveedor de servicios. Las organizaciones que implementan aplicaciones configuradas con SAML, por ejemplo, pueden permitir que sus empleados usen solo un conjunto de credenciales para iniciar sesión en un solo tablero que les brinda acceso directo a todas sus herramientas de productividad y comunicación.
El papel de los usuarios en la autenticación SAML
En la autenticación SAML, un usuario tiene una cuenta con el IDP, que contiene sus credenciales de inicio de sesión y otra información necesaria para la autenticación. El usuario suele ser el empleado de una organización (cliente).
Normalmente, el rol del usuario en el proceso de autenticación SAML es el siguiente:
- El usuario intenta iniciar sesión en el SP directamente, por ejemplo, a través de su URL.
- El SP verifica que el IDP haya autenticado al usuario.
- Si el IDP ha autenticado al usuario, el SP autoriza al usuario y le otorga acceso al servicio.
- Si no han sido autenticados, el SP busca la autenticación del IDP. El IDP autentica al usuario comprobando las credenciales existentes.
- Si la autenticación es exitosa, el IDP devuelve estas credenciales al SP. El SP autoriza al usuario, otorgándole acceso al servicio.
El papel de los proveedores de identidad en la autenticación SAML
Un proveedor de identidad (IDP) es el servicio responsable de identificar y autenticar al usuario. El IDP envía al SP esta autenticación junto con otra información, como sus privilegios de acceso. En una configuración SAML, el IDP se encuentra entre un usuario y el SP para proporcionar autenticación.
Los ejemplos comunes de proveedores de identidad SAML incluyen Microsoft Azure Active Directory / LDAP y Okta.
Normalmente, el rol del IDP en el proceso de autenticación SAML es el siguiente:
- El IDP recibe una solicitud SAML del SP para autenticar a un usuario que intenta iniciar sesión en el servicio.
- El IDP verifica las credenciales existentes del usuario que están almacenadas en su directorio activo local. Dichas credenciales podrían incluir nombre de usuario y contraseña, autenticación de dos factores (2FA) o autenticación de múltiples factores (MFA).
- Si la autenticación es exitosa, el IDP devuelve estas credenciales al SP a través de una respuesta SAML. El SP autoriza al usuario, otorgándole acceso al servicio.
El papel de los proveedores de servicios en la autenticación SAML
Un proveedor de servicios (SP) es el servicio web o la aplicación a la que el usuario desea acceder. En una configuración SAML, el SP se comunica con un usuario a través de un IDP. El IDP proporciona autenticación de usuario al SP, lo que le permite autorizar el acceso de los usuarios.
Los ejemplos comunes de SP incluyen AWS, Salesforce, Microsoft 365 y G-Suite.
Normalmente, el rol del SP en el proceso de autenticación SAML es el siguiente:
- El SP recibe un intento de inicio de sesión de un usuario para acceder a sus servicios.
- El SP envía una solicitud al IDP para autenticar al usuario verificando sus credenciales existentes.
- Si la autenticación es exitosa, el IDP devuelve estas credenciales al SP. El SP autoriza al usuario, otorgándole acceso al servicio.
Cómo funciona SAML
SAML utiliza XML (Extensible Markup Language) para comunicarse entre el proveedor de identidad y el proveedor de servicios. Esto toma la forma de una aserción SAML, un tipo de documento XML que un proveedor de identidad envía a un proveedor de servicios para autorizar a un usuario.
Hay tres tipos de afirmaciones SAML:
- De autenticación: prueban la identidad de un usuario y proporcionan la hora en que inició sesión, así como el protocolo de autenticación que utilizaron (por ejemplo, Kerberos, autenticación multifactor).
- De atribución: pasan atributos SAML, los datos que proporcionan información sobre el usuario, al proveedor de servicios.
- Afirmaciones de autorización: confirman si el usuario está autorizado para usar un servicio, y qué grado de autorización tiene, o si el proveedor de identidad rechazó su solicitud debido a un fallo en la contraseña o falta de derechos de acceso.
En resumen, SAML funciona transmitiendo información sobre los usuarios, sus inicios de sesión y sus atributos entre un proveedor de identidad y un proveedor de servicios. Cuando un usuario inicia sesión usando SSO, por ejemplo, el IdP pasará los atributos SAML al SP, lo que garantiza que el usuario solo necesite iniciar sesión una vez.
Veamos cómo podría suceder esto en la vida cotidiana. Cuando un usuario comienza a trabajar en una nueva empresa, recibe una dirección de correo electrónico y acceso a un panel de control. Cuando inician sesión en ese panel con un proveedor de identidad, se les presentan iconos de proveedores de servicios externos, como Slack o Salesforce. Luego, pueden hacer clic en cualquiera de estos íconos e iniciar sesión automáticamente en ese servicio sin necesidad de volver a ingresar sus credenciales.
Dicho esto, en realidad hay dos tipos de flujos SAML por los que los usuarios pueden acceder para acceder a sitios web, aplicaciones y servicios en línea:
Flujo SAML iniciado por el proveedor de servicios
Esto ocurre cuando un usuario intenta iniciar sesión en un servicio habilitado para SAML a través de su página de inicio de sesión o aplicación móvil. En lugar de pedirle al usuario que inicie sesión, el servicio redirige al usuario a su proveedor de identidad para que se encargue de la autenticación. Si se confirma su identidad, se les otorgará acceso al sitio o la aplicación.
Flujo SAML iniciado por el proveedor de identidad
Este flujo ocurre cuando un usuario inicia sesión en el proveedor de identidad y lanza una aplicación de servicio desde su base de datos. Si ya tienen una cuenta con el proveedor de servicios, obtendrán acceso automáticamente. De lo contrario, algunos proveedores de identidad pueden usar SAML para crear una nueva cuenta autenticada para ese servicio.
Beneficios de SAML
SAML ofrece muchos beneficios tanto para los usuarios como para las empresas, entre los que se destaca la reducción de la fricción del uso de múltiples aplicaciones web. Otras ventajas incluyen:
- Experiencias de usuario mejoradas. SAML no solo facilita el inicio de sesión en aplicaciones y servicios, sino que también ayuda a los usuarios a ser más productivos porque pueden acceder fácilmente a las herramientas que necesitan para realizar su trabajo.
- Menos credenciales perdidas. Tener que hacer malabarismos con varios inicios de sesión a menudo hace que las personas olviden sus contraseñas o, peor aún, las anoten, lo que aumenta el riesgo de que se roben esas credenciales. Con SAML, los usuarios solo necesitan conocer una combinación de nombre de usuario y contraseña.
- Mayor seguridad. SAML proporciona un único punto de autenticación en un proveedor de identidad seguro, que luego transfiere la información de identidad del usuario a los proveedores de servicios. Esto asegura que las credenciales solo se envíen directamente, minimizando las oportunidades de phishing o robo de identidad.
- Costes reducidos. La implementación de SAML ahorra una cantidad significativa de tiempo de administración, ya que ayuda a eliminar la necesidad de enviar tickets y restablecer contraseñas. También ayuda a mantener los costes de desarrollo (a menudo asociados con métodos de autenticación patentados) al mínimo.
- Gestión de usuarios simplificada. Dado que los empleados utilizan múltiples aplicaciones, puede convertirse en una pesadilla para los departamentos de TI administrar los derechos de acceso a medida que cambian los roles o cuando los empleados abandonan la empresa. SAML simplifica esto, ya que cada usuario puede administrarse desde un único directorio.
Alternativas a SAML
Si bien SAML ofrece una serie de beneficios en términos de federación de identidades, existen estándares alternativos disponibles que ayudan a las empresas y servicios a administrar y aprobar las identidades de los usuarios de manera segura.
- OpenID: OpenID es un estándar de identidad de código abierto que permite a los usuarios acceder a varios sitios web y aplicaciones sin compartir información de inicio de sesión adicional. Si alguna vez has iniciado sesión en un sitio web con tus credenciales de Google, YouTube o Facebook, has experimentado OpenID.
- OAuth: OAuth es un estándar que fue desarrollado conjuntamente por Google y Twitter para permitir inicios de sesión optimizados entre sitios web. Es similar a SAML en la forma en que comparte información entre aplicaciones (Facebook y Google son dos proveedores de OAuth que probablemente hayas usado antes). Sin embargo, difiere en el uso de tokens JSON para autenticar usuarios y, como resultado, es más apropiado para dispositivos móviles.
- Federación de servicios web: la Federación de servicios web se utiliza para federar la autenticación de los proveedores de servicios a los proveedores de identidad. Por lo general, se considera que es más sencillo de implementar para los desarrolladores y cuenta con el respaldo de proveedores de identidad populares, como AD, pero no tanto con los proveedores de la nube.
Por qué es importante la gestión de identidades
Un sistema IAM proporciona seguridad porque realiza un seguimiento de la actividad de los empleados. IAM rastrea a los empleados no solo cuando ingresan a la red a través de dispositivos, sino también cuando se involucran e interactúan con aplicaciones y sistemas.
Saber que los empleados pueden acceder a la red pero reducir su acceso a aplicaciones específicas del trabajo para garantizar la productividad también reduce la posibilidad de una brecha de seguridad. Limitar el acceso a determinadas aplicaciones y datos mediante protocolos basados en roles reduce las posibilidades de que un ciberatacante utilice la fuerza bruta para comprometer las credenciales de todos los empleados. Si el atacante sabe que no todo el mundo tiene acceso, entonces podría reconsiderar un ataque a gran escala.
Para una visibilidad avanzada de todos los dispositivos en una red, incluidos los dispositivos de Internet de las cosas (IoT), el control de acceso a la red (NAC) proporciona conocimiento de todo el inventario a medida que ingresan y se conectan a la red. NAC va un paso más allá y puede cerrar el acceso si el sistema sospecha de un uso no autorizado.
Los profesionales de TI también pueden utilizar el sistema IAM para detectar cualquier actividad inusual del usuario, por ejemplo, una cantidad extraordinaria de inicios de sesión en poco tiempo, todo en una única ubicación remota. O al revés, no hay registros en absoluto. En lugar de esperar a que los empleados presenten cualquier problema a TI, el sistema IAM puede rastrear la actividad sospechosa para que el equipo de TI pueda tomar medidas si es necesario.
Las empresas pueden beneficiarse de la estandarización o el uso de protocolos aceptados por la industria para permitir un enfoque más abierto a la arquitectura y la federación de identidades. Esto reduce la necesidad de que la empresa invierta en ingeniería y desarrollo para crear soluciones IAM personalizadas. Con una arquitectura abierta e identidades administradas, los empleados pueden acceder a SaaS vitales o aplicaciones basadas en la nube de manera transparente y segura.
Además, la adopción del modelo de seguridad de red de confianza cero reduce la complejidad de la pila de tecnología de una organización. El modelo de confianza cero se basa en la idea de que no se debe confiar en nadie dentro o fuera de la red a menos que se haya verificado su identificación. La confianza cero se puede llevar a cabo con un sistema IAM sólido implementado.
Además, la autenticación SAML mejora la seguridad al garantizar que las credenciales del usuario nunca abandonen los límites del firewall. Los cortafuegos defienden una red del tráfico procedente de entornos que se presume son menos seguros o de seguridad desconocida. Para obtener acceso al entorno seguro, los empleados o clientes deben estar autenticados antes de recibir autorización para utilizar los recursos, incluidos el hardware y el software. Los firewalls esencialmente evitan que usuarios, dispositivos y aplicaciones no autorizados ingresen a una red protegida.