SAML (Security Assertion Markup Language) es un estándar abierto basado en XML que permite el intercambio de información de autenticación y autorización entre distintas entidades. Su propósito principal es facilitar el Single Sign-On (SSO) en entornos web, permitiendo que un usuario se autentique una sola vez con un proveedor de identidad (IdP) y acceda a múltiples proveedores de servicios (SP) sin necesidad de reautenticarse. SAML define tres roles principales: el principal (generalmente el usuario), el IdP que autentica al principal y emite una "aserción" SAML, y el SP que consume esa aserción para otorgar acceso al principal. Las aserciones SAML son documentos XML firmados digitalmente que contienen información sobre la autenticación del usuario, atributos y decisiones de autorización.
En el mundo real, SAML es ampliamente adoptado en entornos empresariales y federados para implementar SSO. Ejemplos concretos incluyen la integración de aplicaciones SaaS (Software as a Service) con sistemas de gestión de identidades corporativos. Plataformas como Okta, Azure Active Directory, OneLogin y Auth0 actúan como proveedores de identidad (IdP) que pueden federarse con innumerables proveedores de servicios (SP) como Salesforce, Workday, Google Workspace, Microsoft 365, o aplicaciones internas personalizadas. También es común en escenarios de federación entre organizaciones, donde los empleados de una empresa pueden acceder a recursos de otra sin crear cuentas duplicadas, confiando en la identidad establecida por su IdP de origen.
Para un arquitecto, SAML es crucial para diseñar soluciones de identidad y acceso federadas y escalables. Permite desacoplar la autenticación de la autorización, mejorando la seguridad y la experiencia del usuario a través del SSO. Sin embargo, su implementación puede ser compleja debido a la verbosidad de XML, la gestión de certificados para la firma digital y el cifrado, y la necesidad de entender los diferentes "bindings" (HTTP Redirect, HTTP POST, SOAP) y "profiles" (Web Browser SSO Profile). Las decisiones de diseño incluyen la elección entre SAML y alternativas más modernas como OpenID Connect/OAuth 2.0 (que son más ligeras y adecuadas para APIs y aplicaciones móviles), la gestión de metadatos de federación, y la estrategia de mapeo de atributos entre IdP y SP. La correcta implementación de SAML es vital para la interoperabilidad, la seguridad y la reducción de la fricción en el acceso a recursos distribuidos.