Recuperar detalles de ubicación de la dirección IP del usuario mediante la base de datos de geolocalización

Nota: Esta función está disponible en Citrix ADC versión 12.1 compilación 50.x y versiones posteriores.

El dispositivo Citrix ADC ahora puede obtener detalles de ubicación del usuario, como continente, condado y ciudad. Para cualquier dirección IP pública de una base de datos de ubicación geográfica. Esto se realiza mediante la infraestructura de directivas avanzada. Los detalles de ubicación recuperados se utilizan en una acción de reescritura o en una acción de respuesta para realizar los siguientes casos de uso.

  • Inserte un encabezado HTTP con detalles de ubicación del usuario (como información del país o la ciudad) al enviar la solicitud del cliente al servidor back-end.
  • Agregue el nombre del país en la respuesta de la página HTML para un usuario no válido.

El dispositivo también puede registrar los detalles de ubicación mediante el mecanismo de registro de auditoría.

Obtener detalles de ubicación del usuario mediante funciones de geolocalización

Los componentes interactúan como se indica a continuación:

  1. El usuario envía una solicitud de cliente desde una ubicación geográfica determinada.
  2. El dispositivo Citrix ADC busca la dirección IP del usuario de la solicitud del cliente y recupera los detalles de ubicación geográfica (como continente, país, región, ciudad, ISP, organización o detalles personalizados) de una base de datos de geolocalización.
  3. Una vez recuperados los detalles de la ubicación, el dispositivo utiliza una directiva de respuesta o una directiva de reescritura para evaluar la solicitud.
  4. En una directiva de reescritura, el dispositivo agrega un nuevo encabezado con los detalles de ubicación geográfica y lo envía al servidor back-end. Por ejemplo, inserte un encabezado HTTP personalizado con información de país.
  5. En una directiva de respuesta, el dispositivo evalúa la solicitud HTTP y, basándose en la evaluación de directivas, el dispositivo permite el acceso a los usuarios o redirige al usuario a una página de error que indica que la región desde la que acceden a la aplicación no tiene acceso

Configuración de la base de datos de geolocalización

Como requisito previo, debe tener una base de datos de geolocalización para ejecutarse en el dispositivo Citrix ADC. Los archivos de la base de datos de geolocalización están disponibles con el firmware Citrix ADC. Para descargar los archivos de la base de datos de un proveedor, conviértelo al formato Citrix ADC e impórtelo en el dispositivo. Para obtener más información acerca de la base de datos de geolocalización, consulte el tema Agregar un archivo de ubicación para crear una base de datos de proximidad estática.

Funciones de geolocalización

La siguiente tabla proporciona una lista de funciones de geolocalización que recupera los detalles de ubicación de cualquier dirección IP pública. Estas funciones se pueden utilizar en directivas de reescritura o respuesta.

Función de geolocalización Ejemplo
CLIENT.IP.SRC.LOCATION Asia.In.Karnataka.Bangalore
CLIENT.IP.SRC.LOCATION.GET (1) .LOCATION_LONG India
CLIENT.IP.SRC.LOCATION (3) Asia.In.Karnataka
CLIENT.IP.SRC.LAT_LONG 12,77
CLIENT.IPV6.SRC.LOCATION América del Norte.USCalifornia.Santa Clara.Verizon.Citrix
CLIENT.IPV6.SRC.LOCATION(3) Estados Unidos de América del Norte.California
CLIENT.IPV6.SRC.LOCATION.GET (1) .LOCATION_LONG Estados Unidos de América
CLIENT.IPV6.SRC.LOCATION.GET(3) California
CLIENT.IPV6.SRC.LAT_LONG 36, -119

Configuración de funciones de geolocalización

Para configurar funciones de geolocalización mediante una infraestructura de directivas avanzada, debe habilitar las funciones de equilibrio de carga, reescritura y respuesta y, a continuación, completar los siguientes casos de uso.

Habilitar funciones de equilibrio de carga, respuesta y reescritura

Si desea que el dispositivo Citrix ADC autorice el acceso de los usuarios desde una ubicación geográfica determinada, debe habilitar las funciones de equilibrio de carga, reescritura y respuesta.

enable ns feature loadbalancing rewrite responder

Caso de uso 1: Configuración de la función de geolocalización para redirigir usuarios no válidos fuera de la ubicación geográfica

Cuando un usuario de la India solicita acceso a una página web, bloquee la solicitud y responda con una página HTML con el nombre del país.

Siga los pasos que se indican a continuación para completar la configuración de este caso de uso.

  • Agregar acción de respuesta
  • Agregar directiva de Responder
  • Vincular la directiva de respuesta al servidor de equilibrio de carga

Para obtener más información acerca de los procedimientos de GUI para la acción de reescritura y la configuración de directivas de reescritura, consulte el tema Responder

Agregar acción de respuesta

Agregue una acción de respuesta para responder con la página HTML con el nombre del país. En el símbolo del sistema, escriba:

add responder action <name> <type> (<target> | <htmlpage>) [-comment <string>] [-responseStatusCode <positive_integer>][-reasonPhrase <string>]

Ejemplo:

add responder action responder_act respondwith "CLIENT.REQ.VERSION + " 304 Requested Page not allowed in your country - " + CLIENT.IP.SRC.LOCATION.GET (1).LOCATION_LONG + "\r\n""

Acción de Agregar mensaje de registro de auditoría

Puede configurar acciones de mensajes de auditoría para registrar mensajes en varios niveles de registro, ya sea en formato syslog o en ambos formatos syslog y newnslog. Las acciones de mensajes de auditoría utilizan expresiones para especificar el formato de los mensajes de auditoría. Para crear una acción de mensaje de auditoría mediante la interfaz de línea de comandos

En el símbolo del sistema, escriba: add audit messageaction <name> <logLevel> <stringBuilderExpr> [-logtoNewnslog (YES|NO)] [-bypassSafetyCheck (YES|NO)]

Ejemplo:

add audit messageaction msg1 DEBUG ""Request Location: "+CLIENT.IP.SRC.LOCATION"

Agregar directiva de Responder

Agregue una directiva de respondedor para identificar las solicitudes procedentes de la India y asocie la acción de respondedor a esta directiva. En el símbolo del sistema, escriba:

add responder policy <name> <rule> <action> [<undefAction>] [-comment <string>] [-logAction <string>] [-appflowAction <string>]

Ejemplo:

add responder policy responder_pol CLIENT.IP.SRC.MATCHES_LOCATION("Asia.India.\*.\*.\*.\*") responder_act -logaction  log_act

Vincular la directiva de respuesta al servidor de equilibrio de carga

Enlazar la directiva de respuesta a un servidor virtual de equilibrio de carga de tipo HTT/SSL. En el símbolo del sistema, escriba:

bind lb vserver <vserver name> -policyName < policy_name >  -priority <> -type <L7InlineREQUEST | L4Inline-REQUEST>

Ejemplo:

bind lb vserver http_vserver -policyName responder_pol -priority 100 -type REQUEST

Caso de uso 2: Configuración de la función de geolocalización para insertar un nuevo encabezado HTTP con detalles de ubicación para que el back-end responda

Considere un caso en el que un dispositivo Citrix ADC debe insertar la ubicación del usuario en el encabezado HTTP de una solicitud enviada al servidor de aplicaciones para que el servidor pueda utilizar la información para alguna lógica empresarial. Siga los pasos que se indican a continuación para completar la configuración para este caso de uso:

  • Agregar acción de reescritura
  • Agregar directiva de reescritura
  • Vincular la directiva de reescritura al equilibrio de carga

Para obtener más información acerca de los procedimientos de GUI para la acción de reescritura y la configuración de directivas de reescritura, consulte el tema Responder.

Agregar acción de reescritura

Agregue una acción de reescritura para insertar un encabezado HTTP personalizado con detalles de geolocalización del usuario en la solicitud y envíelo servidores back-end. En el símbolo del sistema, escriba:

add rewrite action <name> <type> <target> [<stringBuilderExpr>] [-pattern <expression> | -search <expression>] [-refineSearch <string>][-comment <string>]

Ejemplo:

add rewrite action rewrite_act insert_http_header "User_location" CLIENT.IP.SRC.LOCATION

Agregar directiva de reescritura

Agregue una directiva de reescritura para evaluar si se debe ejecutar la acción de reescritura. En este caso, todas las solicitudes que vayan al servidor de aplicaciones deben tener un encabezado HTTP personalizado, por lo que la regla puede ser “verdadera”. En el símbolo del sistema, escriba:

add rewrite policy <name> <rule> <action> [<undefAction>] [-comment <string>] [-logAction <string>]

Ejemplo:

add rewrite policy rewrite_pol true rewrite_act -logaction log_act

Vincular la directiva de reescritura al equilibrio de carga

Enlazar la directiva de reescritura al servidor virtual de equilibrio de carga requerido de tipo HTT/SSL. En el símbolo del sistema, escriba:

bind lb vserver <vserver name> -policyName < policy_name >  -priority <> -type <L7InlineREQUEST | L4Inline-REQUEST>

Ejemplo:

bind lb vserver http_vserver -policyName rewrite_pol -priority 100 -type REQUEST

Soporte de Syslog para registrar detalles de geolocalización (opcional)

Si prefiere registrar los detalles de geolocalización del usuario, debe especificar la acción SYSLOG que se realizará cuando una solicitud coincida con la directiva. El dispositivo almacena los detalles como un mensaje de registro en el archivo ns.log. Para obtener más información acerca de la auditoría SYSLOG y NSLOG, consulte el tema Registro de auditoría.

Salida para detalles de geolocalización del usuario

Si un usuario está intentando acceder a una aplicación desde la ubicación de Bangalore y si el dispositivo utiliza la función de geolocalización, “CLIENT.IP.SRC.LOCATION”, se registra la siguiente salida en el dispositivo mediante SYSLOG o la acción newnslog.

Asia.India.Karnataka.Banglore

Ejemplo de registro de salida:

07/23/2018:19:03:54 GMT  Debug 0-PPE-0 : default REWRITE Message 22 0 :  "Request Location: asia.in.karnataka.bangalore.\*.\*"
07/23/2018:19:23:55 GMT  Debug 0-PPE-0 : default RESPONDER Message 32 0
Done