Cumplimiento Active Directory protocolo de integración de proxy de servicio de federación
Si se van a utilizar proxies de terceros en lugar del proxy de aplicación web, deben admitir el protocolo MS-ADFSPIP, que especifica las reglas de integración de ADFS y WAP. ADFSPIP integra los Servicios de federación de Active Directory con un proxy de autenticación y aplicación para permitir el acceso a los servicios ubicados dentro de los límites de la red corporativa para los clientes que se encuentran fuera de ese límite.
Requisitos previos
Para establecer correctamente la confianza entre el servidor proxy y la comunidad de ADFS, revise la siguiente configuración en el dispositivo Citrix ADC:
-
Cree un perfil SSL para el back-end y habilite el SNI en el perfil SSL. Inhabilite SSLv3/TLS1. En el símbolo del sistema, escriba el siguiente comando:
add ssl profile <new SSL profile> -sniEnable ENABLED -ssl3 DISABLED -tls1 DISABLED -commonName <FQDN of ADFS> <!--NeedCopy-->
-
Inhabilite SSLv3/TLS1 para el servicio. En el símbolo del sistema, escriba el siguiente comando:
set ssl service <adfs service name> -sslProfile ns_default_ssl_profile_backend <!--NeedCopy-->
-
Habilite la extensión SNI para los apretones de manos del servidor back-end. En el símbolo del sistema, escriba el siguiente comando:
set vpn parameter –backendServerSni ENABLED set ssl parameter -denySSLReneg NONSECURE <!--NeedCopy-->
Importante
Para casos de Home Realm Discovery (HRD) en los que la autenticación debe descargarse en el servidor de ADFS, Citrix recomienda inhabilitar tanto la autenticación como el SSO en el dispositivo Citrix ADC.
Mecanismo de autenticación
A continuación se muestra el flujo de eventos de alto nivel para la autenticación.
-
Establecer confianza con el servidor de ADFS: El servidor de Citrix ADC establece confianza con el servidor de ADFS al registrar un certificado de cliente. Una vez que se establece la confianza, el dispositivo Citrix ADC restablece la confianza después del reinicio sin la intervención del usuario.
Al expirar el certificado, debe restablecer la confianza eliminando y agregando el perfil de proxy ADFS de nuevo.
-
Dispositivos de punto final publicados: El dispositivo Citrix ADC obtiene automáticamente la lista de dispositivos de punto final publicados en el establecimiento de confianza posterior al servidor de ADFS. Estos dispositivos de punto final publicados filtran las solicitudes reenviadas al servidor de ADFS.
-
Insertar encabezados en las solicitudes de los clientes: Cuando el dispositivo Citrix ADC tuneliza las solicitudes de los clientes, los encabezados HTTP relacionados con ADFSPIP se agregan al paquete mientras se envían al servidor de ADFS. Puede implementar el control de acceso en el servidor de ADFS en función de estos valores de encabezado. Se admiten los siguientes encabezados.
- X-MS-Proxy
- X-MS-Endpoint-Absolute-Path
- X-MS-Forwarded-Client-IP
- X-MS-Proxy
- X-MS-Target-Role
- X-MS-ADFS-Proxy-Client-IP
-
Administrar el tráfico de los usuarios finales: El tráfico de los usuarios finales se redirige de forma segura a los recursos deseados.
Notas:
-
Citrix ADC utiliza la autenticación basada en formularios.
-
Citrix ADC no admite la publicación de una aplicación que cumpla con el protocolo de integración de proxy del servicio de federación de Active Directory.
-
Configurar Citrix ADC para que admita el servidor de ADFS
Requisitos previos
-
Configure el servidor Context Switching (CS) como front-end con un servidor de autenticación, autorización y auditoría detrás de CS. En la línea de comandos, escriba:
add cs vserver <cs vserver name> SSL 10.220.xxx.xx 443 -cltTimeout 180 -AuthenticationHost <adfs server hostname> -Authentication OFF -persistenceType NONE <!--NeedCopy-->
add cs action <action name1> -targetLBVserver <lb vserver name> <!--NeedCopy-->
add cs action <action name2> -targetLBVserver <lb vserver name> <!--NeedCopy-->
add cs policy <policy name1> -rule " http.req.url.contains("/adfs/services/trust") || http.req.url.contains("federationmetadata/2007-06/federationmetadata.xml")" -action <action name1> <!--NeedCopy-->
add cs policy <policy name2> -rule "HTTP.REQ.URL.CONTAINS("/adfs/ls")" -action <action name2> <!--NeedCopy-->
bind cs vserver <cs vserver name> -policyName <policy name1> -priority 100 <!--NeedCopy-->
bind cs vserver <cs vserver name> -policyName <policy name2> -priority 110 <!--NeedCopy-->
bind cs vserver <cs vserver name> -lbvserver <lb vserver name> <!--NeedCopy-->
-
Agregue un servicio ADFS. En la línea de comandos, escriba:
add service <adfs service name> <adfs server ip> SSL 443 <!--NeedCopy-->
set ssl service <adfs service name> -sslProfile ns_default_ssl_profile_backend <!--NeedCopy-->
-
Agregue un servidor virtual con equilibrio de carga. En la línea de comandos, escriba:
add lb vserver <lb vserver name> SSL 0.0.0.0 0 <!--NeedCopy-->
set ssl vserver <lb vserver name> -sslProfile ns_default_ssl_profile_frontend <!--NeedCopy-->
-
Enlaza el servicio al servidor con equilibrio de carga. En la línea de comandos, escriba:
bind lb vserver <lb vserver name> <adfs service name> <!--NeedCopy-->
Para configurar Citrix ADC para que funcione con el servidor de ADFS, debe hacer lo siguiente:
- Crear una clave de perfil SSL CertKey para usarla con el perfil de proxy ADFS
- Crear un perfil de proxy ADFS
- Asocie el perfil de proxy ADFS al servidor virtual LB
Cree un certificado SSL con clave privada para usarlo con el perfil de proxy ADFS
En la línea de comandos, escriba:
add ssl certkey <certkeyname> –cert <certificate path> -key <keypath>
<!--NeedCopy-->
Nota: El archivo de certificado y el archivo de clave deben estar presentes en el dispositivo Citrix ADC. Crear un perfil de proxy ADFS mediante la CLI
En la línea de comandos, escriba:
add authentication adfsProxyProfile <profile name> -serverUrl <https://<server FQDN or IP address>/> -username <adfs admin user name> -password <password for admin user> -certKeyName <name of the CertKey profile created above>
<!--NeedCopy-->
Donde:
Nombre del perfil: nombre del perfil de proxy de AFDS que se va a crear
ServerUrl: nombre de dominio completo del servicio ADFS, incluidos el protocolo y el puerto. Por ejemplo: https://adfs.citrix.com
Username
— Nombre de usuario de una cuenta de administrador que existe en el servidor de ADFS
Contraseña: contraseña de la cuenta de administrador utilizada como nombre de usuario
certKeyName: nombre del perfil SSL CertKey creado anteriormente
Asociar el perfil de proxy ADFS al servidor virtual de equilibrio de carga mediante la CLI
En la implementación de ADFS, se utilizan dos servidores virtuales de equilibrio de carga, uno para el tráfico del cliente y el otro para el intercambio de metadatos. El perfil proxy de ADFS debe estar asociado con el servidor virtual de equilibrio de carga que es el front-end del servidor de ADFS.
En la línea de comandos, escriba:
set lb vserver <adfs-proxy-lb> -adfsProxyProfile <name of the ADFS proxy profile>
<!--NeedCopy-->
Función de renovación de confianza para ADFSPIP
Puede renovar la confianza de los certificados existentes que están a punto de caducar o si el certificado existente no es válido. La renovación de confianza de los certificados se realiza solo cuando se establece la confianza entre el dispositivo Citrix ADC y el servidor de ADFS. Para renovar la confianza del certificado, debe proporcionar el nuevo certificado.
Importante
Se requiere intervención manual para la renovación de la confianza de los nuevos certificados.
En el siguiente ejemplo se enumeran los pasos involucrados en la renovación de la confianza del certificado:
- El dispositivo Citrix ADC envía certificados antiguos (SerializedTrustCertificate) y nuevos (SerializedReplacementCertificate) en la solicitud POST al servidor de ADFS para la renovación de la confianza.
- El servidor de ADFS responde con un éxito de 200 OK si la confianza se renueva correctamente.
- El dispositivo Citrix ADC actualiza el estado como “ESTABLISHED_RENEW_SUCCESS” si la renovación de la confianza se realiza correctamente. Si se produce un error en la renovación de la confianza, el estado se actualiza como “ESTABLISHED_RENEW_FAILED” y el dispositivo Citrix ADC sigue utilizando el certificado anterior.
Nota
No puede actualizar la clave de certificado si ya está enlazada a algún perfil de proxy de ADFS.
Para configurar la renovación de confianza de certificados mediante la CLI
En la línea de comandos, escriba:
set authentication adfsProxyProfile <name> [-CertKeyName <string>]
<!--NeedCopy-->
Ejemplo:
set authentication adfsProxyProfile adfs_2 –CertKeyName ca_cert1
<!--NeedCopy-->
Autenticación basada en certificados de cliente en el servidor de ADFS
A partir de Windows server 2016, Microsoft introdujo una nueva forma de autenticar a los usuarios cuando se accede a ADFS a través de servidores proxy. Ahora, los usuarios finales pueden iniciar sesión con sus certificados, evitando así el uso de una contraseña.
Los usuarios finales a menudo acceden a ADFS a través de un proxy, especialmente cuando no están en las instalaciones. Por lo tanto, los servidores proxy ADFS deben admitir la autenticación de certificados de cliente a través del protocolo ADFSPIP.
Cuando ADFS se equilibra de carga mediante un dispositivo Citrix ADC, para admitir la autenticación basada en certificados en el servidor de ADFS, los usuarios también deben iniciar sesión en el dispositivo Citrix ADC con el certificado. Esto permite que Citrix ADC pase el certificado de usuario a ADFS para proporcionar SSO al servidor de ADFS.
El siguiente diagrama describe el flujo de autenticación de certificados de cliente.
Configurar el SSO para el servidor de ADFS mediante el certificado de cliente
Para configurar el SSO para el servidor de ADFS mediante el certificado de cliente, primero debe configurar la autenticación del certificado de cliente en el dispositivo Citrix ADC. A continuación, debe vincular la directiva de autenticación de certificados al servidor virtual de autenticación, autorización y auditoría.
Además, debe realizar los siguientes pasos.
-
Se debe configurar un servidor virtual de conmutación de contexto adicional con el puerto 49443 y este servidor virtual de conmutación de contexto debe apuntar al mismo servidor virtual de equilibrio de carga que está abierto para todos los puertos, que creó anteriormente.
-
El puerto 49443 debe abrirse en el dispositivo Citrix ADC para la autenticación.
-
La directiva de conmutación de contexto debe vincularse al mismo servidor virtual de equilibrio de carga con el puerto 443 abierto que creó anteriormente.
-
Debe vincular el mismo servicio SSL que creó anteriormente al servidor virtual de equilibrio de carga.
-
Si ya ha creado un perfil SSL para el back-end, debe usar ese perfil.
En la línea de comandos, escriba;
add cs vserver <name> <serviceType> <port>
bind cs vserver <name> (-lbvserver <string> | -vServer <string> | [-targetLBVserver <string>]
set ssl vserver <vServerName [-sslProfile <string>]
bind ssl vserver <vServerName -certkeyName <string>
add authentication certAction <action name>
add authentication Policy <policy name> -rule <expression> -action <action name>
add authentication policylable <label Name>
bind authentication policylabel <label Name> -policyName <name of the policy> -priority<integer>
<!--NeedCopy-->
Ejemplo:
add cs vserver srv123_adfsproxy_csvs_tls SSL $VIP_1 49443
bind cs vserver srv123_adfsproxy_csvs_tls -lbvserver srv123_adfs_lbvserver
set ssl vserver srv123_adfsproxy_csvs_tls -sslProfile ns_default_ssl_profile_frontend
bind ssl vserver srv123_adfsproxy_csvs_tls -certkeyName srv123_wildcardcert
add authentication certAction adfsproxy-cert
add authentication Policy cert1 -rule TRUE -action adfsproxy-cert
add authentication policylable certfactor
bind authentication policylabel certfactor –policyName cert1 –priority 100
<!--NeedCopy-->
Para obtener información sobre la configuración del certificado de cliente en el dispositivo Citrix ADC, consulte Configurar la autenticación de certificados de cliente mediante directivas avanzadas.