Wyświetlasz dokumentację Apigee Edge.
Przejdź do
dokumentacji Apigee X. info
Jak uzyskać klucz interfejsu API
Poniższy przykład pokazuje, jak uzyskać klucz interfejsu API, którego możesz użyć do weryfikowania wywołań interfejsu API do usługi docelowej obsługiwanej przez Apigee Adapter for Envoy.
1. Zaloguj się w Apigee
- Otwórz interfejs Apigee w przeglądarce.
- Gdy otworzysz interfejs, wybierz tę samą organizację, której używasz do konfigurowania Apigee Adapter for Envoy.
2. Tworzenie programisty
Do testowania możesz użyć istniejącego programisty lub utworzyć nowego w ten sposób:
- W menu nawigacyjnym po lewej stronie wybierz Opublikuj > Programiści.
- Kliknij + Programista.
- Wypełnij okno, aby utworzyć nowego programistę. Możesz użyć dowolnej nazwy programisty lub adresu e-mail.
3. Tworzenie usługi API
Postępuj zgodnie z przykładem tworzenia usługi podanym poniżej. Zobacz też Informacje o konfiguracji usługi API.
- W menu nawigacyjnym po lewej stronie wybierz Opublikuj > Usługi API.
- Kliknij + Usługa API.
- Wypełnij stronę Szczegóły usługi w ten sposób. Nie klikaj Zapisz , dopóki nie otrzymasz takiej instrukcji.
- W sekcji Cele usługi zdalnej Apigee kliknij Dodaj cel usługi zdalnej Apigee.
- W oknie celu usługi zdalnej Apigee dodaj te wartości:
Atrybut Wartość Opis Nazwa celu Wpisz nazwę usługi docelowej. Na przykład: httpbin.orgPunkt końcowy celu, który jest obsługiwany przez serwer proxy Envoy. Serwer proxy interfejsu API remote-serviceSerwer proxy remote-service, który został udostępniony w Apigee podczas instalacji Envoy Adapter.Ścieżka Wpisz /resource_path, aby dopasować konkretną ścieżkę. Na przykład:/httpbin.Ścieżka żądania, która ma być dopasowana do punktu końcowego celu. Wywołania serwera proxy interfejsu API do tej ścieżki będą pasować do tej usługi API. Edge Public lub Private Cloud: Zrzut ekranu poniżej przedstawia prawidłowo skonfigurowane ustawienia okna celu
httpbin.org, odpowiednią konfigurację dla Apigee Edge Public lub Private Cloud.
- Kliknij Zapisz.
| Pole | Wartość |
|---|---|
| Nazwa | httpbin-product
|
| Wyświetlana nazwa | httpbin product
|
| środowisko. | your_environment
Ustaw to na środowisko, którego używasz podczas udostępniania Apigee Adapter for Envoy za pomocą
the |
| Dostęp | Private
|
| Quota | 5 żądań co 1 minutę
Zobacz też Informacje o limitach. |
4. Tworzenie aplikacji związanej z programistą
- W menu nawigacyjnym po lewej stronie wybierz Opublikuj > Aplikacje.
- Kliknij + Aplikacja.
- Wypełnij stronę Aplikacja dewelopera w ten sposób. Nie klikaj Zapisz, dopóki nie otrzymasz takiej instrukcji.
- Następnie dodaj do aplikacji 2 usługi:
- Najpierw w sekcji Dane logowania kliknij + Dodaj usługę i wybierz usługę, którą właśnie skonfigurowano: httpbin-product.
- Następnie dodaj usługę remote-service. Ta usługa została utworzona automatycznie podczas udostępniania Apigee.
- Kliknij Utwórz.
- W sekcji Dane logowania kliknij Pokaż obok Klucz.
- Skopiuj wartość klucza klienta. Ta wartość to klucz interfejsu API , którego będziesz używać do wywoływania interfejsu API usługi
httpbin.
| Nazwa | httpbin-app
|
| Wyświetlana nazwa | httpbin app
|
| Dla programistów | Wybierz programistę utworzonego wcześniej lub dowolnego programistę z listy. |
Informacje o usługach API
Usługi API są głównym punktem kontroli usługi zdalnej Apigee. Gdy utworzysz usługę API i powiążesz ją z usługą docelową, utworzysz zasadę, która będzie stosowana do wszystkich żądań, które skonfigurujesz w Apigee Adapter for Envoy do obsługi.
Definicja usługi API
Podczas definiowania usługi API w Apigee możesz ustawić kilka parametrów, które będą używane do oceny żądań:
- Cel
- Ścieżka żądania
- Quota
- Zakresy protokołu OAuth
Cele usługi zdalnej
Definicja usługi API będzie stosowana do żądania, jeśli żądanie będzie pasować zarówno do powiązania z celem (np. httpbin.org), jak i do ścieżki żądania (np. /httpbin).
Lista potencjalnych celów jest przechowywana jako atrybut usługi API.
Domyślnie usługa zdalna Apigee sprawdza specjalny nagłówek Envoy :authority (host) na liście celów
, ale można ją skonfigurować tak, aby używała innych nagłówków.
Ścieżka zasobu interfejsu API
Wpisana ścieżka jest dopasowywana zgodnie z tymi regułami:
- Pojedynczy ukośnik (
/) pasuje do każdej ścieżki. *jest prawidłowy w dowolnym miejscu i pasuje w segmencie (między ukośnikami).**jest prawidłowy na końcu i pasuje do wszystkiego do końca wiersza.
Quota
Limit określa liczbę żądań, które aplikacja może wysłać do interfejsu API w ciągu godziny, dnia, tygodnia lub miesiąca. Gdy aplikacja osiągnie limit, kolejne wywołania interfejsu API zostaną odrzucone.
Przypadki użycia limituLimity pozwalają egzekwować liczbę żądań, które klient może wysłać do usługi w określonym czasie. Limity są często używane do egzekwowania umów handlowych lub umów SLA z programistami i partnerami, a nie do zarządzania ruchem operacyjnym. Na przykład limit może być używany do ograniczania ruchu w przypadku bezpłatnej usługi, a jednocześnie umożliwiać pełny dostęp dla płacącym klientom.
Limit jest zdefiniowany w usłudze APIParametry limitu są konfigurowane w usługach API. Na przykład podczas tworzenia usługi API możesz opcjonalnie ustawić dozwolony limit, jednostkę czasu i interwał.
Ponieważ klucze interfejsu API są powiązane z usługami API, za każdym razem, gdy klucz interfejsu API zostanie zweryfikowany, odpowiedni licznik limitu może zostać zmniejszony (jeśli limit jest zdefiniowany w powiązanej usłudze).
W przeciwieństwie do środowiska wykonawczego Apigee limity wpisane w definicji usługi są automatycznie egzekwowane przez usługę zdalną Apigee. Jeśli żądanie zostanie autoryzowane, zostanie ono uwzględnione w dozwolonym limicie.
Gdzie są utrzymywane limityLimity są utrzymywane i sprawdzane lokalnie przez proces usługi zdalnej oraz asynchronicznie utrzymywane w środowisku wykonawczym Apigee. Oznacza to, że limity nie są dokładne i mogą zostać przekroczone, jeśli masz więcej niż 1 usługę zdalną, która utrzymuje limit. Jeśli połączenie ze środowiskiem wykonawczym Apigee zostanie przerwane, limit lokalny będzie nadal obowiązywać jako samodzielny limit do momentu, aż będzie można ponownie połączyć się ze środowiskiem wykonawczym Apigee.
Zakresy protokołu OAuth
Jeśli używasz tokenów JWT, możesz ograniczyć tokeny do podzbiorów dozwolonych zakresów protokołu OAuth. Zakresy przypisane do wydanego tokena JWT będą sprawdzane pod kątem zakresów usługi API.
Informacje o aplikacjach dewelopera
Po skonfigurowaniu usług API utworzysz aplikację powiązaną z programistą. Aplikacja umożliwia klientowi dostęp do powiązanych usług API za pomocą klucza interfejsu API lub tokena JWT.
Używanie uwierzytelniania opartego na tokenach JWT
Zamiast klucza interfejsu API możesz użyć tokena JWT do wykonywania uwierzytelnionych wywołań serwera proxy interfejsu API. W tej
sekcji wyjaśniamy, jak używać polecenia apigee-remote-service-cli token do
tworzenia, sprawdzania i rotowania tokenów JWT.
Przegląd
Weryfikacja i uwierzytelnianie tokenów JWT jest obsługiwane przez Envoy za pomocą filtra uwierzytelniania JWT .
Po uwierzytelnieniu filtr Envoy ext-authz wysyła nagłówki żądań i token JWT do
apigee-remote-service-envoy. Dopasowuje roszczenia api_product_list i scope tokena JWT
do usług API Apigee, aby autoryzować je w stosunku do celu żądania.
Tworzenie tokenów JWT Apigee
Tokeny JWT Apigee można tworzyć za pomocą interfejsu wiersza poleceń:
apigee-remote-service-cli token create -c config.yaml --id $KEY --secret $SECRET
Lub za pomocą standardowego punktu końcowego tokena OAuth. Przykład z wykorzystaniem curl:
curl https://org-env.apigee.net/remote-service/token -d '{"client_id":"myclientid","client_secret":"myclientsecret","grant_type":"client_credentials"}' -H "Content-type: application/json"Używanie tokena JWT
Gdy masz token, po prostu przekaż go do Envoy w nagłówku Authorization. Przykład:
curl localhost:8080/httpbin/headers -i -H "Authorization:Bearer $TOKEN"
Błąd tokena JWT
Odrzucenie przez Envoy
Jeśli Envoy odrzuci token, może się pojawić komunikat podobny do tego:
Jwks remote fetch is failed
Jeśli tak się stanie, upewnij się, że konfiguracja Envoy zawiera prawidłowy identyfikator URI w sekcji
remote_jwks, że jest on dostępny dla Envoy oraz że podczas instalowania serwera proxy Apigee prawidłowo
ustawiono certyfikaty. Powinno być możliwe
bezpośrednie wywołanie identyfikatora URI za pomocą wywołania GET i otrzymanie prawidłowej odpowiedzi JSON.
Przykład:
curl https://myorg-eval-test.apigee.net/remote-service/certs
Inne komunikaty z Envoy mogą wyglądać tak:
- „Audiences in Jwt are not allowed” (Odbiorcy w JWT są niedozwoleni)
- „Jwt issuer is not configured” (Wystawca JWT nie jest skonfigurowany)
Wynikają one z wymagań w konfiguracji Envoy, które mogą wymagać modyfikacji.
Sprawdzanie tokena
Do sprawdzenia tokena możesz użyć interfejsu wiersza poleceń. Przykład
apigee-remote-service-cli -c config.yaml token inspect -f path/to/file
lub
apigee-remote-service-cli -c config.yaml token inspect <<< $TOKEN
Debugowanie
Zobacz Prawidłowy klucz interfejsu API nie działa.Logowanie
Poziom rejestrowania możesz dostosować w usłudze $REMOTE_SERVICE_HOME/apigee-remote-service-envoy. Całe rejestrowanie jest wysyłane do stderr.
| Element | Wymagane | Opis |
|---|---|---|
| -l, --log-level | Prawidłowe poziomy: debug, info, warn, error. | Dostosowuje poziom rejestrowania. Domyślnie: info |
| -j, --json-log | Emituje dane wyjściowe logu jako rekordy JSON. |
Envoy zapewnia rejestrowanie. Więcej informacji znajdziesz w tych linkach do dokumentacji Envoy:
Korzystanie z sieciowego serwera proxy
Serwer proxy HTTP można wstawić za pomocą zmiennych środowiskowych HTTP_PROXY i HTTPS_PROXY w środowisku pliku binarnego apigee-remote-service-envoy. W przypadku korzystania z tych zmiennych można też użyć zmiennej środowiskowej NO_PROXY, aby wykluczyć określone hosty z wysyłania przez serwer proxy.
HTTP_PROXY=http://[user]:[pass]@[proxy_ip]:[proxy_port] HTTPS_PROXY=http://[user]:[pass]@[proxy_ip]:[proxy_port] NO_PROXY=127.0.0.1,localhost
Pamiętaj, że serwer proxy musi być dostępny z poziomu apigee-remote-service-envoy.
Informacje o danych i analizach
Punkt końcowy danych Prometheus jest dostępny pod adresem :5001/metrics. Możesz skonfigurować ten numer portu. Zobacz Plik konfiguracyjny.
Dane Envoy
Poniższe linki zawierają informacje o uzyskiwaniu danych z serwera proxy Envoy:
Dane Istio
Poniższe linki zawierają informacje o uzyskiwaniu danych z serwera proxy Envoy:
Dane Apigee
Usługa zdalna Apigee dla Envoy wysyła statystyki żądań do Apigee w celu przetworzenia danych. Apigee raportuje te żądania pod powiązaną nazwą usługi API.
Więcej informacji o danych Apigee znajdziesz w artykule Omówienie usług analitycznych.