Przewodnik po korzystaniu

Wyświetlasz dokumentację Apigee Edge.
Otwórz dokumentację Apigee X.
info

Jak uzyskać klucz interfejsu API

Z przykładu poniżej dowiesz się, jak uzyskać klucz interfejsu API, którego możesz użyć do weryfikacji wywołań interfejsu API do usługi docelowej przekazywanej przez Apigee Adapter for Envoy.

1. Logowanie w Apigee

  1. Otwórz interfejs Apigee w przeglądarce.
  2. W interfejsie wybierz tę samą organizację, której użyto do skonfigurowania Apigee Adapter for Envoy.

2. Tworzenie programisty

Możesz użyć istniejącego konta dewelopera na potrzeby testowania lub utworzyć nowe w ten sposób:

  1. W menu nawigacyjnym po lewej stronie kliknij Opublikuj > Deweloperzy.
  2. Kliknij + Programista.
  3. Wypełnij okno, aby utworzyć nowego dewelopera. Możesz użyć dowolnej nazwy dewelopera lub adresu e-mail.

3. Tworzenie usługi API

Postępuj zgodnie z przykładem tworzenia produktu podanym poniżej. Zobacz też Informacje o konfiguracji produktu interfejsu API.

  1. W menu nawigacyjnym po lewej stronie wybierz Opublikuj > Produkty interfejsu API.
  2. Kliknij + Usługa API.
  3. Wypełnij stronę Szczegóły produktu w ten sposób: Nie klikaj Zapisz, dopóki nie pojawi się odpowiednia instrukcja.
  4. Pole Wartość
    Nazwa httpbin-product
    Wyświetlana nazwa httpbin product
    Środowisko your_environment

    Ustaw to pole na środowisko, którego użyto podczas udostępniania Apigee Adapter for Envoy za pomocą polecenia apigee-remote-service-cli.

    Dostęp Private
    Quota 5 żądań na minutę

    Zobacz też Limity.

  5. W sekcji Cele zdalnych usług Apigee kliknij Dodaj cel zdalnej usługi Apigee.
  6. W oknie docelowym usługi zdalnej Apigee dodaj te wartości:
    Atrybut Wartość Opis
    Nazwa miejsca docelowego Wpisz nazwę usługi docelowej. Na przykład: httpbin.org Docelowy punkt końcowy, przed którym znajduje się serwer proxy Envoy.
    Proxy interfejsu API remote-service remote-service proxy, które zostało udostępnione w Apigee podczas instalacji adaptera Envoy.
    Ścieżka Wpisz /resource_path, aby dopasować konkretną ścieżkę. Na przykład: /httpbin. Ścieżka żądania, która ma być dopasowana w punkcie końcowym. Wywołania proxy interfejsu API do tej ścieżki będą pasować do tej usługi API.

    Publiczna lub prywatna chmura Edge: na zrzucie ekranu poniżej widać prawidłowo skonfigurowane ustawienia okna dialogowego dla środowiska docelowego httpbin.org, które są odpowiednie dla publicznej lub prywatnej chmury Apigee Edge.

  7. Kliknij Zapisz.

4. Tworzenie aplikacji związanej z programistą

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

Informacje o usługach API

Produkty API to główny punkt kontrolny usługi zdalnej Apigee. Gdy tworzysz produkt API i łączysz go z usługą docelową, tworzysz zasadę, która będzie stosowana do wszystkich żądań, które skonfigurujesz w Apigee Adapter for Envoy.

Definicja usługi API

Podczas definiowania produktu interfejsu API w Apigee możesz ustawić szereg parametrów, które będą używane do oceny żądań:

  • Cel
  • Ścieżka żądania
  • Limit
  • Zakresy protokołu OAuth

Cele usługi zdalnej

Definicja usługi API będzie stosowana do żądania, jeśli pasuje ono zarówno do powiązania docelowego (np. httpbin.org), jak i do ścieżki żądania (np. /httpbin). Lista potencjalnych miejsc docelowych jest przechowywana jako atrybut usługi API.

Domyślnie usługa zdalna Apigee sprawdza specjalny nagłówek :authority (host) Envoy pod kątem listy 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.
  • Symbol * jest prawidłowy w dowolnym miejscu i pasuje do segmentu (między ukośnikami).
  • Znak ** jest prawidłowy na końcu i pasuje do wszystkiego do końca wiersza.

Limit

