Récupérer les détails de localisation à partir de l’adresse IP de l’utilisateur à l’aide de la base de données de géolocalisation

Remarque : Cette fonctionnalité est disponible à partir de Citrix ADC version 12.1 build 50.x et versions ultérieures.

L’appliance Citrix ADC peut désormais obtenir des informations sur l’emplacement de l’utilisateur comme le continent, le comté et la ville. Pour toute adresse IP publique à partir d’une base de données de localisation géographique. Ceci est effectué à l’aide de l’infrastructure de stratégie avancée. Les détails d’emplacement récupérés sont ensuite utilisés dans une action de réécriture ou une action de répondeur pour effectuer les cas d’utilisation suivants.

  • Insérez un en-tête HTTP avec les détails de l’emplacement de l’utilisateur (tels que les informations sur le pays, la ville) lors de l’envoi de la demande du client au serveur principal.
  • Ajoutez un nom de pays dans la réponse de page HTML pour un utilisateur non valide.

L’appliance peut également consigner les détails de l’emplacement à l’aide du mécanisme de journalisation d’audit.

Obtention des détails de localisation de l’utilisateur à l’aide des fonctions de géolocalisation

Les composants interagissent comme indiqué ci-dessous :

  1. L’utilisateur envoie une demande client à partir d’un emplacement géographique particulier.
  2. L’appliance Citrix ADC recherche l’adresse IP de l’utilisateur à partir de la demande client et récupère les détails de l’emplacement géographique (comme le continent, le pays, la région, la ville, le fournisseur de services Internet, l’organisation ou les détails personnalisés) à partir d’une base de données de géolocalisation.
  3. Une fois les détails de l’emplacement récupérés, l’appliance utilise une stratégie de répondeur ou une stratégie de réécriture pour évaluer la demande.
  4. Dans une stratégie de réécriture, l’appliance ajoute un nouvel en-tête contenant les détails de l’emplacement géographique et l’envoie au serveur principal. Par exemple, insérez un en-tête HTTP personnalisé avec des informations sur le pays.
  5. Dans une stratégie de répondeur, l’appliance évalue la requête HTTP et, sur la base de l’évaluation de la stratégie, l’appliance autorise l’accès aux utilisateurs ou redirige l’utilisateur vers une page d’erreur indiquant que la région à partir de laquelle ils accèdent à l’application n’a pas accès

Configuration de la base de données de géolocalisation

En tant que condition préalable, vous devez disposer d’une base de données de géolocalisation pour s’exécuter sur l’appliance Citrix ADC. Les fichiers de base de données de géolocalisation sont disponibles avec le firmware Citrix ADC. Pour télécharger les fichiers de base de données à partir d’un fournisseur, convertissez-les au format Citrix ADC et importez-les dans votre appliance. Pour plus d’informations sur la base de données de géolocalisation, reportez-vous à laAjouter un fichier d’emplacement pour créer une base de données de proximité statiquerubrique.

Fonctions de géolocalisation

Le tableau suivant donne une liste des fonctions de géolocalisation qui récupère les détails de localisation de n’importe quelle adresse IP publique. Ces fonctions peuvent être utilisées dans les stratégies de réécriture ou de réponse.

Fonction de géolocalisation Exemple
CLIENT.IP.SRC.LOCATION Asie.In.Karnataka.Bangalore
CLIENT.IP.SRC.LOCATION.GET (1) .LOCATION_LONG Inde
CLIENT.IP.SRC.LOCATION (3) Asie.In.Karnataka
CLIENT.IP.SRC.LAT_LONG 12,77
CLIENT.IPV6.SRC.LOCATION Amérique du Nord.US.California.Santa Clara.Verizon.Citrix
CLIENT.IPV6.SRC.LOCATION(3) Amérique du Nord.US.Californie
CLIENT.IPV6.SRC.LOCATION.GET (1) .LOCATION_LONG États-Unis
CLIENT.IPV6.SRC.LOCATION.GET(3) Californie
CLIENT.IPV6.SRC.LAT_LONG 36, -119

Configuration des fonctions de géolocalisation

Pour configurer les fonctions de géolocalisation à l’aide d’une infrastructure de stratégie avancée, vous devez activer les fonctions d’équilibrage de charge, de réécriture et de répondeur, puis effectuer les cas d’utilisation suivants.

Activer l’équilibrage de charge, le répondeur et les fonctions de réécriture

Si vous souhaitez que l’appliance Citrix ADC autorise l’accès utilisateur à partir d’un emplacement géographique particulier, vous devez activer les fonctions d’équilibrage de charge, de réécriture et de répondeur.

enable ns feature loadbalancing rewrite responder

