SAML es el estándar técnico que usan los proveedores de SSO para comunicar que un usuario está autenticado.
Después de leer este artículo podrás:
Contenido relacionado
Suscríbase a theNET, el resumen mensual de Cloudflare sobre las ideas más populares de Internet.
Copiar enlace del artículo
El lenguaje de marcado para confirmaciones de seguridad, o SAML, es una forma estandarizada de indicar a las aplicaciones y servicios externos que un usuario es quien dice ser. SAML hace posible la tecnología de inicio de sesión único (SSO) al ofrecer una manera de autenticar a un usuario una vez y luego comunicar esa autenticación a múltiples aplicaciones. La versión más reciente de SAML es SAML 2.0.
Pensemos en la autenticación SAML como si fuera una tarjeta de identificación: una forma breve y estandarizada de mostrar quién es alguien. En vez de, por ejemplo, realizar una serie de pruebas de ADN para confirmar la identidad de alguna posible, basta con echar un vistazo a su tarjeta de identificación.
En informática y en redes, uno de los principales retos es conseguir que los sistemas y dispositivos creados por distintos proveedores para fines diferentes funcionen juntos. Es lo que se conoce como "interoperabilidad": la capacidad de que diferentes máquinas interactúen entre sí, a pesar de sus diferentes especificaciones técnicas. SAML es un estándar interoperable: es una forma ampliamente aceptada de comunicar la identidad de un usuario a los proveedores de servicios en la nube.
El inicio de sesión único (SSO) es una forma de autenticar a los usuarios para varias aplicaciones y servicios a la vez. Con el SSO, un usuario se registra en una única pantalla de inicio de sesión y puede utilizar varias aplicaciones. Los usuarios no necesitan confirmar su identidad en cada uno de los servicios que utilizan.
Para que esto ocurra, el sistema de SSO debe comunicarse con todas las aplicaciones externas para indicarles que el usuario ha iniciado sesión, y ahí es donde entra en juego SAML.
Un proceso típico de autenticación de SSO involucra a estas tres partes:
Principal/sujeto: se trata casi siempre de un usuario humano que intenta acceder a una aplicación alojada en la nube.
Proveedor de identidad: un proveedor de identidad (IdP) es un servicio de software en la nube que almacena y confirma la identidad del usuario, normalmente a través de un proceso de inicio de sesión. Básicamente, el papel de un IdP es decir: "Conozco a esta persona y esto es lo que tiene permiso para hacer." Un sistema de SSO puede estar separado del IdP, pero en esos casos el SSO actúa esencialmente como representante del IdP, así que a todos los efectos son lo mismo en un flujo de trabajo SAML.
Proveedor de servicios: se trata de la aplicación o servicio alojado en la nube que el usuario desea utilizar. Algunos ejemplos típicos son las plataformas de correo electrónico en la nube, como Gmail y Microsoft Office 365, los servicios de almacenamiento en la nube, como Google Drive y AWS S3, y las aplicaciones de comunicación, como Slack y Skype. Normalmente, un usuario simplemente iniciaría sesión en estos servicios directamente, pero cuando se utiliza el SSO, el usuario inicia la sesión en el SSO, y se utiliza SAML para darle acceso, en lugar de utilizar un inicio de sesión directo.
Este es el aspecto de un flujo típico:
El principal realiza una solicitud al proveedor de servicios. A continuación, el proveedor de servicios solicita la autenticación al proveedor de identidad. El proveedor de identidades envía una aserción SAML al proveedor de servicios, y el proveedor de servicios puede entonces enviar una respuesta al principal.
Si el principal (el usuario) todavía no ha iniciado la sesión, el proveedor de identidad puede pedirle que inicie la sesión antes de enviarle una aserción SAML.
Una aserción SAML es el mensaje que indica a un proveedor de servicios que un usuario ha iniciado sesión. Las aserciones SAML incluyen toda la información necesaria para que un proveedor de servicios confirme la identidad del usuario, incluida la fuente de la aserción, el momento en que se emitió y las condiciones que hacen que la aserción sea válida.
Imaginemos que una aserción SAML es como si fuera el contenido de una referencia para un candidato a un puesto de trabajo: la persona que proporciona la referencia dice cuándo y durante cuánto tiempo trabajó con el candidato, cuál era su puesto y su opinión sobre el mismo. Basándose en esta referencia, una empresa puede tomar una decisión sobre la contratación del candidato, al igual que una aplicación SaaS o un servicio en la nube puede permitir o denegar el acceso de los usuarios basándose en una aserción SAML.
SAML 2.0 es la versión moderna de SAML, y se utiliza desde 2005. SAML 2.0 combinó varias versiones de SAML que se habían utilizado anteriormente. Muchos sistemas son compatibles con versiones anteriores, como SAML 1.1, por retrocompatibilidad, pero SAML 2.0 es el estándar moderno.
SAML es una tecnología para la autenticación de usuario, no para la autorización de usuario, y esta es una distinción clave. La autorización de usuario es un área separada de la gestión de identidades y accesos.
La Autenticación hace referencia a la identidad de un usuario: quién es y si su identidad ha sido confirmada por un proceso de inicio de sesión.
La Autorización hace referencia a los privilegios o permisos de un usuario, en concreto, qué acciones tiene permiso para realizar dentro de los sistemas de una empresa.
Pensemos en la diferencia entre autenticación y autorización de esta manera: imaginemos que Alice va a un festival de música. En la entrada del festival, muestra su entrada y una forma de identificación adicional para demostrar que tiene derecho a poseer la entrada. Al hacerlo, se le permite entrar en el festival. Ha sido autenticada.
Sin embargo, el hecho de que Alice esté dentro del festival no significa que pueda ir a cualquier sitio y hacer lo que quiera. Puede ver los conciertos, pero no puede subirse al escenario y ponerse a tocar, ni puede ir entre bastidores e interactuar con los artistas, porque no está autorizada a hacerlo. Si hubiera comprado pases indicados para ello, o si fuera una artista además de asistente, tendría una autorización de mayor nivel.
Las tecnologías de gestión de acceso manejan la autorización de los usuarios. Las plataformas de gestión de acceso utilizan diferentes estándares de autorización (uno de ellos es OAuth), pero no SAML.
Cloudflare Zero Trust es un ejemplo de solución de gestión de acceso. Cloudflare Access permite que las empresas gestionen el acceso de los usuarios a los recursos y datos internos sin necesidad de utilizar una red privada virtual (VPN). Se integra fácilmente con los proveedores de SSO para ofrecer tanto la autorización como la autenticación de los usuarios.