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:
- Afirmaciones y protocolos para el lenguaje de marcado de afirmaciones de seguridad de OASIS (SAML) V2.0
- SAML versión 2.0 Errata 05
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 proveedor de servicios (SP) o proveedor de identidad (IdP) mediante el proveedor de seguridad adecuado. Este documento trata sobre el proveedor de seguridad SAML IdP. SAML proveedor autentica a los usuarios en nombre de un proveedor de servicios (SP) externo. Normalmente, este externo es otra instancia de App Builder.
Para el rol de SP, consulte SAML proveedor de seguridad.
Flujos
La especificación de inicio de sesión único (SSO) SAML define varios flujos. El proveedor de seguridad IdP SAML 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 (PS), un usuario accede a un servicio externo e intenta acceder a un recurso restringido. El servicio externo redirige al usuario a App Builder mediante el enlace de redirección SAML (HTTP). GET
). Si el usuario aún no se ha autenticado, App Builder lo redirige al formulario de inicio de sesión.
Una vez que el usuario se ha autenticado, App Builder redirecciona al usuario al servicio de externo mediante el enlace SAML Post (HTTP POST
). El servicio de externo 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 inicializado del SP, el servicio externo suele registrar la URL a la que el usuario intentó acceder antes de realizar la redirección. Una vez finalizado el proceso de inicio de sesión único (SSO) SAML, el SP redirige al usuario a esa URL. Esto habilita los enlaces profundos.
Iniciado por el proveedor de identidad (IdP)
En el flujo iniciado por el proveedor de identidad (IdP), el usuario sigue un enlace al Servicio de inicio de sesión único. Si aún no se ha autenticado, App Builder lo redirige al formulario de inicio de sesión.
Una vez que el usuario se ha autenticado, App Builder redirecciona al usuario al servicio de externo mediante el enlace SAML Post (HTTP POST
). Al igual que con el flujo iniciado por SP, el servicio de externo 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 del IdP no lo inicia el proveedor de externo, el usuario suele ser redirigido a una página predeterminada una vez finalizado el proceso de inicio de sesión único (SSO) SAML. Sin embargo, algunos proveedores de servicios permiten que el IdP redirija al usuario a una ubicación arbitraria mediante una URL en el parámetro RelayState.
Configuración
Fichas
- Emisor: emisor de la afirmación SAML.
- Audiencia: Restricción de audiencia de la aserción SAML. El valor debe ser una URI sintácticamente válida.
- Destinatario: Destinatario de la aserción SAML. El valor debe ser una URI sintácticamente válida. El valor predeterminado es el Servicio de Consumidor de Aserciones.
- ID de entidad: Identificador de entidad SAML. El valor debe ser una URI sintácticamente válida. El valor predeterminado es el Emisor.
- Asunto: SAML NameId. El valor predeterminado es el nombre de usuario actual.
Extremos
Tipo | Descripción |
---|---|
Servicio de consumidor de aserciones | extremo del proveedor de servicios (SP) de terceros que recibe mensajes de respuesta SAML (SAMLResponse). |
Servicio de inicio de sesión único | Extremo que recibe mensajes de solicitud de autenticación (AuthNRequest). El valor predeterminado se basa en la URL actual. Consulte el 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) SAML. |
Como se indicó anteriormente, App Builder requiere un certificado de firma PKCS#12 codificado en base64 con clave privada. El proceso para generar un certificado queda fuera del alcance de este documento. Sin embargo, a modo de ejemplo, los siguientes comandos muestran cómo generar un certificado compatible mediante la utilidad de línea de comandos de OpenSSL.
El siguiente comando genera una clave privada (key.pem
) y 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 solicitará una contraseña. App Builder la necesitará 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
Copiar y pegar el contenido de cert.txt
en App Builder.
Propiedades
El proveedor de seguridad IdP SAML define los siguientes parámetros adicionales:
Parámetro | Predeterminado | Descripción |
---|---|---|
Permitir paso de estado de retransmisión | False | Indica si los valores arbitrarios RelayState recibidos del cliente deben pasarse 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 el SP, este determina el valor del parámetro RelayState. De forma predeterminada, el IdP SAML no pasará el valor RelayState al SP. Establézcalo en True para permitir que los valores RelayState se pasen al SP. |
CacheDuration | Duración del caché de metadatos de SAML IdP en segundos. | |
RelayState | Valor pasado al proveedor de servicios SAML (SP) en el parámetro RelayState. Tenga en cuenta que esto solo aplica a inicios de sesión iniciados por un proveedor de identidad (IdP): en un inicio de sesión iniciado por el SP, este determina el valor del parámetro RelayState. Los valores aceptables varían según la despliegue. Algunas implementaciones de SP SAML aceptan una URI de redirección. | |
Válido hasta | Fecha de expiración de los metadatos del proveedor de identidades SAML. Se espera una fecha con formato ISO 8601, como:
|
Reclamos
El proveedor de seguridad SAML IdP asigna las propiedades del usuario a las notificaciones. Las notificaciones se integran en la aserción SAML como atributos. El nombre del atributo corresponde al identificador de la notificació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 afirmació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 Grupo permite transferir la pertenencia a un grupo de seguridad. De forma predeterminada, las aserciones SAML no incluyen grupos. Debe registrar explícitamente los grupos que deben incluirse.
Para incluir la pertenencia a un grupo, cree un grupo de proveedores de seguridad y asígnelo a un grupo de App Builder. Si el usuario es miembro del grupo de App Builder, el grupo de proveedores de seguridad se añadirá a la aserción. Se utiliza el identificador del grupo de proveedores de seguridad. Si el identificador es nulo, se utiliza el nombre.
Integración
El proveedor de seguridad IdP SAML expone los siguientes extremos:
- Servicio de inicio de sesión único
- Extremo 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á el siguiente formato:
https://example.com/App Builder/signin-SAMLIDP
La URL se compone de las siguientes partes:
Componente | Descripción |
---|---|
https://example.com/App Builder/ | 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 distingue entre mayúsculas y minúsculas. |
Extremo de metadatos
El Extremo de metadatos publica un documento de metadatos (Metadatos). La URL del Extremo de metadatos tendrá el siguiente formato:
https://example.com/App Builder/metadata-SAMLIDP
La URL se compone de las siguientes partes:
Componente | Descripción |
---|---|
https://example.com/App Builder/ | 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 distingue entre mayúsculas y minúsculas. |
Problemas y limitaciones conocidos
El proveedor de seguridad IdP SAML de App Builder tiene las siguientes limitaciones:
- Sólo se podrá suministrar una única restricción de audiencia.
- Es posible que las respuestas SAML no estén cifradas.
- Es posible que las respuestas SAML no estén firmadas.
- Las afirmaciones 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.