Saltar al contenido

Proveedor de identidad SAML en Jitterbit App Builder

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

En un escenario de SSO, hay 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 puede configurarse como el SP o el IdP utilizando el proveedor de seguridad apropiado. Este documento cubre el proveedor de seguridad SAML IdP. El proveedor de seguridad SAML IdP autentica a los usuarios en nombre de un SP de terceros. Típicamente, el tercero es otra instancia de App Builder.

Para el rol de SP, consulte el proveedor de seguridad SAML.

Flujos

La especificación SAML de inicio de sesión único (SSO) define varios flujos. El proveedor de seguridad SAML IdP admite los siguientes flujos 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 navega a un servicio de terceros e intenta acceder a un recurso restringido. El servicio de terceros redirige al usuario a App Builder a través del enlace de redirección SAML (HTTP GET). Si el usuario no se ha autenticado previamente, App Builder redirige al usuario al formulario de inicio de sesión.

Una vez que el usuario se ha autenticado, App Builder redirige al usuario de regreso al servicio de terceros utilizando el enlace de publicación SAML (HTTP POST). El servicio de terceros valida la Respuesta SAML, mapea el identificador de nombre a una cuenta de usuario local y otorga los derechos asociados con esa cuenta de usuario.

En el flujo Iniciado por el SP, el servicio de terceros típicamente registra la URL que el usuario intentó acceder antes de realizar la redirección. Una vez que el proceso SSO de SAML se completa, el SP redirige al usuario a esa URL. Esto permite enlaces profundos.

Proveedor de identidad (IdP) iniciado

En el flujo iniciado por el Proveedor de Identidad (IdP), un usuario sigue un enlace al Servicio de Inicio de Sesión Único. Si el usuario no se ha autenticado previamente, App Builder redirige al usuario al formulario de inicio de sesión.

Una vez que el usuario se ha autenticado, App Builder redirige al usuario de regreso al servicio de terceros utilizando el enlace SAML Post (HTTP POST). Al igual que en el flujo iniciado por el SP, el servicio de terceros valida la Respuesta SAML, mapea el identificador de nombre a una cuenta de usuario local y otorga los derechos asociados con esa cuenta de usuario.

Dado que el flujo de IdP no es iniciado por el SP de terceros, el usuario generalmente es redirigido a una página predeterminada una vez que el proceso SSO SAML se completa. Sin embargo, algunos SPs permitirán que el IdP redirija al usuario a una ubicación arbitraria pasando una URL en el parámetro RelayState.

Configuración

Tokens

  • Emisor: Emisor de la afirmación SAML.
  • Audiencia: Restricción de audiencia de la afirmación SAML. El valor debe ser una URI sintácticamente válida.
  • Destinatario: Destinatario de la afirmación SAML. El valor debe ser una URI sintácticamente válida. Por defecto, es el Servicio de Consumidor de Afirmaciones.
  • ID de entidad: Identificador de entidad SAML. El valor debe ser una URI sintácticamente válida. Por defecto, es el Emisor.
  • Sujeto: NameId SAML. Por defecto, es el nombre del usuario actual.

Puntos finales

Tipo Descripción
Servicio de Consumidor de Afirmaciones Punto final del Proveedor de Servicios (SP) de terceros que recibe mensajes de respuesta SAML (SAMLResponse).
Servicio de Inicio de Sesión Único Punto final que recibe mensajes de solicitud de autenticación (AuthNRequest). Por defecto, se basa en la URL actual. Ver Servicio de Inicio de Sesión Único a continuación.

Certificados

Propósito Tipo Formato Descripción
Firma Certificado X.509 con clave privada PKCS#12 (PFX), protegido por contraseña, codificado en base64 Certificado X.509 con clave privada. Se utiliza para firmar la respuesta SAML de inicio de sesión único (SSO).

Como se mencionó anteriormente, App Builder requiere un certificado de firma PKCS#12 codificado en base64 con clave privada. El proceso para generar un certificado está fuera del alcance de este documento. Sin embargo, a modo de ilustración, los siguientes comandos demuestran cómo generar un certificado compatible utilizando la utilidad de línea de comandos OpenSSL.

El siguiente comando genera una clave privada (key.pem) y un certificado autofirmado (cert.pem):

$ openssl req -x509 -newkey rsa:2048 -keyout key.pem -out cert.pem -nodes -days 1095 -subj "/CN=localhost/O=App Builder"

