Przeglądasz dokumentację Apigee Edge.
Otwórz dokumentację Apigee X. Informacje
Krótki opis problemu
Śledzenie interfejsu API w interfejsie Edge dla chmury prywatnej zawiera odpowiedź HTTP 304 w kolumnie Stan okna śledzenia:
Komunikaty o błędach
Nie ma komunikatów o błędach – wywołanie serwera proxy interfejsu API zwraca odpowiedź o powodzeniu, np. HTTP 200. Jednak w oknie śledzenia w interfejsie użytkownika Edge wyświetla się odpowiedź HTTP 304 i nie są zbierane żadne dane śledzenia.
Możliwe przyczyny
W Edge dla chmury prywatnej interfejs Edge próbuje śledzić serwer proxy interfejsu API, do którego uzyskano dostęp przez prywatny adres IP.
Narzędzie do śledzenia w interfejsie użytkownika Edge ma możliwość wysłania żądania do interfejsu API na dowolny adres URL. W scenariuszu wdrożenia, gdy interfejs użytkownika Edge jest współhostowany z innymi usługami wewnętrznymi, złośliwy użytkownik może niewłaściwie używać narzędzia do śledzenia, aby wysyłać żądania do usług za pomocą prywatnego adresu IP, takiego jak localhost lub 127.0.0.1.
W środowisku produkcyjnym zazwyczaj pozostawiasz domyślne ustawienie, aby uniemożliwić użytkownikom śledzenie prywatnego adresu IP. W ten sposób jest na przykład wdrażana publiczna wersja interfejsu użytkownika Edge.
W przypadku wewnętrznego środowiska programistycznego lub testowego możesz jednak zastąpić to ustawienie domyślne, aby umożliwić deweloperom korzystającym z interfejsu API śledzenie dowolnych adresów IP. Zwykle środowisko programistyczne/testowe znajduje się za zaporą sieciową, która nie zezwala na dostęp publiczny.
Uwaga: sprawdzoną metodą jest pozostawienie wartości domyślnej bez zmian, aby uniemożliwić dostęp do prywatnych adresów IP nawet w środowisku programistycznym lub testowym, chyba że musisz to zrobić.
Przyczyna: próba uzyskania dostępu do serwera proxy interfejsu API za pomocą prywatnego adresu IP
Domyślnie interfejs Edge dla Edge dla chmury prywatnej uniemożliwia użytkownikom śledzenie wywołań interfejsu API wykonywanych z użyciem prywatnych adresów IP. Lista prywatnych adresów IP zawiera:
- Adres sprzężenia zwrotnego (127.0.0.1 lub localhost)
- Adresy lokalne w witrynie (dla IPv4 – 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16)
- Dowolny adres lokalny (dowolny adres lokalny)
Na przykład to polecenie curl wywołuje serwer proxy interfejsu API, używając adresu IP 127.0.0.1, który jest uznawany za prywatny adres IP:
curl http://127.0.0.1:9001/myapiproxy
W oknie śledzenia tego wywołania widzisz odpowiedź HTTP 304, nawet jeśli polecenie curl zwróciło błąd.
Rozdzielczość
Aby włączyć w interfejsie użytkownika Edge śledzenie prywatnych adresów IP na potrzeby chmury prywatnej, ustaw ten token w ui.properties
:
conf_apigee-base_apigee.feature.enabletraceforinternaladdresses="true"
Aby ustawić tę właściwość:
- Otwórz plik
ui.properties
w edytorze. Jeśli plik nie istnieje, utwórz go.
vi /opt/apigee/customer/application/ui.properties
- Ustaw wartość „true” dla tych właściwości:
conf_apigee-base_apigee.feature.enabletraceforinternaladdresses="true"
- Zapisz zmiany w usłudze
ui.properties
. - Upewnij się, że plik właściwości należy do użytkownika „apigee”:
chown apigee:apigee /opt/apigee/customer/application/ui.properties
- Ponownie uruchom interfejs Edge:
/opt/apigee/apigee-service/bin/apigee-service edge-ui restart
Interfejs użytkownika Edge ma teraz dostęp do prywatnych adresów IP w narzędziu do śledzenia.
Aby później wyłączyć w interfejsie użytkownika śledzenie żądań przez prywatne adresy IP, edytuj ui.properties
i ustaw właściwość false
, a następnie ponownie uruchom interfejs Edge.
Powiązane dokumenty (opcjonalnie)
Więcej informacji znajdziesz w artykule na temat zezwalania na dostęp interfejsu Edge do lokalnych adresów IP.