Citrix ADC

Caso de uso: Control de acceso y autenticación

En zonas de alta seguridad, es obligatorio autenticar externamente al usuario antes de que los clientes accedan a un recurso. En el dispositivo Citrix ADC, puede utilizar llamadas HTTP para autenticar externamente al usuario evaluando las credenciales proporcionadas. En este ejemplo, se supone que el cliente envía el nombre de usuario y la contraseña a través de encabezados HTTP en la solicitud. Sin embargo, se podría obtener la misma información de la URL o del cuerpo HTTP.

Para implementar esta configuración, debe realizar las siguientes tareas:

  1. Habilite la función de respuesta en el dispositivo Citrix ADC.
  2. Cree una llamada HTTP en el dispositivo y configúrela con detalles sobre el servidor externo y otros parámetros necesarios.
  3. Configure una directiva de respondedor para analizar la respuesta y, a continuación, enlazar la directiva globalmente.
  4. Cree un agente de llamada en el servidor remoto.

Habilitar Respondedor

La función de respuesta debe estar habilitada antes de usarla en el dispositivo Citrix ADC.

Para habilitar Respondedor mediante la utilidad de configuración

  1. Asegúrese de que la licencia de respondedor está instalada.
  2. En la utilidad de configuración, expanda AppExpert, haga clic con el botón secundario del mouse en Respondedor y, a continuación, haga clic en Habilitar la función Respondedor.

Crear una llamada HTTP en el dispositivo Citrix ADC

Cree una llamada HTTP, HTTP-Callout-3, con la configuración de parámetros que se muestra en la tabla siguiente. Para obtener más información sobre cómo crear una llamada HTTP, consulte Configuración de una llamada HTTP.

Tabla 1. Parámetros y valores para HTTP-Callout-3

Parámetro Valor Name
Name Policy-Responder-3  

Parámetro

Valor

Name

HTTP-Callout-3

Servidor para recibir la solicitud de llamada:

Dirección IP

10.103.9.95

Puerto

80

Solicitud de envío al servidor:

Método

GET

Expresión de host

10.102.3.95

Expresión del tallo de URL

“/cgi-bin/authenticate.pl”

Encabezados:

Name

Solicitar

Value-expression

Solicitud de llamada

Parámetros:

Name

Nombre de usuario

Value-expression

HTTP.REQ.HEADER (“Nombre de usuario”).VALUE (0)

Name

Password

Value-expression

HTTP.REQ.HEADER (“Contraseña”).VALUE (0)

Respuesta del servidor:

Tipo de devolución

TEXTO

Expresión para extraer datos de la respuesta

HTTP.RES.BODY (100)

Creación de una directiva de respondedor para analizar la respuesta

Cree una directiva de respondedor, Policy-Responder-3, que comprobará la respuesta del servidor de llamadas y RESTAURE la conexión si la dirección IP de origen se ha incluido en la lista negra. Cree la directiva con la configuración de parámetros que se muestra en la tabla siguiente. Aunque puede crear una directiva de respondedor en el subnodo Directivas y, a continuación, vincularla globalmente mediante el Administrador de directivas de Respondedor, esta demostración utiliza el Administrador de directivas de Respondedor para crear la directiva de respondedor y enlazar la directiva globalmente.

Tabla 2. Parámetros y valores para Policy-Responder-3

Parámetro Valor
Name Policy-Responder-3
Acción RESTABLECER
Undefined-Result-Action -Global undefined-result action-
Expresión “HTTP.REQ.HEADER(\“Solicitud\”).EQ(\“Solicitud de llamada\”).NOT && SYS.HTTP_CALLOUT(HTTP-Callout-3).CONTAINS(\“Error de autenticación\”)”

Para crear una directiva de respuesta y vincularla globalmente mediante la utilidad de configuración

  1. Vaya a AppExpert > Respondedor.
  2. En el panel de detalles, en Administrador de directivas, haga clic en Administrador de directivas de respondedor.
  3. En el cuadro de diálogo Administrador de directivas de respondedor, haga clic en Sustituir global.
  4. Haga clic en Insertar directiva y, a continuación, en la columna Nombre de directiva, haga clic en Nueva directiva.
  5. En el cuadro de diálogo Crear directiva de respondedor, haga lo siguiente:

    1. En Nombre, escriba Policy-Responder-3.
    2. En Acción, seleccione RESTABLECER.
    3. En Acción de resultado no definido, seleccione Acción global de resultado no definido.
    4. En el cuadro de texto Expresión, escriba:
    "HTTP.REQ.HEADER("Request").EQ("Callout Request").NOT && SYS.HTTP_CALLOUT(HTTP-Callout-3).CONTAINS("Authentication Failed")"
    
    1. Haga clic en Crear y, a continuación, en Cerrar.
  6. Haga clic en Aplicar cambios y, a continuación, haga clic en Cerrar.

Crear un agente de llamada HTTP en el servidor remoto

Ahora necesita crear un agente de llamada HTTP en el servidor de llamadas remoto. El agente de llamada HTTP recibe solicitudes de llamada del dispositivo Citrix ADC y responde adecuadamente. El agente de llamada es un script diferente para cada implementación y debe escribirse teniendo en cuenta las especificaciones del servidor, como el tipo de base de datos y el lenguaje de scripting admitido.

Lo que sigue es ejemplo de pseudo-código agente de llamada que verifica si el nombre de usuario y la contraseña proporcionados son válidos. El agente se puede implementar en cualquier lenguaje de programación de su elección. El pseudo-código debe usarse solo como guía para desarrollar el agente de llamada. Puede crear funciones adicionales en el programa.

Para verificar el nombre de usuario y la contraseña proporcionados mediante pseudo-código

  1. Acepte el nombre de usuario y la contraseña proporcionados en la solicitud y formatéelos adecuadamente.
  2. Conéctese a la base de datos que contiene todos los nombres de usuario y contraseñas válidos.
  3. Compruebe las credenciales proporcionadas en la base de datos.
  4. Dar formato a la respuesta según lo requiera la llamada HTTP.
  5. Envíe la respuesta al dispositivo Citrix ADC.

Caso de uso: Control de acceso y autenticación