El siguiente comando genera un archivo PKCS#12 (cert.pfx) que contiene la clave privada y el certificado:

$ openssl pkcs12 -export -in cert.pem -inkey key.pem -out cert.pfx

Se le pedirá que proporcione una contraseña. App Builder necesitará conocer esta contraseña para descifrar la clave privada.

Finalmente, el siguiente comando codifica en base64 el archivo PKCS#12:

$ openssl base64 -in cert.pfx -out cert.txt -A

Copie y pegue el contenido de cert.txt en App Builder.

Propiedades

El proveedor de seguridad SAML IdP define los siguientes parámetros adicionales:

Parámetro Predeterminado Descripción
AllowRelayStatePassthrough False Indica si los valores arbitrarios de RelayState recibidos del cliente deben ser pasados al Proveedor de Servicios SAML (SP).

Tenga en cuenta que esto solo se aplica a un inicio de sesión iniciado por un Proveedor de Identidad (IdP): en un inicio de sesión iniciado por un SP, el SP determina el valor del parámetro RelayState.

Por defecto, el IdP SAML no pasará el valor de RelayState al SP. Establezca en True para permitir que los valores de RelayState sean pasados al SP.
CacheDuration Duración de la caché de metadatos del IdP SAML en segundos.
RelayState Valor pasado al Proveedor de Servicios SAML (SP) en el parámetro RelayState.

Tenga en cuenta que esto solo se aplica a un inicio de sesión iniciado por un Proveedor de Identidad (IdP): en un inicio de sesión iniciado por un SP, el SP determina el valor del parámetro RelayState.

Los valores aceptables varían según la implementación. Algunas implementaciones de SP SAML aceptan una URI de redirección.
ValidUntil Fecha de expiración de los metadatos del IdP SAML. Se espera una fecha en formato ISO 8601, como:
  • 2025-06-09
  • 2025-06-09T16:13:52+00:00
  • 2025-06-09T16:13:52Z

Reclamaciones

El proveedor de seguridad SAML IdP mapea las propiedades del usuario a reclamaciones. Las reclamaciones se incrustan en la aserción SAML como atributos. El nombre del atributo corresponde al identificador de la reclamación.

Por ejemplo, si la propiedad Name ha sido mapeada al identificador de la reclamación http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name, la aserción SAML contendría el siguiente atributo:

<Attribute AttributeName="http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name">
  <AttributeValue>Arthur.Dent</AttributeValue>
</Attribute>

La propiedad Group se puede usar para pasar la membresía del grupo de seguridad. Por defecto, las aserciones SAML no incluyen grupos. Debe registrar explícitamente los grupos que deben incluirse.

Para incluir la membresía del grupo, cree un grupo de proveedor de seguridad y mapeelo a un grupo de App Builder. Si el usuario es miembro del grupo de App Builder, el grupo de proveedor de seguridad se añadirá a la aserción. Se utiliza el identificador del grupo de proveedor de seguridad. Si el identificador es nulo, se utiliza el nombre.

Integración

El proveedor de seguridad SAML IdP expone los siguientes puntos finales:

  • Servicio de inicio de sesión único
  • Punto final de metadatos

Servicio de inicio de sesión único

El Servicio de Inicio de Sesión Único recibe mensajes de solicitud SAML (AuthNRequest). La URL del Servicio de Inicio de Sesión Único tomará la siguiente forma:

https://example.com/Vinyl/signin-SAMLIDP

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.
SAMLIDP Nombre del proveedor de seguridad SAML IdP codificado en URL. El valor es sensible a mayúsculas y minúsculas.

Punto final de metadatos

El Punto Final de Metadatos publica un documento de metadatos (Metadata). La URL del Punto Final de Metadatos tomará la siguiente forma:

Componente Descripción
https://example.com/Vinyl/ URL absoluta del directorio raíz de la aplicación App Builder.
SAMLIDP Nombre del proveedor de seguridad SAML IdP codificado en URL. El valor es sensible a mayúsculas y minúsculas.

Problemas conocidos y limitaciones

El proveedor de seguridad SAML IdP de App Builder tiene las siguientes limitaciones:

  • Solo se puede proporcionar una única restricción de audiencia.
  • Las respuestas SAML no pueden estar encriptadas.
  • Las respuestas SAML no pueden estar firmadas.
  • Las afirmaciones SAML siempre están firmadas.
  • El protocolo de resolución de Artifact no es compatible.
  • El protocolo de cierre de sesión no es compatible.