Saltar al contenido

Proveedor de Seguridad: Proveedor de Identidad SAML

La autenticación de inicio de sesión único (SSO) SAML 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 se puede configurar como SP o IdP utilizando el proveedor de seguridad adecuado. Este documento cubre el proveedor de seguridad * SAML IdP *. El proveedor de seguridad SAML IdP autentica a los usuarios en nombre de un SP externo. Normalmente, el 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) de SAML define varios flujos. El proveedor de seguridad de IdP de SAML admite los siguientes flujos de SSO de SAML:

  • Proveedor de servicios (SP) iniciado
  • Proveedor de identidad (IdP) iniciado

Proveedor de Servicios (sp) Iniciado

En el flujo iniciado por el proveedor de servicios (SP), un usuario navega a un servicio de externo e intenta acceder a un recurso restringido. El servicio de externo redirecciona al usuario a App Builder a través del enlace de redireccionamiento SAML (HTTP GET). Si el usuario aún no se ha autenticado, App Builder redirecciona al usuario al formulario de inicio de sesión.

Una vez que el usuario se ha autenticado, App Builder redirecciona al usuario al servicio de externo utilizando 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 por SP, el servicio de externo normalmente registra la URL a la que el usuario intentó acceder antes de realizar la redirección. Una vez que se completa el proceso de inicio de sesión único (SSO) de SAML, el SP redirige al usuario a esa URL. Esto permite los vínculos 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 redirecciona al usuario al formulario de inicio de sesión.

Una vez que el usuario se ha autenticado, App Builder redirecciona al usuario al servicio de externo utilizando 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 proveedor de identidades no lo inicia el proveedor de servicios externo, normalmente se redirige al usuario a una página predeterminada una vez que se completa el proceso de inicio de sesión único (SSO) de SAML. Sin embargo, algunos proveedores de servicios permiten que el proveedor de identidades redirija al usuario a una ubicación arbitraria al pasar una URL en el parámetro RelayState.

Configuración

Fichas

  • Emisor: emisor de la aserción SAML.
  • Audiencia: restricción de audiencia de la aserción SAML. El valor debe ser una URL sintácticamente válida.
  • Destinatario: destinatario de la aserción SAML. El valor debe ser una URL sintácticamente válida. El valor predeterminado es el Servicio de consumidor de aserciones.
  • Identificador de entidad: identificador de entidad SAML. El valor debe ser un URI sintácticamente válido. 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). Los valores predeterminados se basan 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) de SAML.

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á que proporcione una contraseña. App Builder necesitará saber esta contraseña para descifrar la clave privada.

Por último, 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 SAML IdP define los siguientes parámetros adicionales:

Parámetro Predeterminado Descripción
Permitir paso de estado de retransmisión False Indica si los valores RelayState arbitrarios 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 un SP, el SP determina el valor del parámetro RelayState.

De manera predeterminada, el IdP SAML no pasará el valor RelayState al SP. Establezca 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 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, el SP 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 redireccionamiento.
ValidUntil Fecha de vencimiento de los metadatos del proveedor de identidades SAML. Se espera una fecha con formato ISO 8601 como:
  • 2025-06-09
  • 2025-06-09T16:13:52+00:00
  • 2025-06-09T16:13:52Z

Reclamos

El proveedor de seguridad SAML IdP asigna propiedades de usuario a las reclamaciones. Las reclamaciones se incorporan a la afirmación 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 reclamo 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 Group se puede utilizar para pasar la pertenencia a un grupo de seguridad. De forma predeterminada, las afirmaciones SAML no incluyen grupos. Debe registrar explícitamente los grupos que se deben incluir.

Para incluir la membresía del grupo, cree un grupo de proveedores de seguridad y asígnelo a an App Builder grupo. Si el usuario es miembro del App Builder grupo, el grupo de proveedores de seguridad se agregará a la afirmació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 SAML IdP 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://ejemplo.com/App Builder/ URL absoluta de la App Builder directorio raíz de la aplicación.
SAMLIDP Nombre del proveedor de seguridad IdP SAML 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://ejemplo.com/App Builder/ URL absoluta de la App Builder directorio raíz de la aplicación.
SAMLIDP Nombre del proveedor de seguridad IdP SAML codificado en URL. El valor distingue entre mayúsculas y minúsculas.

Problemas y Limitaciones Conocidos

El App Builder el proveedor de seguridad IdP SAML 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.