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 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.

Vinyl 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 de externo. Normalmente, el externo es otra instancia de Vinyl.

Para la rol SP, consulte SAML proveedor de seguridad.

Flujos

La especificación SAML Single Sign-On (SSO) define varios flujos. El proveedor de seguridad SAML IdP admite los siguientes flujos SAML SSO:

  • 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 redirige al usuario a Vinyl a través del enlace de redireccionamiento SAML (HTTP GET). Si el usuario aún no se ha autenticado, Vinyl lo redirige al formulario de inicio de sesión.

Una vez que el usuario se ha autenticado, Vinyl lo redirige nuevamente 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 SP Inicialado, 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 SSO de SAML, 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 aún no se ha autenticado, Vinyl lo redirige al formulario de inicio de sesión.

Una vez que el usuario se ha autenticado, Vinyl lo redirige nuevamente 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 de IdP no lo inicia el SP de externo, normalmente se redirige al usuario a una página predeterminada una vez que se completa el proceso de SSO de 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

Fichas

  • Emisor: emisor de la aserción SAML.
  • Audiencia: restricción de audiencia de aserción SAML. El valor debe ser un URI sintácticamente válido.
  • Destinatario: destinatario de la aserción SAML. El valor debe ser un URI sintácticamente válido. El valor predeterminado es el Servicio al consumidor de afirmaciones.
  • ID de entidad: identificador de entidad SAML. El valor debe ser un URI sintácticamente válido. El valor predeterminado es el Emisor.
  • Asunto: ID de nombre de SAML. El valor predeterminado es el nombre de usuario actual.

Extremos

Tipo Descripción
Servicio al consumidor de afirmación 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). Valores predeterminados basados 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.

Como se indicó anteriormente, Vinyl 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 certificado autofirmado (cert.pem):

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

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. Vinyl 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 vinilo.

Propiedades

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

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

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.

De forma predeterminada, el IdP SAML no pasará el valor RelayState al SP. Ajustado a True para permitir que los valores RelayState se pasen al SP.
Duración de la caché Duración de la caché de metadatos de SAML IdP en segundos.
Estado de retransmisión Valor pasado al proveedor de servicios (SP) SAML 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 SAML SP aceptan un URI de redireccionamiento.
Válido hasta 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

Reclamos

El proveedor de seguridad SAML IdP asigna propiedades de usuario a notificaciones. Las afirmaciones están integradas en la aserció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 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 Grupo se puede utilizar para pasar la membresía del grupo de seguridad. De forma predeterminada, las aserciones SAML no incluyen grupos. Debe registrar explícitamente los grupos que deben incluirse.

Para incluir la membresía de grupo, cree un grupo de proveedores de seguridad y asígnelo a un grupo de Vinyl. Si el usuario es miembro del grupo Vinyl, el grupo del proveedor 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/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 Vinyl.
SAMLIDP URL codificada, nombre del proveedor de seguridad de IdP SAML. El valor distingue entre mayúsculas y minúsculas.

Extremo de Metadatos

El Metadata Extremo publica un documento de metadatos (Metadata). La URL del Extremo de metadatos tendrá el siguiente formato:

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 Vinyl.
SAMLIDP URL codificada, nombre del proveedor de seguridad de IdP SAML. El valor distingue entre mayúsculas y minúsculas.

Problemas Conocidos y Limitaciones

El proveedor de seguridad de Vinyl SAML IdP 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.
  • No se admite el protocolo de resolución de artefactos.
  • El protocolo de cierre de sesión no es compatible.