Cas d’utilisation 1 : Configuration de la fonction de géolocalisation pour rediriger les utilisateurs non valides en dehors de l’emplacement géographique

Lorsqu’un utilisateur indien demande l’accès à une page Web, bloquez la demande et répondez avec une page HTML avec le nom du pays.

Suivez les étapes ci-dessous pour terminer la configuration de ce cas d’utilisation.

  • Ajouter une action du répondeur
  • Ajouter une stratégie de répondeur
  • Lier la stratégie du répondeur au serveur d’équilibrage de charge

Pour plus d’informations sur les procédures de l’interface graphique pour l’action de réécriture et la configuration de la stratégie de réécriture, consultez laRépondeurrubrique

Ajouter une action du répondeur

Ajouter une action de répondeur pour répondre avec une page HTML avec le nom du pays. À l’invite de commandes, tapez :

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

Exemple :

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""

Ajouter une action de message de journal d’auditoire

Vous pouvez configurer les actions de message d’audit pour consigner les messages à différents niveaux de journal, soit au format syslog uniquement, soit dans les formats syslog et newnslog. Les actions de message d’audit utilisent des expressions pour spécifier le format des messages d’audit. Pour créer une action de message d’audit à l’aide de l’interface de ligne de commande

À l’invite de commandes, tapez : add audit messageaction <name> <logLevel> <stringBuilderExpr> [-logtoNewnslog (YES|NO)] [-bypassSafetyCheck (YES|NO)]

Exemple :

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

Ajouter une stratégie de répondeur

Ajoutez une stratégie de réponse pour identifier les demandes provenant de l’Inde et associez l’action du répondant à cette stratégie. À l’invite de commandes, tapez :

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

Exemple :

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

Lier la stratégie du répondeur au serveur d’équilibrage de charge

Liez la stratégie de répondeur à un serveur virtuel d’équilibrage de charge de type HTTP/SSL. À l’invite de commandes, tapez :

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

Exemple :

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

Cas d’utilisation 2 : Configuration de la fonction de géolocalisation pour insérer un nouvel en-tête HTTP avec des détails d’emplacement pour que le back-end réponde

Considérons un scénario dans lequel une appliance Citrix ADC doit insérer l’emplacement de l’utilisateur dans l’en-tête HTTP d’une requête envoyée au serveur d’applications afin que le serveur puisse utiliser les informations pour une logique métier. Suivez les étapes ci-dessous pour terminer la configuration pour ce cas d’utilisation :

  • Ajouter une action de réécriture
  • Ajouter une stratégie de réécriture
  • Lier la stratégie de réécriture à l’équilibrage de charge

Pour plus d’informations sur les procédures de l’interface graphique pour l’action de réécriture et la configuration de la stratégie de réécriture, reportez-vous à laRépondeurrubrique.

Ajouter une action de réécriture

Ajoutez une action de réécriture pour insérer un en-tête HTTP personnalisé avec les détails de géolocalisation de l’utilisateur dans la requête et lui envoyer des serveurs back-end. À l’invite de commandes, tapez :

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

Exemple :

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

Ajouter une stratégie de réécriture

Ajoutez une stratégie de réécriture pour évaluer si l’action de réécriture doit être exécutée. Dans ce cas, toutes les requêtes qui vont au serveur d’applications doivent avoir un en-tête HTTP personnalisé, de sorte que la règle peut être « true ». À l’invite de commandes, tapez :

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

Exemple :

add rewrite policy rewrite_pol true rewrite_act -logaction log_act

Lier la stratégie de réécriture à l’équilibrage de charge

Liez la stratégie de réécriture au serveur virtuel d’équilibrage de charge requis de type HTTP/SSL. À l’invite de commandes, tapez :

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

Exemple :

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

Prise en charge de Syslog pour la journalisation des détails de géolocalisation (facultatif)

Si vous préférez consigner les détails de géolocalisation de l’utilisateur, vous devez spécifier l’action SYSLOG à effectuer lorsqu’une requête correspond à la stratégie. L’appliance stocke les détails sous forme de message de journal dans le fichier ns.log. Pour plus d’informations sur l’audit SYSLOG et NSLOG, reportez-vous à laJournalisation d’auditrubrique.

Sortie pour les détails de géolocalisation utilisateur

Si un utilisateur tente d’accéder à une application depuis l’emplacement de Bangalore et si l’appliance utilise la fonction de géolocalisation, « CLIENT.IP.SRC.LOCATION », la sortie suivante est enregistrée dans l’appliance à l’aide de l’action SYSLOG ou newnslog.

Asia.India.Karnataka.Banglore

Exemple de journal de sortie :

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