ADC

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.

ADFSPIP y NetScaler

Requisitos previos

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

  • 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 profile <adfs service name> -sessReuse <ENABLED|DISABLED> -tls1 <ENABLED|DISABLED> -SNIEnable <ENABLED|DISABLED> -commonName <name> -denySSLReneg <YES|NO>
     <!--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 NetScaler.

## 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 de ADFS**: El servidor de NetScaler establece confianza con el servidor de ADFS al registrar un certificado de cliente. Una vez que se establece la confianza, el dispositivo NetScaler 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.

1.  **Dispositivos de punto final publicados**: El dispositivo NetScaler 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.

1.  **Insertar encabezados en las solicitudes de los clientes**: Cuando el dispositivo NetScaler 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

1.  **Administrar el tráfico de los usuarios finales**: El tráfico de los usuarios finales se redirige de forma segura a los recursos deseados.

    > **Nota:**
    >
    >-  NetScaler utiliza la autenticación basada en formularios.
    >
    >-  NetScaler 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 NetScaler 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_adfs_proxy SSL a.b.c.d 443 -cltTimeout 180 -AuthenticationHost adfs.ns.com
    <!--NeedCopy-->
```
add cs action adfs_proxy_cs_act -targetVserver avs_adfs_proxy
<!--NeedCopy--> ```

```
add cs policy adfs_proxy_policy -rule is_vpn_url -action adfs_proxy_cs_act
<!--NeedCopy--> ```

```
bind cs vserver cs_adfs_proxy -policyName adfs_proxy_policy -priority 100
<!--NeedCopy--> ```

```
bind cs vserver cs_adfs_proxy -lbvserver lb_adfs_proxy
<!--NeedCopy--> ```
  • Agregue un servicio ADFS. En la línea de comandos, escriba:

     add service adfs_service adfs_server SSL 443
    
     set ssl service adfs_service -sslProfile ns_default_ssl_profile_backend
    
     bind ssl service adfs_service -certkeyName adfs_trust_cert
     <!--NeedCopy-->
    
     set ssl profile ns_default_ssl_profile_backend -sessReuse ENABLED -tls1 DISABLED -SNIEnable ENABLED -commonName www.server.com -denySSLReneg NO
     <!--NeedCopy-->
    
  • Agregue un servidor virtual de equilibrio de carga. En la línea de comandos, escriba:

     add lb vserver lb_adfs_proxy SSL 0.0.0.0 0 -AuthenticationHost adfs.ns.com -Authentication ON -adfsProxyProfile adfs_proxy_profile
     <!--NeedCopy-->
    
  • Enlaza la directiva de tráfico de ADFS y el servicio de ADFS al servidor virtual de equilibrio de carga. En la línea de comandos, escriba:

    ``` vincular lb vserver lb_adfs_proxy adfs_service

    bind lb vserver lb_adfs_proxy -policyName adfs_traffic_pol -priority 1 -type REQUEST ```

  • Configure una dirección SNIP:

     add ns ip p.q.r.s 255.255.255.0 -type SNIP
    
  • Configure las políticas y acciones de tráfico:

     add tm trafficAction adfs_traffic_action -SSO ON -formSSOAction adfs_form_action
    
     add tm formSSOAction adfs_form_action -actionURL "/adfs/ls" -userField UserName -passwdField Password -ssoSuccessRule "HTTP.RES.SET_COOKIE.EQ("MSISAuth")" -nameValuePair AuthMethod=FormsAuthentication -submitMethod POST
    
     add tm trafficAction adfs_traffic_action -SSO ON -formSSOAction adfs_form_action
    
     add tm trafficPolicy adfs_traffic_pol "HTTP.REQ.URL.EQ("/adfs/ls/")" adfs_traffic_action
    

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

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

Cree un certificado SSL con clave privada para usarlo con el perfil de proxy ADFS mediante la GUI

  1. Vaya a Administración del tráfico > SSL > Certificados > Certificados de CA.

  2. En el panel de detalles, haga clic en Instalar. En el cuadro de diálogo Instalar certificado, escriba los detalles, como el certificado y el nombre del archivo de claves, y luego seleccione Paquete de certificados.

  3. Haga clic en Instalar y, a continuación, en Cerrar.

Certificado de instalación de ADFSPIP

Cree un certificado SSL con clave privada para usarlo con el perfil de proxy ADFS mediante la CLI

En la línea de comandos, escriba:

add ssl certKey aaa_local -cert aaa_local.cer -key aaa_local.key

