Saltar al contenido

Proveedor de identidad 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 IdP. El proveedor de seguridad SAML IdP autentica usuarios en nombre de un SP de terceros. Típicamente, el tercero es otra instancia de App Builder.

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

Flujos

La especificación de inicio de sesión único (SSO) SAML define varios flujos. El proveedor de seguridad SAML IdP admite los siguientes flujos de SSO 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 aún no se ha autenticado, 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 vuelta al servicio de terceros utilizando el enlace de publicación SAML (HTTP POST). El servicio de terceros valida la respuesta SAML, asigna 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 SP, el servicio de terceros típicamente registra la URL a la que el usuario intentó acceder antes de realizar la redirección. Una vez que se completa el proceso de SSO SAML, el SP redirige al usuario a esa URL. Esto permite enlaces profundos.

Iniciado por el proveedor de identidad (IdP)

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 aún no se ha autenticado, 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 vuelta al servicio de terceros utilizando el enlace de publicación SAML (HTTP POST). Al igual que en el flujo iniciado por SP, el servicio de terceros valida la respuesta SAML, asigna 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 típicamente se redirige a una página predeterminada una vez que se completa el proceso de SSO SAML. Sin embargo, algunos SP permitirán que el IdP redirija al usuario a una ubicación arbitraria pasando una URL en el parámetro RelayState.

Configuración

Tokens

  • Issuer: Emisor de aserciones SAML.
  • Audience: Restricción de audiencia de aserciones SAML. El valor debe ser un URI sintácticamente válido.
  • Recipient: Destinatario de aserciones SAML. El valor debe ser un URI sintácticamente válido. Por defecto es el Servicio de consumidor de aserciones.
  • Entity ID: Identificador de entidad SAML. El valor debe ser un URI sintácticamente válido. Por defecto es el Issuer.
  • Subject: NameId SAML. Por defecto es el nombre de usuario actual.

Endpoints

Tipo Descripción
Servicio de consumidor de aserciones Endpoint del proveedor de servicios (SP) de terceros que recibe mensajes de respuesta SAML (SAMLResponse).
Servicio de inicio de sesión único Endpoint que recibe mensajes de solicitud de autenticación (AuthNRequest). Por defecto se basa en la URL actual. Consulta 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 con contraseña, codificado en base64 Certificado X.509 con clave privada. Se utiliza para firmar la respuesta de inicio de sesión único (SSO) de SAML.

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, con fines ilustrativos, 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 te pedirá que proporciones 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

Copia y pega el contenido de cert.txt en App Builder.

Propiedades

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

Parámetro Predeterminado Descripción
AllowRelayStatePassthrough False Indica si los valores arbitrarios de RelayState recibidos del cliente deben pasarse al proveedor de servicios SAML (SP).

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

De forma predeterminada, el IdP de SAML no pasará el valor de RelayState al SP. Establécelo en True para permitir que los valores de RelayState se pasen al SP.
CacheDuration Duración del caché de metadatos del IdP de SAML en segundos.
RelayState Valor pasado al proveedor de servicios SAML (SP) en el parámetro RelayState.

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

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

Reclamaciones

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

Por ejemplo, si la propiedad Nombre se ha asignado al identificador de reclamación http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name, la aserción de 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 Grupo se puede utilizar para pasar la pertenencia a grupos de seguridad. De forma predeterminada, las aserciones de SAML no incluyen grupos. Debes registrar explícitamente los grupos que deben incluirse.

Para incluir la pertenencia a grupos, crea un grupo de proveedor de seguridad y asígnalo a un grupo de App Builder. Si el usuario es miembro del grupo de App Builder, el grupo del proveedor de seguridad se agregará a la aserción. Se utiliza el identificador del grupo del proveedor de seguridad. Si el identificador es nulo, se utiliza el nombre.

Integración

El proveedor de seguridad IdP de SAML 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 tendrá 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 de App Builder.
SAMLIDP Esquema del proveedor de seguridad SAML IdP. El valor distingue mayúsculas de minúsculas. Cualquier carácter especial debe estar codificado en URL.

Punto de conexión de metadatos

El Punto de Conexión de Metadatos publica un documento de metadatos (Metadata). La URL del Punto de Conexión de Metadatos tendrá la siguiente forma:

https://example.com/Vinyl/metadata-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 de App Builder.
SAMLIDP Esquema del proveedor de seguridad SAML IdP. El valor distingue mayúsculas de minúsculas. Cualquier carácter especial debe estar codificado en URL.

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 cifradas.
  • Las respuestas SAML no pueden estar firmadas.
  • Las aserciones SAML siempre están firmadas.
  • El protocolo de resolución de artefactos no es compatible.
  • El protocolo de cierre de sesión no es compatible.