ADC

Caso de uso: control de acceso y autenticación

En las zonas de alta seguridad, es obligatorio autenticar externamente al usuario antes de que los clientes accedan a un recurso. En el dispositivo NetScaler, puede utilizar las llamadas HTTP para autenticar externamente al usuario mediante la evaluación de 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 los encabezados HTTP de la solicitud. Sin embargo, se puede 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 NetScaler.
  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 respuesta para analizar la respuesta y, a continuación, vincule la directiva globalmente.
  4. Cree un agente de llamadas en el servidor remoto.

Habilitar Responder

La función de respuesta debe estar habilitada antes de utilizarla en el dispositivo NetScaler.

Para habilitar el respondedor mediante la utilidad de configuración

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

Creación de una llamada HTTP en el dispositivo NetScaler

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 para enviar al servidor:

Método

GET

Expresión hospedadora

10.102.3.95

Expresión raíz URL

“/cgi-bin/authenticate.pl”

Encabezados:

Name

Solicitar

Expresión de valores

Solicitud de llamada

Parámetros:

Name

Nombre de usuario

Expresión de valores

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

Name

Contraseña

Expresión de valores

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 respuesta 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 de prohibidos. Cree la directiva con la configuración de parámetros que se muestra en la siguiente tabla. Si bien puede crear una directiva de respuesta en el subnodo Directivas y, a continuación, vincularla globalmente mediante el Administrador de directivas de respuesta, en esta demostración se utiliza el Administrador de directivas de respuesta para crear la directiva de respuesta y vincular la directiva globalmente.

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

Parámetro Valor
Name Policy-Responder-3
Acción RESET
Acción de resultado indefinida -Acción global de resultados indefinidos-
Expresión “HTTP.REQ.HEADER (\” Request\”) .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 > Responder.
  2. En el panel de detalles, en Gestor de directivas, haga clic en Responder Policy Manager.
  3. En el cuadro de diálogo Responder Policy Manager, haga clic en Override Global.
  4. Haga clic en Insertar directivay, a continuación, en la columna Nombre de la directiva, haga clic en Nueva directiva.
  5. En el cuadro de diálogo Crear directiva de respuesta, haga lo siguiente:

    1. En Nombre, escriba Policy-Responder-3.
    2. En Acción, selecciona RESTABLECER.
    3. En Acción con resultado indefinido, seleccione Acción global con resultado indefinido.
    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")"
    <!--NeedCopy-->
    
    1. Haga clic en Creary, a continuación, en Cerrar.
  6. Haga clic en Aplicar cambiosy, a continuación, en Cerrar.

Creación de un agente de llamadas HTTP en el servidor remoto

Ahora debe crear un agente de llamadas HTTP en el servidor de llamadas remoto. El agente de llamadas HTTP recibe las solicitudes de llamada del dispositivo NetScaler 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 secuencias de comandos admitido.

A continuación se muestra un ejemplo de pseudocódigo del agente de llamada que comprueba 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 pseudocódigo debe usarse solo como guía para desarrollar el agente de llamada. Puede incorporar funciones adicionales en el programa.

Para comprobar el nombre de usuario y la contraseña proporcionados mediante un pseudocó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. Compare las credenciales proporcionadas con la base de datos.
  4. Formatee la respuesta según lo requiera la llamada HTTP.
  5. Envíe la respuesta al dispositivo NetScaler.
Caso de uso: control de acceso y autenticación