Cette page s'applique à Apigee et à Apigee hybrid.
Consultez la documentation d' Apigee Edge.
L'identification précise de l'adresse IP du client dans les requêtes d'API est importante pour certaines fonctionnalités d'Apigee, y compris les fonctionnalités Analytics et Advanced API Security, telles que la détection d'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 l'adresse IP d'origine réelle.
Pour relever 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), en identifiant l'index de l'en-tête correspondant à l'adresse IP pour votre topologie réseau et vos exigences de sécurité. L'utilisation de ce paramètre offre une visibilité, une cohérence et un contrôle sur la manière dont les adresses IP des clients sont déterminées pour toutes les requêtes de l'environnement. Il permet également d'identifier de manière cohérente les adresses IP des clients dans l'environnement, que ce soit pour la Advanced API Security, les variables de flux et les variables d'analyse.
Si la résolution de l'adresse IP client au niveau de l'environnement n'est pas configurée comme décrit sur cette page, les variables d'adresse IP client sont renseignées à l'aide du comportement de résolution d'adresse IP client par défaut.
Résolution de l'adresse IP du client par défaut
Si la résolution d'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 la section Dimensions Analytics.
Si la résolution d'adresse IP du client est configurée pour un environnement, le flux et les variables Analytics sont définis à partir de la configuration de la résolution d'adresse IP du client. Consultez Définir la résolution d'adresse IP client pour un environnement.
Quand définir la résolution d'adresse IP client pour un environnement
Bien qu'il ne soit pas obligatoire de définir la résolution d'adresse IP client, vous pouvez le faire si la résolution d'adresse IP client par défaut ne répond pas à vos besoins et que vous souhaitez la remplacer pour fournir une résolution d'adresse IP client spécifiée pour Analytics, Advanced API Security ou toute autre fonction nécessitant des informations cohérentes et fiables sur les adresses IP client.
Comprendre la syntaxe de configuration de la résolution d'adresse IP client
Le paramètre de résolution de l'adresse IP client a le format suivant:
"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 à partir de la gauche (la première adresse ajoutée à l'en-tête), où la première position à gauche est0
et augmente d'un 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 indice de1
résout à192.0.2.2
.
Un nombre négatif sélectionne une adresse à partir de la droite (la dernière adresse ajoutée à l'en-tête), où la première position à droite est-1
et diminue d'un 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 indice de-1
se résout en192.0.2.4
et l'indice-2
se résout en192.0.2.3
.
Pour en savoir plus sur ce paramètre, consultez l'API organizations.environment.
Afficher les configurations de résolution d'adresse IP client
Vous pouvez afficher la configuration actuelle de la résolution d'adresse IP client pour un environnement à l'aide de l'UI Apigee ou des API de gestion.
Afficher la configuration de la résolution d'adresse IP client à l'aide de l'UI
Pour afficher le paramètre de résolution de l'adresse IP client dans l'interface utilisateur d'Apigee dans la console Cloud, sélectionnez Gestion > Environnements, sélectionnez l'environnement, puis Configuration de l'adresse IP client dans l'onglet À propos.
Afficher la configuration de résolution d'adresse IP du client à l'aide de l'API
Pour afficher la configuration de résolution d'adresse IP client à l'aide des API de gestion d'Apigee, envoyez une requête à l'API organizations.environments.get.
Définir la résolution de l'adresse IP client pour un environnement
Après avoir défini la configuration de résolution d'adresse IP client 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 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, regénérez-les pour utiliser les nouvelles variables et paramètres.
Tenez compte des implications suivantes lorsque vous sélectionnez l'index pour la résolution de l'adresse IP client:
- Les appels d'Apigee à Apigee ne sont pas traités comme un cas particulier. Veillez à noter et à ignorer le nombre d'adresses IP en conséquence.
- Étant donné que l'en-tête X-Forwarded-For peut être falsifié, il est préférable d'utiliser l'index approprié 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 réel, 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 d'adresse IP client sur un environnement, utilisez l'une des API de gestion des API Apigee pour définir la résolution d'adresse IP 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 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 Afficher toutes les FlowInfos.
- Vérifiez FlowInfo juste avant Proxy Request Flow Started (Début du flux de requêtes du proxy). L'adresse IP du client configurée doit être capturée dans cette section.
Recherchez ces variables dans FlowInfo:
client_ip_resolution.resolved.ip
: adresse IP client résolue.client_ip_resolution.used.fallback
: booléen. Cette valeur estfalse
, sauf si Apigee est revenu à la résolution d'adresse IP client par défaut en raison de l'impossibilité d'utiliser une résolution d'adresse IP client configurée. Par exemple, si la résolution configurée spécifie un indice 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, cette valeur est"HeaderIndexAlgorithm{IpHeaderName:header_name, IpHeaderIndex: $header_index}"
. Sinon,default
s'affiche.
Limites
Les limites suivantes s'appliquent à la résolution de l'adresse IP client au niveau de l'environnement:
- La prise en compte des modifications apportées aux configurations de résolution d'adresse IP client peut prendre jusqu'à cinq minutes.
- Évitez de modifier fréquemment (par exemple, toutes les cinq minutes) la configuration de résolution d'adresse IP du client, car cela pourrait entraîner une dégradation des performances.
- La configuration de la résolution d'adresse IP client pour un environnement n'est pas disponible avec Apigee hybrid pour le moment.
- Vous pouvez consulter la configuration via 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 s'appuie sur chaque proxy pour ajouter les bonnes informations à la liste. Cette liste complète n'est pas sous le contrôle d'Apigee. Par conséquent, la configuration de la résolution d'adresse IP du client ne garantit pas l'identification de l'adresse IP de la requête correcte.