Przewodnik po korzystaniu

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

  1. Otwórz interfejs Apigee w przeglądarce.
  2. 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:

  1. Kliknij Opublikuj > Programistów w bocznym menu nawigacyjnym.
  2. Kliknij + Deweloper.
  3. 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.

  1. Kliknij Opublikuj > Usługi API w bocznym menu nawigacyjnym.
  2. Kliknij + Usługa API.
  3. Wypełnij stronę Szczegóły produktu w następujący sposób. Nie klikaj Zapisz, dopóki nie pojawi się taka prośba.
  4. 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ą apigee-remote-service-cli.

    Dostęp Private
    Limit 5 żądań co minutę

    Zapoznaj się też z artykułem Omówienie limitów.

  5. W sekcji Cele usługi zdalnej Apigee kliknij Dodaj zdalny cel usługi Apigee.
  6. 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.

  7. Kliknij Zapisz.

4. Tworzenie aplikacji związanej z programistą

  1. Kliknij Opublikuj > Aplikacje w bocznym menu nawigacyjnym.
  2. Kliknij + Aplikacja.
  3. Wypełnij informacje na stronie dewelopera aplikacji w następujący sposób. Nie zapisuj karty, dopóki nie pojawi się taka prośba.
  4. Nazwa httpbin-app
    Wyświetlana nazwa httpbin app
    Deweloper Wybierz wcześniej utworzonego programistę lub wybierz dowolnego z listy.
  5. Następnie dodaj 2 produkty do aplikacji:
    1. Najpierw w sekcji Dane logowania kliknij + Dodaj usługę i wybierz usługę, której chcesz użyć. skonfigurowano: httpbin-product.
    2. Następnie dodaj usługę usługa zdalna. Utworzono ten produkt automatycznie po udostępnieniu Apigee.
  6. Kliknij Utwórz.
  7. W sekcji Dane logowania kliknij Pokaż obok opcji Klucz.
  8. 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.

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ów

Limity 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 API

Parametry 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 limity

Limity 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.