SAML significa Security Assertion Markup Language (Lenguaje de Marcado de Aserciones de Seguridad), un estándar abierto que pasa las credenciales de autorización de los proveedores de identidad (IdP) a los proveedores de servicios (SP). En pocas palabras, permite una comunicación segura entre las aplicaciones y permite a los usuarios obtener acceso con un único conjunto de credenciales.
Antes de que podamos profundizar demasiado en para qué se utiliza SAML, cómo funciona SAML y las formas en que las empresas pueden beneficiarse de él, necesita comprender los tipos de proveedores de SAML que ayudan a hacer posible este proceso. Así que empecemos por ahí.
Tipos de proveedores de SAML
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. Algunos ejemplos son Salesforce, Box y otras tecnologías de primer nivel.
SAML, por lo tanto, es el vínculo entre la autenticación de la identidad de un usuario y la autorización para usar un servicio. Es el lenguaje que ayuda a los IdP y a los 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 autenticación y autorizació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 una 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 los proveedores de servicios existan por separado, lo que ayuda a las organizaciones a centralizar la gestión de usuarios y proporcionar acceso a varias 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 único panel que les brinda acceso directo a todas sus herramientas de productividad y comunicación.
Cómo funciona SAML
SAML utiliza el Lenguaje de Marcado Extensible (XML) 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.
Existen tres tipos de aserciones SAML:
- Las aseveraciones 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 utilizó (por ejemplo, Kerberos, autenticación multifactor).
- Las aseveraciones de atribución pasan atributos SAML, las piezas de datos que proporcionan información sobre el usuario, al proveedor de servicios.
- Las afirmaciones de autorización confirman si el usuario está autorizado a utilizar un servicio (y qué grado de autorización tiene) o si el proveedor de identidad denegó su solicitud debido a un fallo de contraseña o a la falta de derechos de acceso.
En resumen, SAML funciona pasando 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 utilizando SSO, por ejemplo, el IdP pasará los atributos de SAML al SP, lo que garantiza que el usuario solo necesite iniciar sesión una vez.
Veamos cómo podría desarrollarse 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. Cuando inician sesión en ese panel mediante un proveedor de identidad (como Okta), se les presentan iconos de proveedores de servicios externos, como Slack o Salesforce. Luego, pueden hacer clic en cualquiera de estos iconos 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 de SAML por los que los usuarios pueden pasar 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 pedir al usuario que inicie sesión, el servicio redirige al usuario a su proveedor de identidad para que gestione la autenticación. Si se confirma su identidad, se les concederá acceso al sitio o a la aplicación.
Flujo SAML iniciado por el proveedor de identidad
Este flujo se produce cuando un usuario inicia sesión en el proveedor de identidad e inicia 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 cuenta nueva y autenticada para ese servicio.
Beneficios de SAML
SAML ofrece muchos beneficios tanto para los usuarios como para las empresas, entre los que destaca la reducción de la fricción al usar 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 múltiples inicios de sesión a menudo lleva a las personas a olvidar sus contraseñas o, lo que es peor, a escribirlas, lo que aumenta el riesgo de que roben esas credenciales. Con SAML, los usuarios solo necesitan saber 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 garantiza que las credenciales solo se envíen directamente, minimizando las oportunidades de phishing o robo de identidad.
Costos reducidos
La implementación de SAML ahorra cantidades significativas 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 costos de desarrollo (a menudo asociados con métodos de autenticación propietarios) 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 dejan la empresa. SAML simplifica esto, ya que cada usuario se puede administrar 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 los servicios a administrar y aprobar de forma segura las identidades de los usuarios.
OpenID: OpenID es un estándar de identidad de código abierto que permite a los usuarios acceder a múltiples 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 (u OpenAuth, si desea utilizar el nombre completo) 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 haya utilizado antes). Sin embargo, se diferencia por el uso de tokens JSON para autenticar a los usuarios y, como resultado, es más apropiado para dispositivos móviles.
Web Service Federation: Web Services Federation se utiliza para federar la autenticación de proveedores de servicios a proveedores de identidad. Comúnmente se considera más sencillo para los desarrolladores de implementar y está bien soportado por proveedores de identidad populares, como AD, pero menos con proveedores de nube.
Comenzando con SAML
SAML es una parte vital de cualquier estrategia de ciberseguridad, ya que limita el uso de credenciales y permite a las empresas auditar y administrar la identidad de forma centralizada. Además, brinda a los usuarios un fácil acceso a las aplicaciones web que demandan, de una manera que también mejora la seguridad.
Comenzar con SAML es simple con el proveedor de identidad adecuado. Okta, por ejemplo, proporciona una herramienta de validación de SAML, así como varios kits de herramientas de SAML de código abierto en diferentes lenguajes de programación.
Para obtener una mejor idea de cómo SAML puede beneficiar a las organizaciones y a los empleados, consulta los siguientes recursos:
- Understanding SAML (Documentación)
- SAML Integrations OpenID Connect and Partner IdP (Demostración del producto)
- SAML Integrations of On-Prem Applications and Pre-built Configurations (Demostración del producto)