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 weryfikowania wywołań interfejsu API do usługi docelowej, która jest obsługiwana przez adapter Apigee dla Envoy.

1. Logowanie w Apigee

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

  1. W menu nawigacyjnym po lewej stronie kliknij Opublikuj > Deweloperzy.
  2. Kliknij + Deweloper.
  3. 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.

  1. W bocznym menu nawigacyjnym kliknij Opublikuj > Usługi API.
  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 to środowisko, które zostało użyte podczas aprowizowania adaptera Apigee dla Envoy za pomocą apigee-remote-service-cli.

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

    Zobacz też artykuł Limity.

  5. W sekcji Docelowe usługi zdalne Apigee kliknij Dodaj docelową usługę zdalną Apigee.
  6. 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.
  7. Kliknij Zapisz.

4. Tworzenie aplikacji związanej z programistą

  1. W bocznym menu nawigacyjnym kliknij Opublikuj > Aplikacje.
  2. Kliknij + Aplikacja.
  3. Wypełnij stronę Aplikacja dla dewelopera w ten sposób: Nie zapisuj karty, dopóki nie pojawi się taka prośba.
  4. Nazwa httpbin-app
    Wyświetlana nazwa httpbin app
    Programista Wybierz wcześniej utworzone konto dewelopera lub wybierz dowolne konto dewelopera z listy.
  5. Następnie dodaj do aplikacji 2 produkty:
    1. W sekcji Identyfikatory kliknij + Dodaj usługę i wybierz usługę, którą właśnie skonfigurowałaś/skonfigurowałeś: httpbin-product.
    2. Kliknij Utwórz.
    3. W sekcji Dane logowania kliknij Pokaż obok opcji Klucz.
    4. 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ów

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

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

    Limity 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 do apigee-remote-service-envoy. Porównuje ona oświadczenia api_product_list i scope 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.