Przewodnik po korzystaniu

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

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

  1. W menu nawigacyjnym po lewej stronie wybierz Opublikuj > Programiści.
  2. Kliknij + Programista.
  3. 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.

  1. W menu nawigacyjnym po lewej stronie wybierz Opublikuj > Usługi API.
  2. Kliknij + Usługa API.
  3. Wypełnij stronę Szczegóły usługi w ten sposób. Nie klikaj Zapisz , dopóki nie otrzymasz takiej instrukcji.
  4. 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 apigee-remote-service-cli.

    Dostęp Private
    Quota 5 żądań co 1 minutę

    Zobacz też Informacje o limitach.

  5. W sekcji Cele usługi zdalnej Apigee kliknij Dodaj cel usługi zdalnej 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 Punkt końcowy celu, który jest obsługiwany przez serwer proxy Envoy.
    Serwer proxy interfejsu API remote-service Serwer 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.

  7. Kliknij Zapisz.

4. Tworzenie aplikacji związanej z programistą

  1. W menu nawigacyjnym po lewej stronie wybierz Opublikuj > Aplikacje.
  2. Kliknij + Aplikacja.
  3. Wypełnij stronę Aplikacja dewelopera w ten sposób. Nie klikaj Zapisz, dopóki nie otrzymasz takiej instrukcji.
  4. Nazwa httpbin-app
    Wyświetlana nazwa httpbin app
    Dla programistów Wybierz programistę utworzonego wcześniej lub dowolnego programistę z listy.
  5. Następnie dodaj do aplikacji 2 usługi:
    1. Najpierw w sekcji Dane logowania kliknij + Dodaj usługę i wybierz usługę, którą właśnie skonfigurowano: httpbin-product.
    2. Następnie dodaj usługę remote-service. Ta usługa została utworzona automatycznie podczas udostępniania Apigee.
  6. Kliknij Utwórz.
  7. W sekcji Dane logowania kliknij Pokaż obok Klucz.
  8. Skopiuj wartość klucza klienta. Ta wartość to klucz interfejsu API , którego będziesz używać do wywoływania interfejsu API usługi httpbin.

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 limitu

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

Parametry 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 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ą 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.