Proveedor de seguridad SAML en Jitterbit App Builder
La autenticación de Inicio de Sesión Único (SSO) de SAML se define en los siguientes documentos:
- Assertions and Protocols for the OASIS Security Assertion Markup Language (SAML) V2.0
- SAML Version 2.0 Errata 05
En un escenario de SSO, existen tres roles:
- Principal - El usuario que accede a un servicio restringido.
- Proveedor de Servicios (SP) - Proporciona acceso a servicios restringidos.
- Proveedor de Identidad (IdP) - Autentica a los usuarios.
Se puede configurar App Builder como SP o IdP utilizando el proveedor de seguridad apropiado. Este documento cubre el proveedor de seguridad SAML, que se utiliza para el rol SP. En este rol, App Builder delega la autenticación a un IdP de terceros. Los IdP compatibles incluyen:
Para el rol IdP, consulta el proveedor de identidad SAML.
Flujos
La especificación de Inicio de Sesión Único (SSO) de SAML define varios flujos. El proveedor de seguridad SAML admite los siguientes flujos de SSO de SAML:
- Iniciado por el Proveedor de Servicios (SP)
- Iniciado por el Proveedor de Identidad (IdP)
Iniciado por el Proveedor de Servicios (SP)
En el flujo iniciado por el Proveedor de Servicios (SP), un usuario accede a App Builder e intenta acceder a una página restringida. App Builder redirige al usuario al Proveedor de Identidad (IdP) a través del enlace de redirección SAML (HTTP GET). Una vez autenticado, el IdP redirige al usuario de regreso a App Builder utilizando el enlace POST de SAML (HTTP POST). App Builder valida la respuesta de SAML, asigna el identificador de nombre a una cuenta de usuario local de App Builder y otorga los derechos asociados con la cuenta de usuario.
Ten en cuenta que, antes de redirigir al usuario al IdP, App Builder registra la URL de la página a la que intentó acceder. Una vez que el usuario se autentica, App Builder lo redirige a la página solicitada originalmente. Esto permite enlace profundo.
Iniciado por el Proveedor de Identidad (IdP)
En el flujo del Proveedor de Identidad (IdP), un usuario accede directamente al IdP. Una vez autenticado, el usuario se redirige a App Builder a través del enlace POST de SAML (HTTP POST). Como en el flujo iniciado por SP, App Builder valida la respuesta de SAML, asigna el identificador de nombre a una cuenta de usuario local de App Builder y otorga los derechos asociados con la cuenta de usuario.
Normalmente, App Builder redirige al usuario a su página de inicio después de un inicio de sesión exitoso. Sin embargo, el IdP puede realizar un enlace profundo pasando el URI en el parámetro RelayState de la respuesta de SAML. Consulta el parámetro AllowRelayStateRedirects a continuación.
Configuración
Tokens
- Issuer: El emisor de la aserción de SAML. Por defecto es la audiencia.
- Audience: Restricción de audiencia de la aserción de SAML. El valor debe ser un URI sintácticamente válido.
- Recipient: El destinatario de la aserción de SAML. Este valor debe ser un URI sintácticamente válido. Por defecto es el URI del Servicio de Consumidor de Aserción (p. ej. https://example.com/Vinyl/signin-SAML).
Precaución
Por razones heredadas, Audience por defecto es la URL raíz de la aplicación (p. ej. https://example.com/Vinyl/). Se recomienda encarecidamente que establezcas Audience explícitamente en lugar de depender del valor predeterminado.
Endpoints
| Tipo | Descripción |
|---|---|
| Metadata Endpoint | Endpoint de metadatos del servicio de Inicio de Sesión Único (SSO) de SAML. Este parámetro es obligatorio si los parámetros Request Redirect Endpoint o SigningCertificate no están definidos. |
| RelayState URI | URI de redirección de RelayState permitida para una solicitud iniciada por el Proveedor de Identidad (IdP) de SAML. Consulta el parámetro AllowRelayStateRedirects para obtener información adicional. |
| Request Redirect Endpoint | Endpoint de solicitud de autenticación de Inicio de Sesión Único (SSO) de SAML para el enlace de redirección. Este parámetro es obligatorio si el Metadata Endpoint no está definido. |
Certificados
| Propósito | Tipo | Formato | Descripción |
|---|---|---|---|
| Validación de Firma | Certificado X.509 |
|
Certificado X.509 utilizado para validar firmas de respuestas de inicio de sesión único SAML (SSO). Se requiere el certificado de validación de firma si el Extremo de Metadatos no está definido. |
Propiedades
El proveedor de seguridad SAML define los siguientes parámetros adicionales:
| Parámetro | Predeterminado | Descripción |
|---|---|---|
| AllowRelayStateRedirects | False |
Indica si un inicio de sesión iniciado por un Proveedor de Identidad SAML (IdP) puede incluir un URI de redirección en el parámetro RelayState. El URI de redirección es la ubicación a la que se redirigirá al usuario después de iniciar sesión. De forma predeterminada, el parámetro RelayState no puede contener un URI de redirección. Establécelo en True para permitir URIs de redirección en el parámetro RelayState. Para protegerse contra ataques de retransmisión abierta, el URI debe coincidir con el extremo URI de RelayState. |
| IgnoreTlsErrors | False |
Indica si App Builder debe ignorar errores de certificados HTTPS al realizar solicitudes por canal trasero para recuperar metadatos de servicio. Esta configuración es solo para fines de configuración y prueba. No habilites esta configuración en un sistema en ejecución. |
| SignatureRequirement | AssertionOrResponse |
Indica si la respuesta SAML, la aserción o ambas deben estar firmadas. Las opciones incluyen: - AssertionOrResponse - La aserción o la respuesta deben estar firmadas. - Assertion - La aserción debe estar firmada. - Response - Solo la respuesta debe estar firmada. La aserción hereda la firma de la respuesta. - AssertionAndResponse - Tanto la aserción como la respuesta deben estar firmadas. |
| LogPII | False |
Indica que se debe registrar información de identificación personal (PII). Esta configuración tiene efecto al iniciar. |
Reclamaciones
Las aserciones SAML contienen atributos. Los atributos son pares clave/valor multivalor. App Builder trata los atributos de aserción SAML como reclamaciones. El nombre del atributo se asigna a un identificador de reclamación.
Por ejemplo, dada una aserción SAML con el siguiente atributo:
<Attribute AttributeName="http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name">
<AttributeValue>Arthur.Dent</AttributeValue>
</Attribute>
Al asignar el identificador http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name a la propiedad Name, se establecerá el nombre de usuario en "Arthur.Dent" cuando se aprovisione la cuenta de usuario.
En la siguiente tabla se describen las asignaciones de reclamaciones predeterminadas:
| Identificador | Propósito | Descripción |
|---|---|---|
| http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier | Identificador de Nombre | Identificador único e inmutable utilizado para asignar la identidad de terceros a un usuario de App Builder. |
| http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name | Nombre | Nombre de usuario. |
| http://schemas.xmlsoap.org/claims/Group | Grupo | Pertenencia a grupos de seguridad. |
| http://schemas.zudy.com/identity/claims/fullname | Nombre Completo | Nombre completo. |
| http://schemas.zudy.com/identity/claims/displayname | Nombre para Mostrar | Nombre descriptivo. |
| http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress | Dirección de Correo Electrónico | Dirección de correo electrónico. |
| http://schemas.zudy.com/identity/claims/phonenumber | Número de Teléfono | Número de teléfono. |
| http://schemas.xmlsoap.org/ws/2005/05/identity/claims/thumbprint | Huella digital del certificado X.509. | |
| http://schemas.xmlsoap.org/ws/2005/05/identity/claims/x500distinguishedname | Nombre distinguido del certificado X.509. | |
| http://schemas.xmlsoap.org/ws/2005/05/identity/claims/dns | Nombre DNS del certificado X.509. |
Integración
Servicio consumidor de aserciones
El proveedor de seguridad SAML expone un único endpoint. El endpoint recibe Respuestas SAML. Se conoce como Servicio Consumidor de Aserciones. Una URL del Servicio Consumidor de Aserciones de App Builder podría verse así:
https://example.com/Vinyl/signin-SAML
La URL se compone de las siguientes partes:
| Componente | Descripción |
|---|---|
| https://example.com/Vinyl/ | URL absoluta del directorio raíz de la aplicación App Builder. |
| SAML | Esquema del proveedor de seguridad SAML. El valor distingue mayúsculas de minúsculas. Cualquier carácter especial debe codificarse en URL. |
Aprovisionar usuarios
Una vez que se configura el proveedor de seguridad SAML, se debe garantizar que los usuarios tengan identidades correspondientes en App Builder para iniciar sesión correctamente.
Aprovisionamiento manual
Un administrador puede asociar manualmente usuarios con el proveedor de seguridad SAML:
-
Accede a IDE > Gestión de Usuarios.
-
En el panel Identidades, haz clic en + Identidad para crear una nueva identidad.
-
Al configurar la nueva identidad, asegúrate de seleccionar SAML como Proveedor de seguridad e ingresa el Identificador que coincida con el nombre de usuario del IdP del usuario (típicamente el correo electrónico o NameID).
Aprovisionamiento automático
Para manejar la incorporación de usuarios en volumen sin entrada manual, puedes habilitar la función Hacer coincidir usuario existente. Esto es útil cuando ya tienes una lista de usuarios en App Builder y deseas vincularlos a sus identidades SAML automáticamente en su primer inicio de sesión.
-
Accede a IDE > Proveedores de Seguridad.
-
Si tu proveedor de seguridad SAML ya existe, encuéntralo en el panel Proveedores de Seguridad y haz doble clic en el icono de expansión al final de su fila. Si aún no existe, haz clic en + Proveedor de Seguridad.
-
En la pantalla de configuración que se abre, localiza el grupo de campos Aprovisionamiento y habilita la casilla Aprovisionamiento de Usuarios. Al hacerlo, aparecerá la casilla Hacer coincidir usuario existente. Habilítala.
Una vez que se habilita esta función, cuando un usuario intenta iniciar sesión a través de SAML, App Builder verifica si ya existe una cuenta de usuario local con un nombre de usuario que coincida con el identificador de nombre SAML. Si se encuentra una coincidencia, el sistema crea automáticamente el vínculo de identidad para ese usuario durante el proceso de inicio de sesión, otorgándole acceso de inmediato.
Solución de problemas
Error "The AudienceRestrictionCondition was not valid because the specified Audience is not present in AudienceUris."
Este error indica que la URI de audiencia no coincide. Asegúrate de que la propiedad Audience se haya establecido explícitamente. Si no se establece, usará como predeterminado la URL actual, que puede variar según el usuario. El valor distingue mayúsculas de minúsculas.
Problemas conocidos y limitaciones
El proveedor de seguridad de Inicio de Sesión Único (SSO) SAML de App Builder tiene las siguientes limitaciones:
- Solo se puede validar una única restricción de audiencia.
- No se admite el protocolo de resolución de artefactos.
- No se admite el protocolo de cierre de sesión.