Citrix 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

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

L’appliance Citrix ADC peut obtenir des informations sur l’emplacement de l’utilisateur, telles que le continent, le comté et la ville. Pour toute adresse IP publique provenant d’une base de données de géolocalisation. Il est exécuté à l’aide de l’infrastructure de stratégie avancée. Les détails de localisation 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 le pays, la ville) lors de l’envoi de la demande du client au serveur principal.
  • Ajoutez le nom du pays dans la réponse de la page HTML pour un utilisateur non valide.

La solution matérielle-logicielle peut également consigner les détails de l’emplacement à l’aide du mécanisme de journalisation d’audit.

Obtention des détails de localisation des utilisateurs à 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 la géolocalisation. 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, la solution matérielle-logicielle 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, la solution matérielle-logicielle ajoute un en-tête avec 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 de pays.
  5. Dans une stratégie de répondeur, la solution matérielle-logicielle évalue la demande 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 à 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 pouvoir être exécutée sur l’appliance Citrix ADC. Les fichiers de base de données de géolocalisation sont disponibles avec le microprogramme 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 répertorie les fonctions de géolocalisation qui récupèrent 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épondeur.

Fonction de géolocalisation Exemple
CLIENT.IP.SRC.LOCATION Asia.In.Karnataka.Bangalore
CLIENT.IP.SRC.LOCATION.GET (1) .LOCATION_LONG Inde
CLIENT.IP.SRC.LOCATION (3) Asia.In.Karnataka
CLIENT.IP.SRC.LAT_LONG 12,77
CLIENT.IPV6.SRC.LOCATION Amérique du Nord .US.Californie.Santa Clara.Verizon.Citrix
CLIENT.IPV6.SRC.LOCATION(3) Amérique du Nord, États-Unis, 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 fonctionnalités d’équilibrage de charge, de réécriture et de répondeur, puis compléter les cas d’utilisation suivants.

Activer les fonctionnalités d’équilibrage de charge, de répondeur et de réécriture

Si vous souhaitez que l’appliance Citrix ADC autorise l’accès des utilisateurs à 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 la géolocalisation

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

Ajoutez 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)]

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épondeur pour identifier les demandes provenant de l’Inde et associez l’action de répondeur à 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

Imaginons 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 demande envoyée au serveur d’applications afin que le serveur puisse utiliser les informations pour une certaine 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 demande et envoyez-lui des serveurs principaux. À l’invite de commandes, tapez :

add rewrite action <name> <type> <target> [<stringBuilderExpr>] [-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 déterminer si l’action de réécriture doit être exécutée. Dans ce cas, toutes les requêtes envoyées au serveur d’applications doivent comporter 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 à exécuter lorsqu’une demande 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