autenticacion
SAML
Conceptos Fundamentales
- autenticacion
- Protocolos
- XML
- SAML (Security Assertion Markup Language) es un estándar basado en XML utilizado para implementar SSO Single Sign-On en entornos corporativos y aplicaciones web.
- Permite que un Identity Provider (IdP) autentique al usuario y que un Service Provider (SP) confíe en esa autenticación sin gestionar credenciales directamente.
Características Clave
- Estándar maduro ampliamente soportado.
- Ideal para federación entre organizaciones.
- Utiliza Aserciones firmadas digitalmente para garantizar integridad y autenticidad.
- Funciona principalmente mediante redirecciones HTTP y mensajes XML firmados.
- Independiente de plataforma y de lenguajes.
Componentes de SAML
Aserciones
- Incluyen información sobre:
- Identidad del usuario.
- Atributos (correo, roles, grupos…).
- Condiciones de validez (audiencia, timestamps).
- Son firmadas por el IdP para garantizar integridad.
IdP (Identity Provider)
- Responsable de autenticar al usuario (contraseña, MFA, etc.).
- Emite aserciones SAML.
- Ejemplos: ADFS, Okta, Shibboleth, Keycloak.
SP (Service Provider)
- Consume la aserción emitida por el IdP.
- Valida firma, audiencia, expiración.
- Utiliza los atributos para crear sesión local.
Tipos de Perfiles SAML
Web Browser SSO Profile
- El más utilizado.
- Usa POST/Redirect para intercambio de mensajes.
- Ideal para aplicaciones web tradicionales.
Artifact Resolution Profile
- En lugar de enviar la aserción completa, se envía un “artefacto” para ser resuelto por back-channel.
- Más seguro en escenarios sensibles.
Single Logout (SLO)
- Permite cerrar sesión en todos los SP federados.
- Funciona mediante mensajes de logout firmados.
Flujo General de SAML 2.0
- El usuario accede a un SP.
- El SP redirige al IdP con una AuthnRequest.
- El IdP autentica al usuario.
- IdP devuelve una Aserción SAML firmada al SP.
- El SP valida la firma y crea la sesión del usuario.
Ventajas
- Alta interoperabilidad entre proveedores.
- Modelo muy seguro cuando se configuran correctamente firmas y certificados.
- Útil para aplicaciones heredadas que no soportan OIDC.
Desventajas
- Basado en XML: mensajes más pesados que OIDC.
- Complejidad en configuración.
- Menos orientado a dispositivos móviles o SPAs.
- Menor soporte moderno respecto a OIDC.
Diferencias con Otros Protocolos
- LDAP vs SAML:
- LDAP es un directorio y método de autenticación tradicional.
- SAML es un protocolo de federación.
- Ver: La diferencia entre LDAP y SAML SSO - JumpCloud
- SAML vs OIDC:
- SAML → XML, diseñado para SSO corporativo clásico.
- OIDC → JSON/JWT, ideal para aplicaciones modernas y APIs.
Enlaces de Referencia
- SAML diferencias
- ¿Qué es SAML 2.0 y cómo funciona? - Auth0
- Security Assertion Markup Language - Wikipedia
Ejemplo de Aserción SAML (simplificada)
Código
<saml:Assertion ID="_12345" IssueInstant="2025-11-14T12:00:00Z" Version="2.0">
<saml:Issuer>https://idp.example.com</saml:Issuer>
<saml:Subject>
<saml:NameID Format="urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress">
user@example.com
</saml:NameID>
</saml:Subject>
<saml:AttributeStatement>
<saml:Attribute Name="role">
<saml:AttributeValue>admin</saml:AttributeValue>
</saml:Attribute>
</saml:AttributeStatement>
</saml:Assertion>
`
¿Te gusta este contenido? Suscríbete vía RSS