Diese Seite gilt für Apigee und Apigee Hybrid.
Apigee Edge-Dokumentation aufrufen
Die korrekte Identifizierung der Client-IP-Adresse bei API-Anfragen ist für einige Funktionen in Apigee wichtig, einschließlich Analytics- und erweiterter API-Sicherheit-Funktionen wie Missbrauchserkennung und Sicherheitsaktionen.
Die Identifizierung der Client-IP ist in modernen Netzwerkarchitekturen, die Proxys und Load Balancer verwenden, schwierig, da diese Zwischenstellen die tatsächliche IP-Adresse des Ursprungs verschleiern können.
Um diese Herausforderung zu meistern, unterstützt Apigee eine Einstellung auf Umgebungsebene, mit der angegeben wird, wie die Client-IP-Adresse aus dem X-Forwarded-For-Header (XFF) aufgelöst wird. Dabei wird der Index im Header angegeben, der mit der IP-Adresse für Ihre Netzwerktopologie und Ihre Sicherheitsanforderungen übereinstimmt. Mit dieser Einstellung können Sie die Ermittlung von Client-IP-Adressen für alle Anfragen in der Umgebung steuern und erhalten so Transparenz und Konsistenz. Außerdem werden Client-IP-Adressen dann einheitlich in der erweiterten API-Sicherheit, in Flussvariablen und in Analysevariablen in der Umgebung identifiziert.
Wenn die Client-IP-Auflösung auf Umgebungsebene nicht wie auf dieser Seite beschrieben konfiguriert ist, werden die Variablen für die Client-IP-Adresse mit dem Standardverhalten für die Client-IP-Auflösung ausgefüllt.
Standardauflösung der Client-IP-Adresse
Wenn die Client-IP-Auflösung nicht auf Umgebungsebene konfiguriert ist, wird der Standardwert der Dimension ax_resolved_client_ip
wie unter Analytics-Dimensionen beschrieben berechnet.
Wenn die Client-IP-Auflösung für eine Umgebung konfiguriert ist, werden die Ablauf- und Analytics-Variablen anhand der Konfiguration der Client-IP-Auflösung festgelegt. Weitere Informationen finden Sie unter Client-IP-Auflösung für eine Umgebung festlegen.
Wann die Client-IP-Auflösung für eine Umgebung festgelegt werden sollte
Die Client-IP-Auflösung muss nicht festgelegt werden. Sie können dies jedoch tun, wenn die Standardauflösung der Client-IP-Adresse nicht Ihren Anforderungen entspricht und Sie sie überschreiben möchten, um eine bestimmte Client-IP-Auflösung für Analytics, die erweiterte API-Sicherheit oder eine andere Funktion bereitzustellen, für die konsistente und zuverlässige Informationen zu Client-IP-Adressen erforderlich sind.
Syntax für die Konfiguration der Client-IP-Auflösung
Die Einstellung für die Client-IP-Auflösung hat folgendes Format:
"clientIpResolutionConfig": { "headerIndexAlgorithm": { "ipHeaderName" : "X-Forwarded-For", "ipHeaderIndex": 2 } }
ipHeaderName
ist der Header, der für die Client-IP verwendet werden soll. Derzeit istX-Forwarded-For
der unterstützte Headerwert.ipHeaderIndex
ist der Indexwert inipHeaderName
.
Mit einer positiven Zahl wird eine Adresse von links ausgewählt (die erste Adresse, die dem Header hinzugefügt wird). Die erste Position links ist0
und erhöht sich bei jeder nachfolgenden Adresse um eins (z. B.0, 1, 2
). Wenn die Liste beispielsweise192.0.2.1, 192.0.2.2, 192.0.2.3
lautet, wird mit dem Index1
192.0.2.2
ermittelt.
Mit einer negativen Zahl wird eine Adresse von rechts ausgewählt (die letzte Adresse, die dem Header hinzugefügt wurde). Die erste Position rechts ist-1
und verringert sich bei jeder nachfolgenden Adresse um eins (z. B.-3, -2, -1
). Wenn die Liste beispielsweise192.0.2.1, 192.0.2.2, 192.0.2.3, 192.0.2.4
lautet, wird der Index-1
in192.0.2.4
und der Index-2
in192.0.2.3
umgewandelt.
Weitere Informationen zu dieser Einstellung finden Sie in der organizations.environment API.
Konfigurationen für die Client-IP-Auflösung ansehen
Sie können die aktuelle Konfiguration der Client-IP-Auflösung für eine Umgebung entweder über die Apigee-Benutzeroberfläche oder über die Verwaltungs-APIs aufrufen.
Konfiguration der Client-IP-Auflösung über die Benutzeroberfläche aufrufen
Wenn Sie die Einstellung für die Client-IP-Auflösung über die Apigee-Benutzeroberfläche in der Cloud Console aufrufen möchten, wählen Sie Verwaltung > Umgebungen aus, wählen Sie die Umgebung aus und sehen Sie sich die Client-IP-Konfiguration auf dem Tab Info an.
Konfiguration der Client-IP-Auflösung mit der API aufrufen
Wenn Sie die Konfiguration der Client-IP-Auflösung mit den Apigee Management APIs aufrufen möchten, senden Sie eine Anfrage an die organizations.environments.get API.
Client-IP-Auflösung für eine Umgebung festlegen
Nachdem Sie die Konfiguration der Client-IP-Auflösung für eine Umgebung festgelegt haben, wird die Flussvariable client.resolved.ip
mit dem angegebenen Algorithmus ausgefüllt. Das gilt auch für die Resolved Client IP
Analytics-Dimension.
Nachdem Sie die Konfiguration der Client-IP-Auflösung für eine Umgebung festgelegt haben, können sich die Änderungen auf vorhandene Konfigurationen der erweiterten API-Sicherheit für Sicherheitsaktionsregeln auswirken. Prüfen Sie die vorhandenen Regeln und generieren Sie sie bei Bedarf neu, damit die neuen Variablen und Einstellungen verwendet werden.
Beachten Sie die folgenden Auswirkungen, wenn Sie den Index für die Auflösung der Client-IP auswählen:
- Apigee-zu-Apigee-Aufrufe werden nicht als Sonderfall behandelt. Notieren Sie sich die Anzahl der IP-Adressen und überspringen Sie sie entsprechend.
- Da der X-Forwarded-For-Header gefälscht werden kann, sollten Sie den richtigen Index basierend auf der Anzahl der erwarteten Hops zwischen dem Client und dem Apigee-Load Balancer verwenden. Ein böswilliger Nutzer kann einen vorab ausgefüllten X-Forwarded-For-Header senden. Die erste IP in XFF ist der tatsächlichen Client-IP am nächsten, die letzte IP in XFF ist jedoch am zuverlässigsten, da der Load Balancer den TCP-Client kennt, der mit ihm verbunden ist.
Wenn Sie die Client-IP-Auflösung für eine Umgebung festlegen möchten, verwenden Sie eine der Apigee API Management APIs, um die Client-IP-Auflösung für die Umgebung in der client_ip_resolution_config
festzulegen.
Verwenden Sie organizations.environments.create für neue Umgebungen. Verwenden Sie updateEnvironment oder modifyEnvironment für vorhandene Umgebungen.
Auflösung der Client-IP-Adresse testen
Nachdem Sie eine neue Client-IP-Konfiguration gespeichert haben, können Sie sie testen. Gehen Sie dazu so vor:
- Warten Sie nach dem Speichern einer neuen Konfigurationseinstellung mindestens 5 Minuten.
- Starten Sie eine Debug-Sitzung. Aktivieren Sie die Einstellung Alle FlowInfos anzeigen.
- Prüfen Sie die FlowInfo kurz vor Proxy Request Flow Started. In diesem Bereich sollte die konfigurierte Client-IP-Adresse angezeigt werden.
Suchen Sie in der FlowInfo nach diesen Variablen:
client_ip_resolution.resolved.ip
: Die aufgelöste Client-IP-Adresse.client_ip_resolution.used.fallback
: Boolesch. Dieser Wert istfalse
, es sei denn, Apigee hat auf die Standard-Client-IP-Auflösung zurückgegriffen, weil eine konfigurierte Client-IP-Auflösung nicht verwendet werden konnte. Beispiel: In der konfigurierten Auflösung wird ein Index angegeben, der im Header nicht vorhanden ist.client_ip_resolution.algorithm
: Der Algorithmus, mit dem die Client-IP-Adresse ermittelt wird. Wenn konfiguriert, ist das"HeaderIndexAlgorithm{IpHeaderName:header_name, IpHeaderIndex: $header_index}"
. Andernfalls wirddefault
angezeigt.
Beschränkungen
Für die Client-IP-Auflösung auf Umgebungsebene gelten die folgenden Einschränkungen:
- Es kann bis zu 5 Minuten dauern, bis Änderungen an den Konfigurationen für die Client-IP-Auflösung wirksam werden.
- Vermeiden Sie häufige Änderungen (z. B. alle 5 Minuten) an der Konfiguration der Client-IP-Auflösung, da dies zu Leistungseinbußen führen kann.
- Die Konfiguration der Client-IP-Auflösung für eine Umgebung ist mit Apigee Hybrid derzeit nicht verfügbar.
- Die Konfiguration kann über die Apigee Console oder API aufgerufen, aber nur über die API festgelegt werden.
- Auch wenn keine böswilligen Nutzer vorhanden sind, muss jeder Proxy der Liste X-Forwarded-For die richtigen Informationen hinzufügen. Diese vollständige Liste liegt außerhalb der Kontrolle von Apigee. Die Konfiguration der Client-IP-Auflösung ist daher keine Garantie dafür, dass die richtige IP-Adresse der Anfrage ermittelt wird.