Limit określa liczbę wiadomości z żądaniami, które aplikacja może przesył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 umożliwiają egzekwowanie liczby żądań, które klient może wysyłać do usługi w określonym czasie. Limity są często używane do egzekwowania umów handlowych lub umów SLA z deweloperami 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 klientom, którzy za nią płacą.

Limit jest zdefiniowany w usłudze API

Parametry limitu są konfigurowane w usługach API. Na przykład podczas tworzenia produktu API możesz opcjonalnie ustawić dozwolony limit wykorzystania, jednostkę czasu i interwał.

Klucze API są powiązane z usługami API, więc za każdym razem, gdy klucz API zostanie zweryfikowany, odpowiedni licznik limitu może zostać zmniejszony (jeśli w powiązanej usłudze zdefiniowano limit).

W przeciwieństwie do środowiska wykonawczego Apigee limity wpisane w definicji produktu są automatycznie egzekwowane przez usługę zdalną Apigee. Jeśli prośba zostanie autoryzowana, zostanie uwzględniona 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ą precyzyjne 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, lokalny limit będzie nadal działać jako samodzielny limit do momentu ponownego połączenia ze środowiskiem wykonawczym Apigee.

Zakresy OAuth

Jeśli używasz tokenów JWT, możesz ograniczyć je do podzbiorów dozwolonych zakresów OAuth. Zakresy przypisane do wydanego tokena JWT zostaną sprawdzone pod kątem zgodności z zakresami usługi API.

Informacje o aplikacjach dla deweloperów

Po skonfigurowaniu produktów interfejsu API utworzysz aplikację powiązaną z deweloperem. Aplikacja umożliwia klientowi dostęp do powiązanych usług API za pomocą klucza API lub tokena JWT.

Uwierzytelnianie oparte na JWT

Zamiast klucza interfejsu API możesz używać tokena JWT do wykonywania uwierzytelnionych wywołań proxy interfejsu API. W tej sekcji dowiesz się, 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 ext-authz Envoy wysyła nagłówki żądań i JWT do apigee-remote-service-envoy. Porównuje roszczenia api_product_list i scope w JWT z usługami API Apigee, aby autoryzować je względem miejsca docelowego żą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

Możesz też użyć standardowego punktu końcowego tokena OAuth. Przykład polecenia 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 uzyskasz 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 jest, upewnij się, że konfiguracja Envoy zawiera prawidłowy identyfikator URI w sekcji remote_jwks, że jest on dostępny dla Envoy i że podczas instalowania serwera proxy Apigee certyfikaty zostały prawidłowo ustawione. Powinna być możliwość bezpośredniego wywołania identyfikatora URI za pomocą wywołania GET i otrzymania prawidłowej odpowiedzi JSON.

Przykład:

curl https://myorg-eval-test.apigee.net/remote-service/certs

Inne wiadomości od Envoy mogą wyglądać tak:

  • „Audiences in Jwt are not allowed”
  • „Wystawca JWT nie jest skonfigurowany”

Wynikają one z wymagań w konfiguracji Envoy, które być może trzeba będzie zmodyfikować.

Sprawdzanie tokena

Za pomocą interfejsu wiersza poleceń możesz sprawdzić swój token. 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. Wszystkie logi są 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 logowanie. Więcej informacji znajdziesz w dokumentacji Envoy:

Korzystanie z serwera proxy sieci

Serwer proxy HTTP można wstawić za pomocą zmiennych środowiskowych HTTP_PROXY i HTTPS_PROXY w środowisku pliku binarnego apigee-remote-service-envoy. W takim przypadku możesz też użyć zmiennej środowiskowej NO_PROXY, aby wykluczyć określonych hostów z przesył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 apigee-remote-service-envoy.

Informacje o danych i statystykach

Punkt końcowy danych Prometheusa jest dostępny pod adresem :5001/metrics. Możesz skonfigurować ten numer portu. Zobacz Plik konfiguracji.

Statystyki Envoy

Poniższe linki zawierają informacje o uzyskiwaniu danych analitycznych serwera proxy Envoy:

Statystyki Istio

Poniższe linki zawierają informacje o uzyskiwaniu danych analitycznych serwera proxy Envoy:

Analityka Apigee

Usługa zdalna Apigee dla Envoy wysyła statystyki żądań do Apigee w celu przetworzenia ich na potrzeby analiz. Apigee raportuje te żądania pod nazwą powiązanego produktu API.

Więcej informacji o analityce Apigee znajdziesz w omówieniu usług analitycznych.