Saltar al contenido

Proveedor de seguridad SAML en Jitterbit App Builder

La autenticación de inicio de sesión único (SSO) SAML se define en los siguientes documentos:

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.

App Builder se puede configurar como SP o IdP utilizando el proveedor de seguridad apropiado. Este documento cubre el proveedor de seguridad SAML, que se utiliza para el rol de SP. En este rol, App Builder delega la autenticación a un IdP de terceros. Los IdP compatibles incluyen:

Para el rol de IdP, consulta el proveedor de identidad SAML.

Flujos

La especificación de inicio de sesión único (SSO) SAML define varios flujos. El proveedor de seguridad SAML admite los siguientes flujos de SSO SAML:

  • Iniciado por el proveedor de servicios (SP)
  • Iniciado por el proveedor de identidad (IdP)

Proveedor de servicios (SP) iniciado

En el flujo iniciado por el proveedor de servicios (SP), un usuario navega 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 vuelta a App Builder utilizando el enlace de publicación SAML (HTTP POST). App Builder valida la respuesta 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 el usuario intentó acceder. Una vez que el usuario se ha autenticado, App Builder redirige al usuario a la página solicitada originalmente. Esto permite enlaces profundos.

Proveedor de identidad (IdP) iniciado

En el flujo del proveedor de identidad (IdP), un usuario navega directamente al IdP. Una vez autenticado, el usuario se redirige a App Builder a través del enlace de publicación SAML (HTTP POST). Al igual que en el flujo iniciado por SP, App Builder valida la respuesta 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.

Típicamente, 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 SAML. Consulta el parámetro AllowRelayStateRedirects a continuación.

Configuración

Tokens

  • Issuer: El emisor de la aserción SAML. Por defecto, es la audiencia.
  • Audience: Restricción de audiencia de la aserción SAML. El valor debe ser un URI sintácticamente válido.
  • Recipient: El destinatario de la aserción SAML. Este valor debe ser un URI sintácticamente válido. Por defecto, es el URI del servicio de consumidor de aserción (por ejemplo, https://example.com/Vinyl/signin-SAML).

Precaución

Por razones heredadas, Audience por defecto es la URL raíz de la aplicación (por ejemplo, https://example.com/Vinyl/). Se recomienda encarecidamente que establezca explícitamente Audience 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) 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 permitido para una solicitud iniciada por el proveedor de identidad (IdP) 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) SAML para el enlace de redirección. Este parámetro es obligatorio si Metadata Endpoint no está definido.

Certificados

Propósito Tipo Formato Descripción
Validación de Firma Certificado X.509
  • PEM (CERTIFICATE)
  • PKCS#12 (PFX), codificado en base64
Certificado X.509 utilizado para validar firmas de respuesta SAML de Inicio de Sesión Único (SSO).

El certificado de validación de firma es obligatorio 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 (IdP) SAML 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. Establece 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 certificado HTTPS al realizar solicitudes de canal posterior para recuperar los metadatos del servicio.

Esta configuración es solo para propósitos 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 entra en vigor 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 establece el nombre de usuario en "Arthur.Dent" cuando se aprovisiona la cuenta de usuario.

La siguiente tabla describe 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 grupo 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 de consumidor de aserciones

El proveedor de seguridad SAML expone un único endpoint. El endpoint recibe Respuestas SAML. Esto se conoce como el Servicio de Consumidor de Aserciones. Una URL del Servicio de 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 estar codificado en URL.

Provisionar 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:

  1. Navega a IDE > Gestión de Usuarios.

  2. En el panel Identidades, haz clic en + Identidad para crear una nueva identidad.

  3. Al configurar la nueva identidad, asegúrate de seleccionar SAML como el 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 masiva de usuarios sin entrada manual, puedes habilitar la función 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.

  1. Navega a IDE > Proveedores de Seguridad.

  2. Si tu proveedor de seguridad SAML ya existe, búscalo en el panel Autenticación de Usuarios y haz doble clic en el icono de expansión al final de su fila. Si aún no existe, haz clic en + Autenticación de Usuarios.

  3. En la pantalla de configuración que se abre, localiza el grupo de campos Aprovisionamiento y habilita la casilla de verificación Aprovisionamiento de Usuarios. Al hacerlo, aparece la casilla de verificación Coincidir Usuario Existente. Habilítala.

Una vez que esta función está habilitada, 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 inmediatamente.

Solución de problemas

Error "The AudienceRestrictionCondition was not valid because the specified Audience is not present in AudienceUris."

Este error indica que el URI de audiencia no coincide. Asegúrate de que la propiedad Audience se haya establecido explícitamente. Si no se establece, usará como valor 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.
  • El protocolo de resolución de artefactos no es compatible.
  • El protocolo de Cierre de Sesión no es compatible.