HTTP 304-Antwort in Trace-Sitzung

Sie sehen die Dokumentation zu Apigee Edge.
Zur Apigee X-Dokumentation
weitere Informationen

Symptom

Wenn Sie in Edge für die Private Cloud eine API in der Edge-Benutzeroberfläche verfolgen, sehen Sie in der Spalte Status des Trace-Fensters eine HTTP 304-Antwort:

Fehlermeldungen

Es werden keine Fehlermeldungen angezeigt. Der API-Proxy-Aufruf gibt tatsächlich eine Erfolgsantwort zurück, z. B. den HTTP-Fehler 200. Das Trace-Fenster in der Edge-Benutzeroberfläche zeigt jedoch eine HTTP 304-Antwort an und es werden keine Trace-Daten erfasst.

Mögliche Ursachen

In Edge für die Private Cloud versucht die Edge-Benutzeroberfläche, einen API-Proxy zu verfolgen, auf den über eine private IP-Adresse zugegriffen wird.

Das Trace-Tool in der Edge-Benutzeroberfläche kann eine API-Anfrage an eine beliebige URL senden. In einem Bereitstellungsszenario, in dem die Edge-Benutzeroberfläche zusammen mit anderen internen Diensten gehostet wird, kann ein böswilliger Nutzer das Trace-Tool missbrauchen, um Anfragen an Dienste über eine private IP-Adresse wie localhost oder 127.0.0.1 zu senden.

In einer Produktionsumgebung übernehmen Sie normalerweise die Standardeinstellung, um zu verhindern, dass Nutzer eine private IP-Adresse verfolgen können. So wird beispielsweise die öffentliche Version der Edge-UI bereitgestellt.

In einer internen Entwicklungs- oder Testumgebung können Sie diese Standardeinstellung jedoch überschreiben, damit Ihre API-Entwickler jede IP-Adresse verfolgen können. In der Regel befindet sich eine Entwicklungs-/Testumgebung hinter einer Firewall, die keinen öffentlichen Zugriff zulässt.

Hinweis : Als Best Practice sollten Sie die Standardeinstellung unverändert lassen, um den Trace-Zugriff auf private IP-Adressen auch in einer Entwicklungs-/Testumgebung zu verhindern, es sei denn, Sie müssen sie aktivieren.

Ursache: Versuch, über eine private IP-Adresse auf einen API-Proxy zuzugreifen

Standardmäßig hindert die Edge-Benutzeroberfläche für Edge für die Private Cloud Benutzer daran, API-Aufrufe über private IP-Adressen nachzuverfolgen. Die Liste der privaten IP-Adressen umfasst:

  • Loopback-Adresse (127.0.0.1 oder localhost)
  • Lokale Adressen (für IPv4 – 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16)
  • Beliebige lokale Adresse (alle Adressen, die zu localhost aufgelöst werden)

Mit dem folgenden curl-Befehl wird beispielsweise ein API-Proxy aufgerufen. Dabei wird die IP-Adresse 127.0.0.1 verwendet, die als private IP-Adresse gilt:

curl http://127.0.0.1:9001/myapiproxy

Im Trace-Fenster für diesen Aufruf wird eine HTTP 304-Antwort angezeigt, auch wenn der Befehl „curl“ erfolgreich zurückgegeben hat.

Auflösung

Legen Sie das folgende Token in ui.properties fest, damit die Edge-Benutzeroberfläche private IP-Adressen für Edge für die Private Cloud verfolgen kann:

conf_apigee-base_apigee.feature.enabletraceforinternaladdresses="true"

So legen Sie diese Eigenschaft fest:

  1. Öffnen Sie die Datei ui.properties in einem Editor. Wenn die Datei nicht vorhanden ist, erstellen Sie sie.
    vi /opt/apigee/customer/application/ui.properties
  2. Legen Sie die folgenden Attribute auf „true“ fest:
    conf_apigee-base_apigee.feature.enabletraceforinternaladdresses="true"
  3. Speichern Sie die Änderungen in ui.properties.
  4. Achten Sie darauf, dass die Attributdatei dem Nutzer „apigee“ gehört:
    chown apigee:apigee /opt/apigee/customer/application/ui.properties
  5. Starten Sie die Edge-Benutzeroberfläche neu:
    /opt/apigee/apigee-service/bin/apigee-service edge-ui restart

Die Edge-Benutzeroberfläche kann jetzt auf private IP-Adressen im Trace-Tool zugreifen.

Wenn Sie das Tracing von Anfragen über private IP-Adressen der UI später deaktivieren möchten, bearbeiten Sie ui.properties, um das Attribut auf false festzulegen, und starten Sie dann die Edge-UI neu.

Weitere Informationen finden Sie unter Zugriff der Edge-Benutzeroberfläche auf lokale IP-Adressen zulassen.