Przeglądasz dokumentację Apigee Edge.
Przejdź do
Dokumentacja Apigee X. informacje.
Jak uzyskać klucz interfejsu API
Przykład poniżej wyjaśnia, jak uzyskać klucz interfejsu API, którego można użyć do weryfikacji Wywołania interfejsu API usługi docelowej przesyłanej przez serwer proxy za pomocą adaptera Apigee dla Envoy.
1. Zaloguj się w Apigee
- Otwórz interfejs Apigee w przeglądarce.
- Po zalogowaniu się do interfejsu wybierz tę samą organizację, która została użyta do skonfigurowania adaptera Apigee dla Envoy.
2. Tworzenie programisty
Do testowania możesz użyć dotychczasowego programisty lub utworzyć nowy:
- Kliknij Opublikuj > Programistów w bocznym menu nawigacyjnym.
- Kliknij + Deweloper.
- Wypełnij informacje w oknie, aby utworzyć nowego dewelopera. Możesz użyć dowolnej nazwy lub adresu e-mail dewelopera.
3. Tworzenie usługi API
Skorzystaj z podanego niżej przykładu tworzenia produktu. Zobacz też Informacje o programie Konfiguracja usługi API.
- Kliknij Opublikuj > Usługi API w bocznym menu nawigacyjnym.
- Kliknij + Usługa API.
- Wypełnij stronę Szczegóły produktu w następujący sposób. Nie klikaj Zapisz, dopóki nie pojawi się taka prośba.
- W sekcji Cele usługi zdalnej Apigee kliknij Dodaj zdalny cel usługi 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.org
Docelowy punkt końcowy przed serwerem proxy Envoy. Serwer proxy interfejsu API remote-service
Serwer proxy remote-service
, który został udostępniony w Apigee podczas instalacji adaptera Envoy.Ścieżka Wpisz /resource_path
, aby dopasować do konkretnej ścieżki. Dla: przykład:/httpbin
.Ścieżka żądania do dopasowania w docelowym punkcie końcowym. Wywołania tej ścieżki przez serwer proxy interfejsu API będzie pasować do tej usługi API. Edge Public Cloud lub Private Cloud: na zrzucie ekranu poniżej widać prawidłowo skonfigurowane ustawienia okna dialogowego Cel:
httpbin.org
, odpowiednia konfiguracja chmury publicznej lub prywatnej Apigee Edge. - Kliknij Zapisz.
Pole | Wartość |
---|---|
Nazwa | httpbin-product
|
Wyświetlana nazwa | httpbin product
|
Środowisko | your_environment
Ustaw w tym miejscu środowisko użyte podczas udostępniania adaptera Apigee dla Envoy za pomocą
|
Dostęp | Private
|
Limit | 5 żądań co minutę
Zapoznaj się też z artykułem Omówienie limitów. |
4. Tworzenie aplikacji związanej z programistą
- Kliknij Opublikuj > Aplikacje w bocznym menu nawigacyjnym.
- Kliknij + Aplikacja.
- Wypełnij informacje na stronie dewelopera aplikacji w następujący sposób. Nie zapisuj karty, dopóki nie pojawi się taka prośba.
- Następnie dodaj 2 produkty do aplikacji:
- Najpierw w sekcji Dane logowania kliknij + Dodaj usługę i wybierz usługę, której chcesz użyć. skonfigurowano: httpbin-product.
- Następnie dodaj usługę usługa zdalna. Utworzono ten produkt automatycznie po udostępnieniu Apigee.
- Kliknij Utwórz.
- W sekcji Dane logowania kliknij Pokaż obok opcji Klucz.
- Skopiuj wartość klucza klienta. Ta wartość to klucz interfejsu API.
którego będziesz używać do wywoływania interfejsu API w usłudze
httpbin
.
Nazwa | httpbin-app
|
Wyświetlana nazwa | httpbin app
|
Deweloper | Wybierz wcześniej utworzonego programistę lub wybierz dowolnego z listy. |
Usługi API
Usługi API są głównymi elementami sterującymi dla usługi zdalnej Apigee. Gdy utworzysz usługę API i powiążesz ją z docelowej usługi, tworzysz zasadę, która będzie zastosowano do wszystkich żądań, które skonfigurujesz adapter Apigee dla Envoy się nią zająć.
Definicja usługi API
Definiując usługę API w Apigee, możesz ustawić liczbę parametrów, posłuży do oceny próśb:
- Cel
- Ścieżka żądania
- Limit
- Zakresy protokołu OAuth
Zdalne cele usługi
Definicja usługi API zostanie zastosowana do żądania, jeśli żądanie pasuje zarówno do
powiązanie (np. httpbin.org
) i ścieżkę żądania (np. /httpbin
).
Lista potencjalnych celów jest przechowywana jako atrybut na
Usługa API.
Domyślnie usługa zdalna Apigee sprawdza specjalny nagłówek :authority (host)
Envoy
jej listę celów; ale można go skonfigurować tak, by korzystały z innych nagłówków.
Ścieżka zasobu API
Podana ścieżka pasuje zgodnie z tymi regułami:
- Pojedynczy ukośnik (
/
) pasuje do dowolnej ścieżki. - Parametr
*
działa w dowolnym miejscu i zapewnia dopasowanie w obrębie segmentu (między ukośnikami). - Parametr
**
jest prawidłowy na końcu i dopasowuje wszystko do końca wiersza.
Limit
Limit określa liczbę wiadomości z żądaniami, które aplikacja może przesłać do interfejsu API w ciągu godziny, dnia, tygodnia lub miesiąca. Gdy aplikacja osiągnie limit, będą odrzucane.
Przypadki użycia limitówLimity pozwalają wymusić liczbę żądań, które klient może wysłać do usługi w w określonym czasie. Limity są często używane do egzekwowania umów biznesowych lub gwarancji jakości usług w programistów i partnerów, a nie do operacyjnego zarządzania ruchem. Na przykład plik limit ten można wykorzystać do ograniczenia ruchu dla usługi bezpłatnej, jednocześnie zapewniając pełny dostęp płacących klientów.
Limit jest zdefiniowany w usłudze APIParametry limitów konfiguruje się w usługach API. Jeśli na przykład tworzysz interfejs API, usługi, możesz opcjonalnie ustawić dozwolony limit, jednostkę czasu i interwał.
Klucze interfejsu API mapują się z powrotem na usługi API, dlatego przy każdym weryfikowaniu klucza interfejsu API odpowiedni licznik limitu można zmniejszyć (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 wyegzekwowane przez usługę zdalną Apigee. Jeśli żądanie jest autoryzowane, żądanie jest wliczane do dozwolonego limitu.
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ą precyzyjne i prawdopodobnie może zostać przekroczony, jeśli masz więcej niż jedną usługę zdalną, która utrzymuje limit. Jeśli połączenie ze środowiskiem wykonawczym Apigee zostanie zakłócone, limit lokalny będzie kontynuowany jako samodzielny do tego czasu, aby mógł ponownie połączyć się ze środowiskiem wykonawczym Apigee.
Zakresy OAuth
Jeśli używasz tokenów JWT, możesz je ograniczyć do podzbiorów dozwolonych zakresów protokołu OAuth. Zakresy przypisane do wydanego tokena JWT zostaną sprawdzone pod kątem zakresów usługi API.
Informacje o aplikacjach dla programistów
Po skonfigurowaniu usług API utwórz 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.
Korzystanie z uwierzytelniania opartego na JWT
Zamiast klucza interfejsu API możesz używać tokena JWT do wykonywania uwierzytelnionych wywołań serwera proxy interfejsu API. Ten
wyjaśnia, jak używać polecenia apigee-remote-service-cli token
do
tworzenia, sprawdzania i rotacji tokenów JWT.
Omówienie
Weryfikacja i uwierzytelnianie JWT jest obsługiwane przez Envoy za pomocą interfejsu Filtr uwierzytelniania JWT.
Po uwierzytelnieniu filtr Envoy ext-authz
wysyła nagłówki żądań i token JWT do
apigee-remote-service-envoy
Jest zgodny z żądaniami api_product_list
i scope
tokena JWT
z usługami Apigee API, aby autoryzować ją pod kątem celu żądania.
Tworzenie tokenów JWT Apigee
Tokeny JWT Apigee można utworzyć za pomocą interfejsu wiersza poleceń:
apigee-remote-service-cli token create -c config.yaml --id $KEY --secret $SECRET
Możesz też użyć standardowego punktu końcowego tokena OAuth. Przykład strony 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życie tokena JWT
Po uzyskaniu tokena należy po prostu przekazać go do Envoy w nagłówku autoryzacji. Przykład:
curl localhost:8080/httpbin/headers -i -H "Authorization:Bearer $TOKEN"
Błąd tokena JWT
Odrzucenie posłańca
Jeśli Envoy odrzuci token, możesz zobaczyć taki komunikat:
Jwks remote fetch is failed
Jeśli tak, upewnij się, że konfiguracja Envoy zawiera prawidłowy identyfikator URI w
remote_jwks
, dostęp do niej przez Envoy oraz prawidłowe
ustawić certyfikaty podczas instalowania serwera proxy Apigee. Powinniście być w stanie
, aby bezpośrednio wywołać identyfikator URI za pomocą wywołania GET i otrzymać prawidłową odpowiedź JSON.
Przykład:
curl https://myorg-eval-test.apigee.net/remote-service/certs
Inne wiadomości z Envoy mogą wyglądać tak:
- „Odbiorcy w języku japońskim nie są dozwoleni”
- „Wystawca JWT nie został skonfigurowany”
Te wyniki pochodzą z wymagań w konfiguracji Envoy, które być może musisz zmodyfikować.
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
Patrz sekcja Awaria prawidłowego klucza interfejsu API.Logowanie
Poziom rejestrowania możesz dostosować w usłudze $REMOTE_SERVICE_HOME/apigee-remote-service-envoy. Całe logowanie jest wysyłane do stderr.
Element | Wymagane | Opis |
---|---|---|
-l, --poziom-logu | Prawidłowe poziomy: debugowanie, informacje, ostrzeżenie, błąd. | Dostosowuje poziom rejestrowania. Domyślnie: informacje |
-j, --json-log | Wysyła dane wyjściowe logu jako rekordy JSON. |
Envoy zapewnia logowanie. 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. Przy ich użyciu NO_PROXY zmiennej środowiskowej może też używać do wykluczania określonych hostów z możliwości wysyłania ich 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ć osiągalny z poziomu apigee-remote-service-envoy.
Informacje o wskaźnikach i statystykach
Punkt końcowy wskaźników Prometheus jest dostępny w :5001/metrics
. Możesz skonfigurować
ten numer portu. Patrz: Plik konfiguracji.
Statystyki Envoy
Poniższe linki zawierają informacje o uzyskiwaniu analizy serwera proxy Envoy dane:
Analityka Istio
Poniższe linki zawierają informacje o uzyskiwaniu analizy serwera proxy Envoy dane:
Analityka Apigee
Usługa zdalna Apigee dla Envoy wysyła statystyki żądań do Apigee na potrzeby przetwarzania analiz. Apigee zgłasza te żądania pod powiązaną nazwą usługi API.
Informacje o statystykach Apigee znajdziesz zobacz omówienie usług Analytics.