ADC

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 obtenir des détails 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. Il est exécuté à 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 suit :

  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 du client et récupère les détails de l’emplacement géographique. Les détails incluent le continent, le pays, la région, la ville, le FAI, l’organisation ou les détails personnalisés 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 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 en fonction de l’évaluation de la stratégie, autorise l’accès aux utilisateurs ou redirige l’utilisateur vers une page d’erreur. Il indique que la région d’où 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, consultez la rubrique Ajouter un fichier d’emplacement pour créer une base de données de proximité statique .

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 des 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 exécuter 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 fonctionnalités d’équilibrage de charge, de réécriture et de répondeur.

enable ns feature loadbalancing rewrite responder
<!--NeedCopy-->

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.

Les étapes suivantes vous aident à 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 la rubrique Responder

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>]
<!--NeedCopy-->

Exemple :

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

Ajouter une action de message journal d’audit

Vous pouvez configurer les actions de message d’audit pour consigner les messages à différents niveaux de journal, soit au format Syslog uniquement, soit en syslog et en newnslog formats. 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"
<!--NeedCopy-->

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>]
<!--NeedCopy-->

Exemple :

add responder policy responder_pol CLIENT.IP.SRC.MATCHES_LOCATION("Asia.India.\*.\*.\*.\*") responder_act -logaction msg1
<!--NeedCopy-->

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>
<!--NeedCopy-->

Exemple :

bind lb vserver http_vserver -policyName responder_pol -priority 100 -type REQUEST
<!--NeedCopy-->

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érez un scénario dans lequel une appliance Citrix ADC doit insérer l’emplacement utilisateur dans l’en-tête HTTP d’une demande envoyée au serveur d’applications afin que le serveur puisse utiliser les informations pour une logique métier. Les étapes suivantes vous aident à terminer la configuration de 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, consultez la rubrique Répondeur .

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>]
<!--NeedCopy-->

Exemple :

add rewrite action rewrite_act insert_http_header "User_location" CLIENT.IP.SRC.LOCATION
<!--NeedCopy-->

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>]
<!--NeedCopy-->

Exemple :

add rewrite policy rewrite_pol true rewrite_act -logaction log_act
<!--NeedCopy-->

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>
<!--NeedCopy-->

Exemple :

bind lb vserver http_vserver -policyName rewrite_pol -priority 100 -type REQUEST
<!--NeedCopy-->

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, consultez la rubrique Journalisation des audits .

Sortie pour les détails de géolocalisation utilisateur

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

Asia.India.Karnataka.Banglore
<!--NeedCopy-->

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
<!--NeedCopy-->
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