Nota: El archivo de certificado y el archivo de clave deben estar presentes en el dispositivo NetScaler.

Crear un perfil de proxy ADFS mediante la GUI

  1. Vaya a Configuración > Seguridad > Tráfico de aplicaciones AAA > Perfil ADFSproxy .

  2. Haga clic en Agregar en la página de perfil de ADFSProxy .

  3. En la página Crear perfil de ADFSproxy , configure los siguientes parámetros:

    • Nombre: asigne un nombre al perfil de proxy de ADFS.
    • Nombre de usuario: es el nombre de una cuenta del directorio que se utilizaría para autenticar la solicitud de confianza de NetScaler que actúa como proxy.
    • Contraseña: es la contraseña de la cuenta.
    • URL del servidor: FQDN del servidor ADFS.
    • Nombre de clave de certificado: certificado SSL del proxy registrado en el servidor ADFS.
  4. Haga clic en Crear.

ADFSPIP y NetScaler

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>

add dns addRec adfs.server.com 10.106.30.151

Ejemplo,

add authentication adfsProxyProfile adfs_proxy_profile -userName test -password test -serverURL "https://adfs.server.com" -CertKeyName adfs_trust_cert

Nota:

El proxy ADFS y el servidor ADFS solo pueden establecer la confianza si el certificado está firmado por la autoridad certificadora del servidor ADFS.

Asocie el perfil de proxy ADFS al servidor virtual de equilibrio de carga mediante la GUI

  1. Vaya a Administración del tráfico > Equilibrio de carga > Servidores virtualesy seleccione un servidor virtual SSL.

  2. Haga clic en Edit.

  3. En Configuración avanzada, haga clic en Perfiles.

  4. Seleccione el perfil ADFS creado anteriormente.

  5. Haga clic en Aceptar y, a continuación, haga clic en Listo.

ADFSPIP y NetScaler

Asocie 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, uno para el tráfico de clientes y 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 ssl vserver lb_adfs_proxy -sslProfile ns_default_ssl_profile_frontend

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 NetScaler 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:

  1. El dispositivo NetScaler envía certificados antiguos (SerializedTrustCertificate) y nuevos (SerializedReplacementCertificate) en la solicitud POST al servidor de ADFS para la renovación de la confianza.
  2. El servidor de ADFS responde con un éxito de 200 OK si la confianza se renueva correctamente.
  3. El dispositivo NetScaler 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 NetScaler sigue utilizando el certificado anterior.

Nota:

No puede actualizar la clave del certificado si ya está enlazada a un perfil de proxy ADFS.

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

En la línea de comandos, escriba:

add ssl certKey <name> -cert <certificate file> -key <key file>
add authentication vserver <name> SSL <ipaddress> <port>
bind ssl vserver <virtual server name> -certkeyName <string>

Ejemplo:

add ssl certKey adfs_trust_cert -cert "client/client_rsa_2048.pem" -key "client/client_rsa_2048.ky"

Nota:

El certificado debe emitirlo la autoridad de certificación del servidor ADFS.

add authentication vserver avs_adfs_proxy SSL 0.0.0.0
bind ssl vserver avs_adfs_proxy -certkeyName aaa_local

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 se equilibra la carga de ADFS mediante un dispositivo NetScaler, para admitir la autenticación basada en certificados en el servidor ADFS, los usuarios también deben iniciar sesión en el dispositivo NetScaler con el certificado. Esto permite que NetScaler pase el certificado de usuario a ADFS para proporcionar SSO al servidor de ADFS.

El siguiente diagrama representa el flujo de autenticación de certificado de cliente.

Flujo de trabajo de autenticación de certificados

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

bind ssl vserver <name> -certkeyName <string>

bind ssl vserver <vServerName> -certkeyName <string>

add authentication Policy <policy name> -rule <expression> -action <action name>

bind authentication vserver <name> -policy <name of the policy> -priority <integer>

Ejemplo:

bind ssl vserver lb_adfs_proxy -certkeyName aaa_local

set ssl profile ns_default_ssl_profile_frontend -eRSA ENABLED -sessReuse ENABLED -denySSLReneg NONSECURE

bind ssl vserver cs_adfs_proxy -certkeyName aaa_local

add authentication Policy local_pol -rule true -action LOCAL

bind authentication vserver avs_adfs_proxy -policy local_pol -priority 1

Para obtener información sobre la configuración del certificado de cliente en el dispositivo NetScaler, consulte Configurar la autenticación de certificados de cliente mediante directivas avanzadas. ```

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