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 weryfikowania wywołań interfejsu API do usługi docelowej, która jest obsługiwana przez adapter Apigee dla Envoy.
1. Logowanie w Apigee
- Otwórz interfejs Apigee w przeglądarce.
- W interfejsie wybierz tę samą organizację, której używasz do konfigurowania adaptera Apigee dla Envoy.
2. Tworzenie programisty
Do testowania możesz użyć istniejącego konta dewelopera lub utworzyć nowe w ten sposób:
- W menu nawigacyjnym po lewej stronie kliknij Opublikuj > Deweloperzy.
- Kliknij + Deweloper.
- Wypełnij okno, aby utworzyć nowego dewelopera. Możesz użyć dowolnej nazwy dewelopera lub adresu e-mail.
3. Tworzenie usługi API
Skorzystaj z podanego niżej przykładu tworzenia produktu. Zobacz też Informacje o konfiguracji produktu interfejsu API.
- W bocznym menu nawigacyjnym kliknij Opublikuj > Usługi API.
- 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 Docelowe usługi zdalne Apigee kliknij Dodaj docelową usługę zdalną Apigee.
- W oknie „Docelowy zdalny usługa Apigee” dodaj te wartości:
Atrybut Wartość Opis Nazwa docelowego Wpisz nazwę docelowej usługi. Na przykład: httpbin.org
Docelowy punkt końcowy obsługiwany przez serwer proxy Envoy. Ścieżka Wpisz /resource_path
, aby dopasować konkretny ścieżkę. Na przykład:/httpbin
.Ścieżka żądania do dopasowania w punkcie końcowym docelowym. Wywołania proxy interfejsu API do tej ścieżki będą dopasowywane do tej usługi interfejsu API. - Kliknij Zapisz.
Pole | Wartość |
---|---|
Nazwa | httpbin-product
|
Wyświetlana nazwa | httpbin product
|
Środowisko | your_environment
Ustaw to środowisko, które zostało użyte podczas aprowizowania adaptera Apigee dla Envoy za pomocą |
Dostęp | Private
|
Limit | 5 żądań na minutę
Zobacz też artykuł Limity. |
4. Tworzenie aplikacji związanej z programistą
- W bocznym menu nawigacyjnym kliknij Opublikuj > Aplikacje.
- Kliknij + Aplikacja.
- Wypełnij stronę Aplikacja dla dewelopera w ten sposób: Nie zapisuj karty, dopóki nie pojawi się taka prośba.
- Następnie dodaj do aplikacji 2 produkty:
- W sekcji Identyfikatory kliknij + Dodaj usługę i wybierz usługę, którą właśnie skonfigurowałaś/skonfigurowałeś: httpbin-product.
- Kliknij Utwórz.
- W sekcji Dane logowania kliknij Pokaż obok opcji Klucz.
- Skopiuj wartość klucza Consumer Key. Jest to klucz interfejsu API, którego będziesz używać do wywoływania interfejsu API usługi
httpbin
.
Usługi API
Usługi API są głównym punktem kontrolnym usługi zdalnej Apigee. Gdy tworzysz produkt interfejsu API i łączysz go z usługą docelową, tworzysz zasadę, która będzie stosowana do wszystkich żądań, które skonfigurujesz do obsługi przez adapter Apigee dla Envoy.
Definicja usługi w interfejsie API
Podczas definiowania produktu interfejsu API w usłudze Apigee możesz ustawić kilka parametrów, które będą używane do oceny żądań:
- Cel
- Ścieżka żądania
- Limit
- Zakresy protokołu OAuth
Docelowe usługi zdalnej
Definicja produktu w interfejsie API będzie stosowana w przypadku żądania, jeśli żądanie pasuje do obu wartości: docelowego elementu wiązania (np.
httpbin.org
) i ścieżki żądania (np./httpbin
). Lista potencjalnych docelowych elementów jest przechowywana jako atrybut produktu w interfejsie 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 w interfejsie API
Wpisana ścieżka jest dopasowywana według tych reguł:
- Pojedynczy ukośnik (
/
) pasuje do dowolnej ścieżki. *
jest prawidłowy w dowolnym miejscu i pasuje w obrębie segmentu (między ukośnikami).**
jest prawidłowy na końcu i pasuje do dowolnego znaku do końca wiersza.
Limit
Kwota określa liczbę żądań, które aplikacja może przesł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 limitówLimity umożliwiają narzucenie liczby żądań, które klient może wysłać do usługi w danym przedziale czasu. Limity są często używane do egzekwowania umów biznesowych lub umów SLA z deweloperami i partnerami, a nie do zarządzania ruchem operacyjnym. Na przykład limit może służyć do ograniczania ruchu w przypadku bezpłatnej usługi, przy jednoczesnym przyznaniu pełnego dostępu klientom płacącym.
Limit jest definiowany w usłudze APIParametry limitu są konfigurowane w usłudze interfejsu API. Podczas tworzenia usługi w interfejsie API możesz na przykład opcjonalnie ustawić dozwolony limit, jednostkę czasu i interwał.
Klucze API są mapowane na produkty API, więc za każdym razem, gdy klucz API zostanie zweryfikowany, odpowiedni licznik limitu może zostać zmniejszony (jeśli limit został zdefiniowany w powiązanym produkcie).
W przeciwieństwie do środowiska wykonawczego Apigee limity wpisane w definicji usługi są automatycznie egzekwowane przez usługę zdalną Apigee. Jeśli prośba zostanie zatwierdzona, zostanie uwzględniona w dozwolonej kwocie.
Gdzie są utrzymywane limityLimity są utrzymywane i sprawdzane lokalnie przez proces usługi zdalnej oraz asynchronicznie przez Apigee Runtime. Oznacza to, że limity nie są precyzyjne, a jeśli masz więcej niż 1 usługę zdalną, która utrzymuje limit, może on zostać przekroczony. Jeśli połączenie ze środowiskiem wykonawczym Apigee zostanie zakłócone, limit lokalny będzie kontynuowany jako samodzielny limit do momentu, aż będzie mógł ponownie połączyć się ze środowiskiem wykonawczym Apigee.
Zakresy OAuth
Jeśli używasz tokenów JWT, możesz ograniczyć ich zakres do podzbiorów dozwolonych zakresów OAuth. Zakresy przypisane do wydanego tokena JWT zostaną sprawdzone pod kątem zgodności z zakresami produktu interfejsu API.
Aplikacje związane z programistą
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.
Używanie uwierzytelniania opartego na tokenach JWT
Do wywoływania uwierzytelnionych wywołań proxy interfejsu API możesz użyć tokena JWT zamiast klucza interfejsu API. W tej sekcji dowiesz się, jak używać polecenia
apigee-remote-service-cli token
do tworzenia, sprawdzania i wykonywania rotacji tokenów JWT.Omówienie
Weryfikacja i uwierzytelnianie JWT jest obsługiwane przez Envoy za pomocą filtra uwierzytelniania JWT.
Po uwierzytelnieniu filtr Envoy
ext-authz
wysyła nagłówki żądania i token JWT doapigee-remote-service-envoy
. Porównuje ona oświadczeniaapi_product_list
iscope
tokena JWT z usługami interfejsu API Apigee, aby autoryzować go w odniesieniu do 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 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"
Korzystanie z tokena JWT
Gdy masz token, po prostu prześlij go do Envoy w nagłówku autoryzacji. Przykład:
curl localhost:8080/httpbin/headers -i -H "Authorization:Bearer $TOKEN"
Błąd tokena JWT
Odrzucenie Envoy
Jeśli Envoy odrzuci token, może pojawić się komunikat podobny do tego:
Jwks remote fetch is failed
W takim przypadku upewnij się, że konfiguracja Envoy zawiera prawidłowy identyfikator URI w sekcji
remote_jwks
, że jest on dostępny dla Envoy i że podczas instalacji serwera proxy Apigee certyfikaty zostały prawidłowo skonfigurowane. Powinieneś mieć możliwość wywołania identyfikatora URI bezpośrednio za pomocą wywołania GET i otrzymania prawidłowej odpowiedzi w formacie JSON.Przykład:
curl https://myorg-eval-test.apigee.net/remote-service/certs
Inne wiadomości z Envoy mogą wyglądać tak:
- „Listy odbiorców w pliku JWT są niedozwolone”
- „Wystawca JWT nie został skonfigurowany”
Te wyniki pochodzą z wymagań w konfiguracji Envoy, które być może musisz zmodyfikować.
Sprawdzanie tokena
Aby sprawdzić token, 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: Błąd 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, --log-level Prawidłowe poziomy: debugowanie, informacje, ostrzeżenie, błąd. Dostosowuje poziom rejestrowania. Domyślnie: informacje -j, --json-log Wypisuje dane dziennika jako rekordy w formacie JSON. Envoy zapewnia rejestrowanie. Więcej informacji znajdziesz w tych dokumentach Envoy:
Korzystanie z sieciowego serwera proxy
Serwer proxy HTTP można wstawić, używając zmiennych środowiskowych HTTP_PROXY i HTTPS_PROXY w środowisku binarnego pakietu apigee-remote-service-envoy. Podczas korzystania z tych opcji możesz też użyć zmiennej środowiskowej NO_PROXY, aby wykluczyć określone hosty 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ć osiągalny z poziomu apigee-remote-service-envoy.
Dane i analizy
Punkt końcowy wskaźników Prometheus jest dostępny w
:5001/metrics
. Możesz skonfigurować ten numer portu. Zobacz Plik konfiguracji.Statystyki Envoy
Informacje o pozyskiwaniu danych analitycznych z pośrednika Envoy znajdziesz pod tymi linkami:
Statystyki Istio
Informacje o pozyskiwaniu danych analitycznych z pośrednika Envoy znajdziesz pod tymi linkami:
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 usłudze Apigee znajdziesz w artykule Omówienie usług Analytics.
Nazwa | httpbin-app
|
Wyświetlana nazwa | httpbin app
|
Programista | Wybierz wcześniej utworzone konto dewelopera lub wybierz dowolne konto dewelopera z listy. |