Cette page s'applique à Apigee et à Apigee hybrid.
Consultez la documentation d'
Apigee Edge.
Il est important d'identifier précisément l'adresse IP du client dans les requêtes d'API pour certaines fonctionnalités d'Apigee, y compris les fonctionnalités Analytics et Advanced API Security, telles que la détection des abus et les actions de sécurité.
Le processus d'identification de l'adresse IP du client est difficile dans les architectures réseau modernes qui utilisent des proxys et des équilibreurs de charge, car ces intermédiaires peuvent masquer la véritable adresse IP d'origine.
Pour surmonter ce défi, Apigee prend en charge un paramètre au niveau de l'environnement qui spécifie comment résoudre l'adresse IP du client à partir de l'en-tête X-Forwarded-For (XFF). Il identifie l'index dans l'en-tête qui correspond à l'adresse IP pour votre topologie réseau et vos exigences de sécurité. Ce paramètre permet de voir, de contrôler et de déterminer de manière cohérente les adresses IP des clients pour toutes les requêtes de l'environnement. Il permet également d'identifier de manière cohérente les adresses IP des clients dans la sécurité avancée des API, les variables de flux et les variables d'analyse de l'environnement.
Si la résolution de l'adresse IP du client au niveau de l'environnement n'est pas configurée comme décrit sur cette page, les variables d'adresse IP du client sont renseignées à l'aide du comportement de résolution par défaut de l'adresse IP du client.
Résolution par défaut de l'adresse IP du client
Si la résolution de l'adresse IP du client n'est pas configurée au niveau de l'environnement, la valeur par défaut de la dimension ax_resolved_client_ip
est calculée comme décrit dans Dimensions Analytics.
Si la résolution de l'adresse IP du client est configurée pour un environnement, les variables de flux et d'analyse sont définies à partir de la configuration de la résolution de l'adresse IP du client. Consultez Définir la résolution de l'adresse IP du client pour un environnement.
Quand définir la résolution de l'adresse IP du client pour un environnement
Bien qu'il ne soit pas obligatoire de définir la résolution de l'adresse IP du client, vous pouvez le faire si la résolution par défaut de l'adresse IP du client ne répond pas à vos besoins et que vous souhaitez la remplacer pour fournir une résolution spécifiée de l'adresse IP du client pour Analytics, Advanced API Security ou toute autre fonction nécessitant des informations cohérentes et fiables sur les adresses IP des clients.
Comprendre la syntaxe de configuration de la résolution de l'adresse IP du client
Le paramètre de résolution de l'adresse IP du client se présente comme suit :
"clientIpResolutionConfig": { "headerIndexAlgorithm": { "ipHeaderName" : "X-Forwarded-For", "ipHeaderIndex": 2 } }
ipHeaderName
est l'en-tête à utiliser pour l'adresse IP du client. Pour le moment,X-Forwarded-For
est la valeur d'en-tête acceptée.ipHeaderIndex
correspond à la valeur d'index dansipHeaderName
.
Un nombre positif sélectionne une adresse en commençant par la gauche (la première adresse ajoutée à l'en-tête), où la première position à gauche est0
et augmente d'une unité pour chaque adresse suivante (par exemple,0, 1, 2
). Par exemple, si la liste est192.0.2.1, 192.0.2.2, 192.0.2.3
, un index de1
correspond à192.0.2.2
.
Un nombre négatif sélectionne une adresse en commençant par la droite (la dernière adresse ajoutée à l'en-tête), où la première position à droite est-1
et diminue d'une unité pour chaque adresse suivante (par exemple,-3, -2, -1
). Par exemple, si la liste est192.0.2.1, 192.0.2.2, 192.0.2.3, 192.0.2.4
, un index de-1
correspond à192.0.2.4
et l'index-2
correspond à192.0.2.3
.
Pour en savoir plus sur ce paramètre, consultez l'API organizations.environment.
Afficher les configurations de résolution des adresses IP client
Vous pouvez afficher la configuration actuelle de la résolution de l'adresse IP du client pour un environnement à l'aide de l'interface utilisateur Apigee ou des API Management.
Afficher la configuration de résolution de l'adresse IP du client à l'aide de l'UI
Pour afficher la configuration de la résolution des adresses IP des clients :
Dans la console Google Cloud , accédez à la page Gestion > Environnements.
-
Sélectionnez l'environnement, puis consultez la configuration de l'adresse IP du client dans l'onglet À propos.
Afficher la configuration de résolution de l'adresse IP du client à l'aide de l'API
Pour utiliser les API de gestion Apigee afin d'afficher la configuration de résolution de l'adresse IP du client, envoyez une requête à l'API organizations.environments.get.
Définir la résolution de l'adresse IP du client pour un environnement
Une fois la configuration de résolution de l'adresse IP du client définie pour un environnement, la variable de flux client.resolved.ip
est renseignée à l'aide de l'algorithme spécifié. Il en va de même pour la dimension Analytics Resolved Client IP
.
Une fois que vous avez défini la configuration de résolution de l'adresse IP du client pour un environnement, les modifications peuvent avoir un impact sur les configurations Advanced API Security existantes pour les règles d'action de sécurité. Examinez les règles existantes et, si nécessaire, régénérez-les pour utiliser les nouvelles variables et les nouveaux paramètres.
Gardez ces implications à l'esprit lorsque vous sélectionnez l'index pour la résolution de l'adresse IP du client :
- Les appels Apigee à Apigee ne sont pas traités comme des cas particuliers. Veillez à noter le nombre d'adresses IP et à les ignorer en conséquence.
- Étant donné que l'en-tête X-Forwarded-For peut être usurpé, il est préférable d'utiliser le bon index en fonction du nombre de sauts attendus entre le client et l'équilibreur de charge Apigee. Un utilisateur malveillant peut envoyer un en-tête X-Forwarded-For prérempli. Bien que la première adresse IP de l'en-tête XFF soit la plus proche de l'adresse IP du client, la dernière adresse IP de l'en-tête XFF est la plus fiable, car l'équilibreur de charge connaît le client TCP qui y est connecté.
Pour définir la résolution de l'adresse IP du client dans un environnement, utilisez l'une des API de gestion Apigee pour définir la résolution de l'adresse IP du client pour l'environnement dans client_ip_resolution_config
.
Utilisez organizations.environments.create pour les nouveaux environnements. Utilisez updateEnvironment ou modifyEnvironment pour les environnements existants.
Tester la résolution de l'adresse IP du client
Après avoir enregistré une nouvelle configuration d'adresse IP du client, vous pouvez la tester en suivant ces instructions :
- Attendez au moins cinq minutes après avoir enregistré un nouveau paramètre de configuration.
- Démarrez une session de débogage. Activez le paramètre Show all FlowInfos (Afficher toutes les FlowInfos).
- Consultez FlowInfo juste avant Proxy Request Flow Started. L'adresse IP du client configurée doit s'afficher dans cette section.
Recherchez ces variables dans FlowInfo :
client_ip_resolution.resolved.ip
: adresse IP du client résolue.client_ip_resolution.used.fallback
: booléen. Cette valeur estfalse
, sauf si Apigee est revenu à la résolution d'adresse IP du client par défaut en raison de l'impossibilité d'utiliser une résolution d'adresse IP du client configurée. Par exemple, si la résolution configurée spécifie un index qui n'existe pas dans l'en-tête.client_ip_resolution.algorithm
: algorithme utilisé pour déterminer l'adresse IP du client. Si elle est configurée, la valeur est"HeaderIndexAlgorithm{IpHeaderName:header_name, IpHeaderIndex: $header_index}"
. Sinon,default
s'affiche.
Limites
Les limites suivantes s'appliquent à la résolution des adresses IP des clients au niveau de l'environnement :
- La prise en compte des modifications apportées aux configurations de résolution des adresses IP des clients peut prendre jusqu'à cinq minutes.
- Évitez de modifier fréquemment (par exemple, toutes les cinq minutes) la configuration de résolution des adresses IP des clients, car cela pourrait entraîner une dégradation des performances.
- La configuration de la résolution de l'adresse IP du client pour un environnement dans Apigee hybrid est disponible avec les versions 1.14.0 et ultérieures d'hybrid.
- Vous pouvez afficher la configuration dans la console ou l'API Apigee, mais vous ne pouvez la définir que via l'API.
- Même en l'absence d'utilisateurs malveillants, la liste X-Forwarded-For repose sur l'ajout des bonnes informations à la liste par chaque proxy. Cette liste complète n'est pas supervisée ni contrôlée par Apigee. Par conséquent, la configuration de la résolution de l'adresse IP du client ne garantit pas l'identification de l'adresse IP de la requête correcte.