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 otwarciu 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.
  4. Pole Wartość
    Nazwa httpbin-product
    Wyświetlana nazwa httpbin product
    Środowisko your_environment

    Ustaw w nim środowisko użyte podczas udostępniania adaptera Apigee dla Envoy.

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

    Zobacz też Limit.

  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.
    Ścieżka Wpisz ścieżkę zasobu w usłudze, którą chcesz dopasować. Dla: przykład: /headers. Ś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.
  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 do aplikacji usługę API:
    1. W sekcji Dane logowania kliknij + Dodaj usługę i wybierz usługę, której skonfigurowano: httpbin-product.
    2. Kliknij Utwórz.
    3. W sekcji Dane logowania kliknij Pokaż obok opcji Klucz.
    4. 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ą dokładne 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ń:

    $CLI_HOME/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-token/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

    $CLI_HOME/apigee-remote-service-cli -c config.yaml token inspect -f path/to/file

    lub

    $CLI_HOME/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 rejestrowanie jest wysyłane do stdout i 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.

    Obsługa środowiska wielu najemców

    Teraz możesz włączyć adapter, aby obsługiwał wiele w organizacji Apigee. Ta funkcja umożliwia korzystanie z 1 Apigee Adapter do Envoy powiązany z 1 organizacją Apigee do obsługi wielu środowisk. Przed po tej zmianie 1 adapter był zawsze powiązany z 1 środowiskiem Apigee.

    Aby skonfigurować obsługę wielu środowisk, zmień wartość od tenant:env_name do * w config.yaml . Na przykład:

    1. Otwórz plik config.yaml w edytorze.
    2. Zmień wartość z tenant.env_name na *. Na przykład:
      apiVersion: v1
      kind: ConfigMap
      metadata:
        name: apigee-remote-service-envoy
        namespace: apigee
      data:
        config.yaml: |
          tenant:
            remote_service_api: https://myorg-myenv.apigee.net/remote-service
            org_name: apigee-docs-hybrid-a
            env_name: *
            allow_unverified_ssl_cert: true
          analytics:
            collection_interval: 10s
          auth:
            jwt_provider_key: https://myorg-myenv.apigee.net.net/remote-token/token
    3. Zapisz plik.
    4. Zastosuj plik:
      kubectl apply -f $CLI_HOME/config.yaml

    Po skonfigurowaniu trybu wielu środowisk musisz też skonfigurować Envoy, aby wysyłał odpowiednią do adaptera, dodając te metadane w pliku Sekcja virtual_hosts:routes pliku envoy-config.yaml. Na przykład:

    1. Wygeneruj plik envoy-config.yaml za pomocą interfejsu wiersza poleceń. Na przykład:
      $CLI_HOME/apigee-remote-service-cli samples create \
        -t envoy-1.16 -c ./config.yaml --out myconfigs
    2. Otwórz wygenerowany plik (o nazwie envoy-config.yaml).
    3. Dodaj poniższe metadane w pliku virtual_host lub Sekcja routes pliku:
      typed_per_filter_config:
        envoy.filters.http.ext_authz:
          "@type": type.googleapis.com/envoy.extensions.filters.http.ext_authz.v3.ExtAuthzPerRoute
          check_settings:
            context_extensions:
              apigee_environment: test

      Przykład poniżej pokazuje konfigurację instancji virtual_host z wieloma trasami gdzie każda trasa kieruje ruch do określonego środowiska:

      filter_chains:
          - filters:
            - name: envoy.filters.network.http_connection_manager
              typed_config:
                "@type": type.googleapis.com/envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager
                stat_prefix: ingress_http
                route_config:
                  virtual_hosts:
                  - name: default
                    domains: "*"
                    routes:
                    - match: { prefix: /test }
                      route:
                        cluster: httpbin
                      typed_per_filter_config:
                        envoy.filters.http.ext_authz:
                          "@type": type.googleapis.com/envoy.extensions.filters.http.ext_authz.v3.ExtAuthzPerRoute
                          check_settings:
                            context_extensions:
                               apigee_environment: test
                    - match: { prefix: /prod }
                      route:
                        cluster: httpbin
                      typed_per_filter_config:
                        envoy.filters.http.ext_authz:
                          "@type": type.googleapis.com/envoy.extensions.filters.http.ext_authz.v3.ExtAuthzPerRoute
                          check_settings:
                            context_extensions:
                               apigee_environment: prod
    4. Powtórz ostatni krok, aby w razie potrzeby dodać więcej środowisk.
    5. Zapisz plik i zastosuj go.

    Konfigurowanie mTLS między adapterem a środowiskiem wykonawczym Apigee

    Certyfikaty TLS po stronie klienta możesz dostarczyć w sekcji tenant plik config.yaml adaptera, aby używać mTLS między adapterem a środowiskiem wykonawczym Apigee. Ten zmiana dotyczy wszystkich obsługiwanych platform Apigee. Umożliwia też korzystanie z mTLS na potrzeby analiz. dla Apigee Edge dla platformy Private Cloud. Na przykład:

    tenant:
      tls:
        ca_file: path/ca.pem
        cert_file: path/cert.pem
        key_file: path/key.pem
        allow_unverified_ssl_cert: false