Configuración de Servicios de Federación de Active Directory usando WS-Federation en Jitterbit App Builder
App Builder puede integrarse con Servicios de Federación de Active Directory (AD FS) utilizando el protocolo pasivo WS-Federation. El protocolo pasivo WS-Federation define los siguientes roles operacionales:
| Actor | Rol |
|---|---|
| App Builder | Entidad confiable |
| AD FS | Proveedor de Identidad (IdP) / Servicio de Token de Seguridad (STS) |
| Usuario | Solicitante pasivo |
La configuración implica los siguientes procedimientos:
- Crear un Proveedor de Seguridad de App Builder para AD FS
- Crear una Confianza de Entidad Confiable de AD FS para App Builder
Requisitos
Para continuar, necesitarás lo siguiente:
- Acceso de administrador a AD FS.
- Acceso de administrador a App Builder.
- App Builder necesitará conectarse a AD FS a través de HTTPS para recuperar el documento de metadatos. AD FS debe utilizar un certificado TLS con una raíz de confianza: App Builder no podrá recuperar el documento de metadatos si el certificado no es de confianza o no es válido de otra manera.
- App Builder deberá estar disponible a través de HTTPS. El proveedor de seguridad Requerir HTTPS debe estar habilitado (o tomar otras medidas para garantizar que App Builder solo sea accesible a través de HTTPS).
- Las máquinas cliente necesitarán estar configuradas para confiar en AD FS. De lo contrario, AD FS pedirá al usuario que inicie sesión.
Las instrucciones a continuación harán referencia a las siguientes propiedades:
| Ejemplo | Notas | |
|---|---|---|
| URL de App Builder | https://example.com/Vinyl/ | App Builder debe ser accesible a través de HTTPS. La URL debe incluir la barra diagonal final. La ruta es sensible a mayúsculas y minúsculas. |
| Nombre del Proveedor | ExampleADFS | Cada proveedor de seguridad de App Builder recibe un nombre lógico. Dado que el nombre del proveedor aparecerá en la URL del Protocolo Pasivo (ver a continuación), evita espacios, puntuación y caracteres especiales. |
| URL del Protocolo Pasivo | https://example.com/Vinyl/signin-ExampleADFS | App Builder aprovisiona automáticamente un punto de conexión de Protocolo Pasivo para proveedores de seguridad WS-Federation. Ten en cuenta que el Nombre del Proveedor aparece en la URL. |
| URL del Documento de Metadatos de Federación | https://fs.example.com/FederationMetadata/2007-06/FederationMetadata.xml | La URL del Documento de Metadatos de Federación se puede recuperar desde AD FS. Para hacerlo, abre la consola de Administración de AD FS. Selecciona AD FS → Servicio → Puntos de conexión. Localiza el punto de conexión del Tipo Metadatos de Federación. |
| Audiencia | https://example.com/Vinyl/signin-ExampleADFS | Se recomienda ampliamente un valor de Audiencia para limitar el alcance de la autenticación. Considera usar la URL del Protocolo Pasivo. |
| Wtrealm | https://example.com/Vinyl/signin-ExampleADFS | Aunque el Wtrealm es arbitrario, AD FS y App Builder deben usar el mismo valor. Considera usar la URL del Protocolo Pasivo. |
Crear un proveedor de seguridad de App Builder para AD FS
Para crear el Proveedor de Seguridad, comienza por iniciar sesión en App Builder como administrador:
- Navega al IDE
- Selecciona el botón Security Providers
- Haz clic en el botón + Security Provider
-
Proporciona lo siguiente:
-
Name:
Security Provider Name(ver arriba)Ejemplo: ExampleADFS
-
Type: WS-Federation
- Enabled: Marca la casilla
- User Provisioning: Marca la casilla para habilitar el aprovisionamiento de usuarios Just-in-Time (JIT).
- Supplies Group Membership: Marca la casilla si AD FS ha sido configurado para pasar la membresía de grupos de usuarios.
- Show On Login Form: Marca la casilla
-
-
Haz clic en el botón Save
- En el panel Properties, haz clic en el botón + Property
-
Proporciona lo siguiente:
- Parameter: MetadataAddress
-
Value:
Federation Metadata Document URL(ver arriba).Ejemplo:
https://fs.example.com/FederationMetadata/2007-06/FederationMetadata.xml
-
Haz clic en el icono Save (Marca)
- En el panel Properties, haz clic en el botón + Property
-
Proporciona lo siguiente:
- Parameter: Wtrealm
-
Value:
Wtrealm(ver arriba).Ejemplo:
https://example.com/Vinyl/signin-ExampleADFS
-
Haz clic en el icono Save (Marca)
- En el panel Properties, haz clic en el botón + Property
-
Proporciona lo siguiente:
- Parameter: Audience
-
Value: Audience (ver arriba).
Ejemplo:
https://example.com/Vinyl/signin-ExampleADFS
-
Haz clic en el icono Save (Marca)
Además, cualquier reclamación mapeada en AD FS deberá ser mapeada en App Builder. Por ejemplo, para mapear la reclamación de correo electrónico:
- En el panel Claims, haz clic en el botón + Claim
-
Proporciona lo siguiente:
-
Identifier: Nombre del tipo de reclamación.\
Ejemplo:
http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress -
Usage: Uso del tipo de reclamación.\
Ejemplo: Email Address
-
-
Haz clic en el icono Save (Marca)
Crear una relación de confianza de parte que confía en AD FS para App Builder
Cada instancia de App Builder debe registrarse en AD FS como una relación de confianza de parte que confía. Los detalles completos sobre cómo crear, configurar y mantener relaciones de confianza de parte que confía están fuera del alcance de este documento. Para obtener información adicional sobre cómo crear una relación de confianza de parte que confía en AD FS, consulta el siguiente artículo de TechNet:
https://technet.microsoft.com/en-ca/library/dd807108.aspx
Crear una relación de confianza de parte que confía requiere la siguiente información:
- Protocol: WS-Federation Passive
-
Relying party WS-Federation Passive protocol URL: Corresponde a la
Passive Protocol URL(ver arriba).\Ejemplo:
https://example.com/Vinyl/signin-ExampleADFS -
Relying party trust identifier: Corresponde a la propiedad
Wtrealm(ver arriba).\Ejemplo:
https://example.com/Vinyl/signin-ExampleADFS
Crear una URL de punto de conexión de AD FS para App Builder
Cada instancia de App Builder debe registrarse en AD FS como un punto de conexión. Crea un punto de conexión en la pestaña Endpoints en AD FS de la siguiente manera:
- Haz clic en el botón Add WS-Federation.
- Establece el punto de conexión como el predeterminado (casilla de verificación).
-
Trusted URL: Corresponde a la propiedad Wtrealm (ver arriba).
Ejemplo:
https://example.com/Vinyl/signin-ExampleADFS
Mapeos de reclamaciones (opcional)
También puedes proporcionar mapeos de reclamaciones opcionales. El siguiente artículo de TechNet describe cómo crear reglas de reclamaciones de relación de confianza de parte que confía en AD FS:
https://technet.microsoft.com/en-us/library/dd807115.aspx
Las reclamaciones comúnmente mapeadas incluyen:
- Email Address -
http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress - Group Membership -
http://schemas.xmlsoap.org/claims/Group
Consulta Claims para obtener información adicional sobre reclamaciones.
Solución de problemas
Configuration settings
Nota
Tu configuración puede variar con respecto a los ejemplos proporcionados en este artículo, dependiendo de tu entorno exacto. Por ejemplo, según cómo esté configurado tu App Pool, es posible que estés utilizando demo.zudy.com/signin-AD o demo.zudy.com/vinyl/signin-AD.
Error "runtime error" al hacer clic en el enlace "sign in with..."
La URL puede mostrar: http://example.com/Vinyl/service/authentication/external?returnUrl=...
Revisa el Registro de eventos de Windows. Específicamente, consulta el registro de aplicaciones para advertencias de ASP.Net con un ID de evento 1309. Es posible que encuentres una entrada con el siguiente mensaje de excepción:
Unable to get document from: https://fs.example.com/FederationMetadata/2007-06/FederationMetadata.xml
Esto indica que App Builder no pudo recuperar el Documento de metadatos de federación. Asegúrate de que el servidor web de App Builder pueda establecer una conexión HTTPS al punto de conexión del Documento de metadatos de AD FS. Además, verifica que el certificado TLS sea válido. Si el certificado no está firmado por una raíz de confianza, puedes registrarlo manualmente.
Error "runtime error" después de iniciar sesión en AD FS
La URL puede mostrar: http://example.com/Vinyl/signin-ADFS
Revisa el Registro de eventos de Windows. Específicamente, consulta el registro de aplicaciones para advertencias de ASP.Net con un ID de evento 1309. Es posible que encuentres una entrada con uno de los siguientes mensajes de excepción.
Reclamación faltante
The identity does not contain a claim matching the given type.
Esto indica que la aserción SAML carece de una o más reclamaciones requeridas. Revisa la configuración de la regla de reclamación.
Audiencia no válida
IDX10214: Audience validation failed. Audiences: 'https://example.com/Vinyl'. Did not match: validationParameters.ValidAudience: 'https://example.com/Vinyl/' or validationParameters.ValidAudiences: 'null'
Esto indica que la aserción SAML tiene una restricción de audiencia no válida. En este ejemplo particular, a la audiencia le falta la barra diagonal final. Asegúrate de que el identificador de confianza de la parte que depende sea correcto.
Imprimir la configuración de confianza de la parte que depende de AD FS
Ejecuta el siguiente comando de PowerShell desde el servidor de AD FS para imprimir la configuración de confianza de la parte que depende:
> Get-ADFSRelyingPartyTrust -Identifier https://example.com/Vinyl/signin-ADFS`
El argumento Identifier corresponde a la URL del protocolo pasivo (como se describe arriba).
Pertenencia a grupos faltante
De manera predeterminada, ADFS no incluye reclamaciones de grupo en aserciones SAML. Los administradores deben crear una o más reglas de reclamación para incluir la pertenencia a grupos. Es posible crear una única regla de reclamación que incluya toda la pertenencia a grupos. Sin embargo, con la regla "Group Claim" integrada de ADFS, se requiere una regla separada para cada grupo.
En el siguiente artículo se describe cómo incluir la pertenencia a grupos que coincida con una expresión regular (por ejemplo, grupos que comienzan con "App Builder"):
En el siguiente artículo se describe cómo usar expresiones regulares en reglas de transformación de reclamaciones:
Configuración de reclamaciones faltante o incorrecta
Es posible que veas el siguiente mensaje de error después de autenticar:
The user account (`<username>`) has successfully signed in, but no available landing page has been configured for their applications.
Esto indica que la configuración del proveedor de seguridad y el extremo de AD FS son correctos, pero significa que las reclamaciones aún no se han configurado o necesitan corregirse.
Revisa las reclamaciones que AD FS devuelve a App Builder (asegúrate de que Store Claims esté marcado) para verificar que se están pasando las reclamaciones correctas (pertenencias a grupos, atributos personalizados) a App Builder y que estas se puedan asignar en la configuración de Reclamaciones del proveedor de seguridad.