Cumplimiento del protocolo de integración de proxy de servicio de federación de Active Directory

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

Imagen localizada

Requisitos previos

Para establecer correctamente la confianza entre el servidor proxy y la granja de ADFS, revise la siguiente configuración en el dispositivo Citrix ADC:

  • Cree un perfil SSL para back-end y habilite 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>
    
  • 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
    
  • 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
    

Mecanismo de autenticación

A continuación se muestra el flujo de eventos de alto nivel para la autenticación.

  1. Establecer confianza con el servidor ADFS: El servidor Citrix ADC establece la confianza con el servidor ADFS registrando un certificado de cliente. Una vez establecida la confianza, el dispositivo Citrix ADC restablece la confianza después de reiniciar sin intervención del usuario.

    Al expirar el certificado, debe restablecer la confianza quitando y agregando de nuevo el perfil proxy ADFS.

  2. Dispositivos de punto final publicados: El dispositivo Citrix ADC recupera automáticamente la lista de extremos publicados en el establecimiento de confianza posterior al servidor ADFS. Estos extremos publicados filtran las solicitudes reenviadas al servidor ADFS.

  3. Insertar encabezados en las solicitudes de cliente: Cuando el dispositivo Citrix ADC túnel las solicitudes de cliente, los encabezados HTTP relacionados con ADFSPIP se agregan en el paquete mientras se envían al servidor ADFS. Puede implementar el control de acceso en el servidor ADFS basándose en estos valores de encabezado. Se admiten los siguientes encabezados.

    • Proxy X-MS-X
    • X-MS-Endpoint Absolute-Path
    • X-MS-IP de cliente reenviado-IP
    • Proxy X-MS-X
    • X-MS-Target Rol
    • X-MS-ADFS-Proxy-Cliente-IP
  4. Administrar el tráfico del usuario final: el tráfico del usuario final se enruta de forma segura a los recursos deseados.

    Nota: El dispositivo Citrix ADC utiliza autenticación basada en formularios.

Configurar Citrix ADC para que funcione con el servidor ADFS

Requisitos previos

  • Configure el servidor de conmutación de contexto (CS) como front-end con un servidor de autenticación, autorización y auditoría detrás de CS. En el símbolo del sistema, escriba:

     add cs vserver <cs vserver name> SSL 10.220.xxx.xx 443
     -cltTimeout 180 -AuthenticationHost <adfs server hostname> -Authentication OFF -persistenceType NONE
    
     add cs action <action name1> -targetLBVserver <lb vserver name>
    
    
     add cs action <action name2> -targetLBVserver <lb vserver name>
    
     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>
    
     add cs policy <policy name2> -rule "HTTP.REQ.URL.CONTAINS("/adfs/ls")" -action <action name2>
    
     bind cs vserver <cs vserver name> -policyName <policy name1> -priority 100
    
     bind cs vserver <cs vserver name> -policyName <policy name2> -priority 110
    
     bind cs vserver <cs vserver name> -lbvserver <lb vserver name>
    
  • Agregar servicio ADFS. En el símbolo del sistema, escriba:

     add service <adfs service name> <adfs server ip> SSL 443
    
     set ssl service <adfs service name> -sslProfile ns_default_ssl_profile_backend
    
  • Agregue un servidor virtual con equilibrio de carga. En el símbolo del sistema, escriba:

     add lb vserver <lb vserver name> SSL 0.0.0.0 0
    
     set ssl vserver <lb vserver name> -sslProfile ns_default_ssl_profile_frontend
    
  • Enlace el servicio al servidor con equilibrio de carga. En el símbolo del sistema, escriba:

     bind lb vserver <lb vserver name> <adfs service name>
    

Para configurar Citrix ADC para que funcione con el servidor ADFS, debe hacer lo siguiente:

  1. Crear una clave de perfil SSL CertKey para usarla con el perfil proxy ADFS
  2. Crear un perfil proxy ADFS
  3. Asociar el perfil proxy ADFS al servidor virtual LB

Crear un certificado SSL con clave privada para usar con el perfil proxy ADFS

En el símbolo del sistema, escriba:

    add ssl certkey <certkeyname> –cert <certificate path> -key <keypath>

Nota: El archivo de certificado y el archivo de clave deben estar presentes en el dispositivo Citrix ADC. Crear un perfil proxy ADFS mediante CLI

En el símbolo del sistema, 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>

Donde;

Nombre del perfil — Nombre del perfil proxy 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

Nombre de usuario — Nombre de usuario de una cuenta de administrador que existe en el servidor ADFS

Contraseña — Contraseña de la cuenta de administrador utilizada como nombre de usuario

certKeyName — Nombre del perfil SSL CertKey creado previamente

Asociar el perfil proxy ADFS al servidor virtual de equilibrio de carga mediante CLI

En la implementación de ADFS, hay dos servidores virtuales de equilibrio de carga, uno para el tráfico del cliente y otro para el intercambio de metadatos. El perfil proxy ADFS debe estar asociado con el servidor virtual de equilibrio de carga que está finalizando el servidor ADFS.

En el símbolo del sistema, escriba:

set lb vserver <adfs-proxy-lb> -adfsProxyProfile <name of the ADFS proxy profile>

Soporte 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 solo se realiza cuando la confianza se establece entre el dispositivo Citrix ADC y el servidor ADFS. Para renovar la confianza del certificado, debe proporcionar el nuevo certificado.

En el ejemplo siguiente se enumeran los pasos necesarios para la renovación de la confianza de certificados:

  1. El dispositivo Citrix ADC envía certificados antiguos (SerializedTrustCertificate) y nuevos (SerializedReplacementCertificate) en la solicitud POST al servidor ADFS para la renovación de confianza.
  2. El servidor ADFS responde con 200 OK si la confianza se renueva correctamente.
  3. El dispositivo Citrix ADC actualiza el estado como “ESTABLECED_RENEW_SUCCESS” si la renovación de confianza se realiza correctamente. Si se produce un error en la renovación de confianza, el estado se actualiza como “ESTABLECED_RENEW_FAILED” y el dispositivo Citrix ADC sigue mediante el certificado anterior.

Nota

No puede actualizar el certkey si ya está enlazado a algún perfil proxy ADFS.

Para configurar la renovación de confianza de certificados mediante la CLI

En el símbolo del sistema, escriba:

set authentication adfsProxyProfile <name> [-CertKeyName <string>]

Ejemplo:

set authentication adfsProxyProfile adfs_2 –CertKeyName ca_cert1

Autenticación basada en certificados de cliente en el servidor 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 la contraseña.

Los usuarios finales suelen acceder a ADFS a través de un proxy, especialmente cuando no están en las instalaciones. Por lo tanto, los servidores proxy ADFS son necesarios para admitir la autenticación de certificados de cliente a través del protocolo ADFSPIP.

Cuando ADFS se equilibra la carga mediante un dispositivo Citrix ADC, para admitir la autenticación basada en certificados en el servidor ADFS, los usuarios deben iniciar sesión en el dispositivo Citrix ADC mediante también el certificado. Esto permite a Citrix ADC pasar un certificado de usuario a ADFS para proporcionar SSO al servidor ADFS.

El siguiente diagrama muestra el flujo de autenticación de certificados de cliente.

Imagen localizada

Configurar SSO para el servidor ADFS mediante certificado de cliente

Para configurar SSO para el servidor ADFS mediante 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.

En el símbolo del sistema, escriba;

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>

Ejemplo:

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

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.