Simplifica la integración de autenticación SAML para desarrolladores
Descubre qué es SAML, cómo implementar SSO y pasos rápidos para integrar la autenticación SAML como Proveedor de Identidad (IdP) o Proveedor de Servicio (SP).
Inicio de sesión único (SSO) es clave para las aplicaciones modernas, y SAML permite una autenticación segura y amigable a través de sistemas de identidad empresariales. Esta guía simplifica SAML para desarrolladores y diseñadores con pasos claros y ejemplos prácticos para ayudarte a implementarlo eficientemente.
¿Qué son la autenticación SAML y las aplicaciones SAML?
Security Assertion Markup Language (SAML) es un estándar basado en XML usado para intercambiar datos de autenticación y autorización entre dos roles clave: el Proveedor de Identidad (IdP) y el Proveedor de Servicio (SP). Es una solución común para inicio de sesión único (SSO) en organizaciones, facilitando la vida de los usuarios empresariales al permitirles iniciar sesión una vez y acceder a múltiples aplicaciones.
Proveedor de Identidad (IdP) es responsable de gestionar y verificar las credenciales de los usuarios, como nombres de usuario y contraseñas. Cuando un usuario intenta acceder a un servicio protegido, el IdP confirma su identidad y envía esta confirmación al servicio.
- Ejemplo: Imagina que trabajas para una gran empresa que utiliza Microsoft Azure AD para gestionar las cuentas de empleados. Cuando quieres iniciar sesión en Salesforce, Azure AD actúa como IdP. Verifica tus credenciales e informa a Salesforce que estás autorizado para usarlo.
Proveedor de Servicio (SP) es la aplicación o servicio al que los usuarios realmente intentan acceder. Depende del IdP para gestionar la autenticación.
- Ejemplo: Siguiendo el escenario anterior, Salesforce es el SP. Confía en Microsoft Azure AD (el IdP) para confirmar tu identidad. Una vez que Azure AD garantiza tu identidad, Salesforce te permite acceder.
Cuando se habla de una "aplicación SAML", generalmente se refiere al SP.
Usando el protocolo SAML, puedes configurar tu servicio como un IdP para soportar integraciones de aplicaciones (como Azure Ad / Google Workspace); o como un SP (como Salesforce / Slack) para proporcionar SSO a los usuarios.
Una Aserción SAML es el corazón del protocolo SAML. Es una “nota” digital creada por el IdP y enviada a un SP que dice: “He confirmado la identidad de este usuario”. A continuación, veremos cómo funciona el proceso tanto para IdP como para SP.
Cuando actúas como Proveedor de Identidad (IdP) SAML
Cuando tu servicio funciona como IdP, habilitas la autenticación SAML a través de múltiples aplicaciones. Esto permite que los usuarios accedan a diversos servicios mediante una sola identidad empresarial.
Aquí tienes un flujo típico de SSO SAML para un IdP:
- El usuario intenta acceder a una aplicación (SP), como Salesforce.
- La aplicación redirige al usuario a tu IdP para autenticación.
- El usuario introduce sus credenciales en la página de inicio de sesión de tu IdP.
- El IdP verifica las credenciales.
- Si las credenciales son correctas, el IdP envía una aserción SAML de regreso al SP.
- El SP procesa la aserción, confirma su validez y concede acceso al usuario.
Cuando actúas como Proveedor de Servicio (SP) SAML
Si tu servicio es el SP, te integrarás con varios proveedores de identidad para brindar a tus usuarios la capacidad de SSO. Esto permite a usuarios empresariales de diferentes organizaciones o inquilinos acceder de forma segura y eficiente a tu aplicación.
Aquí tienes un flujo de trabajo para SSO iniciado por el SP:
- El usuario intenta iniciar sesión en tu aplicación.
- Tu aplicación genera una solicitud SAML y redirige al usuario a la página de inicio de sesión del IdP.
- El usuario inicia sesión en el IdP (o se salta este paso si ya ha iniciado sesión).
- El IdP verifica la identidad del usuario y, una vez confirmada, empaqueta los detalles del usuario en una aserción SAML.
- El IdP envía la aserción de regreso a tu aplicación.
- Tu servicio verifica la aserción. Si es válida, el usuario obtiene acceso a tu aplicación.
Parámetros clave en SSO SAML
Para una integración exitosa de SSO SAML, tanto IdP como SP deben compartir parámetros específicos. Aquí tienes los esenciales:
Parámetros del IdP
- IdP Entity ID: Un identificador único del IdP en las comunicaciones SAML, como una etiqueta de nombre digital.
- SSO URL: El endpoint de inicio de sesión (URL) donde el SP redirige a los usuarios para autenticación.
- Certificado X.509: Una clave pública usada para firmar la aserción SAML, asegurando que sea segura. Este es el "sello" que verifica la autenticidad.
Consejo: Si tu IdP ofrece una URL de metadatos SAML, todo es más sencillo. Esta URL contiene toda la información necesaria (como certificados, URLs de SSO e IdP Entity ID) en un solo lugar. Esto minimiza el riesgo de errores al copiar y pegar manualmente y elimina la molestia de actualizar archivos de certificados manualmente.
Parámetros del SP
- SP Entity ID: El identificador único del SP, similar al IdP Entity ID.
- Assertion Consumer Service (ACS) URL: Es el endpoint del SP donde espera recibir la aserción SAML desde el IdP.
- RelayState (Opcional): Usado para pasar datos durante el proceso SAML, como la URL que el usuario intentaba visitar originalmente.
Mapeo de atributos SAML y cifrado
- Formato NameID: Define el formato del identificador del usuario (por ejemplo, dirección de correo electrónico o nombre de usuario).
- Atributos SAML: Son detalles adicionales del usuario, como roles, correo electrónico o departamento, que el IdP envía al SP.
- Ejemplo: Si la aserción SAML firmada por el IdP incluye
email
([email protected]),role
(administrador) ydepartment
(ingeniería). El SP puede usarrole
para asignar privilegios de administrador odepartment
para agrupar al usuario dentro del equipo adecuado. Por ello, para obtener estos datos esenciales del usuario, tanto el IdP como el SP deben decidir cómo mapear los atributos. Por ejemplo, el IdP podría definir “department” como equipo, mientras que el SP lo espera como grupo. Un mapeo adecuado asegura una comunicación fluida.
- Ejemplo: Si la aserción SAML firmada por el IdP incluye
- Aserciones cifradas (opcional): Para proteger datos sensibles de autenticación, las aserciones SAML pueden ser cifradas.
- Rol del IdP: Cifra la aserción usando la clave pública del SP.
- Rol del SP: Descifra la aserción con su clave privada para leer los detalles del usuario.
A estas alturas, ya deberías tener la información necesaria para configurar una conexión SAML. Para integrar Salesforce (Proveedor de Servicio) con Azure AD (Proveedor de Identidad), sigue estos pasos:
- Obtén el IdP Entity ID, la SSO URL y el certificado desde Azure AD y configúralos en Salesforce.
- Proporciona el SP Entity ID y ACS URL de Salesforce a Azure AD.
Logto hace que la integración SAML sea sencilla
Logto puede actuar tanto como IdP como SP para brindar SSO SAML a tus aplicaciones.
Usando Logto como un IdP SAML
Logto permite que otras aplicaciones confíen en él para la autenticación de identidad federada y soporta autenticación multifactor (MFA) para una mayor seguridad.
- Crea una aplicación en Logto Ve a Logto Console > Applications y crea una nueva aplicación SAML.
- Configura los parámetros SAML Configura la aplicación con el Assertion Consumer Service URL y el SP Entity ID del Proveedor de Servicio (SP).
- Proporciona la URL de metadatos Logto proporciona una URL de metadatos de IdP que los SP pueden usar para recuperar automáticamente detalles esenciales, como URLs de SSO y certificados.
- Configuración avanzada (opcional)
- Puedes crear múltiples nuevos certificados con huellas digitales y establecer fechas de expiración, pero solo un certificado puede estar activo a la vez.
- Modifica el formato Name ID para adaptarlo a tus necesidades de negocio.
- Habilita el cifrado de aserciones SAML copiando y pegando el certificado x509 desde tu proveedor de servicios para cifrar las aserciones.
- Mapea atributos (opcional) Personaliza fácilmente cómo se comparten los atributos de usuario con los Proveedores de Servicio (SP).
Para una guía detallada, visita la documentación oficial aquí: SAML App
Usando Logto como un SP SAML
Logto también se integra con cualquier IdP empresarial a través de los protocolos SAML u OIDC. Ya sea que estés habilitando el SSO iniciado por el SP para tus páginas de inicio de sesión unificado o configurando SSO iniciado por el IdP, el proceso es directo.
- Crea un conector empresarial Ve a Logto Console > Enterprise SSO y crea un nuevo Conector Empresarial. Selecciona SAML como el estándar del protocolo.
- Configura los parámetros SAML Proporciona la URL de metadatos o el archivo XML de metadatos de tu IdP. Si los metadatos no están disponibles, cambia a la configuración manual introduciendo el IdP Entity ID, SSO URL y subiendo el certificado de firma.
- Comparte la ACS URL y SP Entity ID Proporciona la ACS URL y el SP Entity ID de Logto a tu IdP para completar la integración.
- Mapea atributos (opcional) Configura el mapeo de datos de usuario, como correo electrónico o nombres, para garantizar que la información se transfiera correctamente entre el IdP y Logto.
- Agrega dominios de correo electrónico empresariales En la pestaña “SSO Experience” del conector empresarial, agrega uno o más dominios de correo electrónico. Así solo los usuarios con los dominios especificados podrán autenticarse mediante SSO.
- Habilita SSO iniciado por el IdP (opcional) Habilita el SSO iniciado por el IdP solo si tus clientes empresariales lo requieren. Esta función permite a los usuarios iniciar sesión en tus aplicaciones directamente desde el panel del IdP.
Para una guía detallada, visita la documentación oficial aquí: Documentación de Enterprise SSO.
Reflexión final
SAML ofrece un método estandarizado y seguro para SSO, haciendo que la autenticación sea más fluida. Logto simplifica el proceso ya sea que lo configures como IdP o SP. Con su interfaz fácil de usar y soporte tanto para la versión cloud como para la open-source, Logto elimina la complejidad de la integración SAML. Solo configurando unos pocos parámetros, puedes conectar tus servicios a cualquier IdP o SP SAML y centrarte en ofrecer experiencias increíbles a tus usuarios.