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:
- Habilite la función de respuesta en el dispositivo NetScaler.
- Cree una llamada HTTP en el dispositivo y configúrela con detalles sobre el servidor externo y otros parámetros necesarios.
- Configure una directiva de respuesta para analizar la respuesta y, a continuación, vincule la directiva globalmente.
- 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
- Asegúrese de que la licencia de respuesta esté instalada.
- En la utilidad de configuración, expanda AppExpert, haga clic con el botón secundario en Responder y, a continuación, haga clic enHabilitar 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, consulteConfiguració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
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
- Vaya aAppExpert>Responder.
- En el panel de detalles, enGestor de directivas, haga clic enResponder Policy Manager.
- En el cuadro de diálogoResponder Policy Manager, haga clic enOverride Global.
- Haga clic enInsertar directivay, a continuación, en la columnaNombre de la directiva, haga clic enNueva directiva.
En el cuadro de diálogoCrear directiva de respuesta, haga lo siguiente:
- 数量,escriba Policy-Responder-3。
- En Acción, seleccionaRESTABLECER.
- En Acción con resultado indefinido, seleccione Acción global con resultado indefinido.
- 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")"
- Haga clic enCreary, a continuación, enCerrar.
- Haga clic enAplicar cambiosy, a continuación, enCerrar.
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.
联合国continuacion se具体比如de pseudocodigo 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
- Acepte el nombre de usuario y la contraseña proporcionados en la solicitud y formatéelos adecuadamente.
- Conéctese a la base de datos que contiene todos los nombres de usuario y contraseñas válidos.
- Compare las credenciales proporcionadas con la base de datos.
- Formatee la respuesta según lo requiera la llamada HTTP.
- Envíe la respuesta al dispositivo NetScaler.