Korzystanie z zewnętrznego dostawcy tożsamości przy użyciu interfejsu Edge Management API

Uwierzytelnianie podstawowe to jeden ze sposobów uwierzytelniania podczas wywoływania interfejsu Edge Management API. Możesz na przykład wysłać do interfejsu Edge Management API żądanie curl, aby uzyskać dostęp do informacji o Twojej organizacji:

curl -u USER_NAME:PASSWORD https://MS_IP_DNS:8080/v1/organizations/ORG_NAME

W tym przykładzie do przekazywania podstawowych danych uwierzytelniających używasz opcji curl -u. Możesz też przekazać token OAuth2 w nagłówku Bearer, aby wykonywać wywołania interfejsu Edge Management API, jak pokazano w poniższym przykładzie:

curl -H "Authorization: Bearer ACCESS_TOKEN" https://MS_IP_DNS:8080/v1/organizations/ORG_NAME

Po włączeniu uwierzytelniania zewnętrznego dostawcy tożsamości możesz opcjonalnie wyłączyć uwierzytelnianie podstawowe. Jeśli wyłączysz uwierzytelnianie podstawowe, wszystkie skrypty (w tym Maven, powłoka i apigeetool) korzystające z wywołań interfejsu API zarządzania urządzeniami brzegowymi obsługującego uwierzytelnianie podstawowe przestaną działać. Musisz zaktualizować wszystkie wywołania i skrypty interfejsu API korzystające z uwierzytelniania podstawowego, aby przekazywać tokeny dostępu OAuth2 w nagłówku Bearer.

Uzyskiwanie i odświeżanie tokenów za pomocą polecenia get_token

Narzędzie get_token wymienia Twoje podstawowe dane uwierzytelniające (a w niektórych przypadkach kod dostępu) na token dostępu OAuth2 i odświeżania. Narzędzie get_token akceptuje Twoje dane logowania i zwraca prawidłowy token dostępu. Jeśli token można odświeżyć, narzędzie odświeży go i zwróci. Jeśli token odświeżania wygaśnie, pojawi się prośba o podanie danych logowania użytkownika.

Narzędzie get_token przechowuje tokeny na dysku, gotowe do użycia w razie potrzeby. Drukuje też prawidłowy token dostępu na urządzeniu stdout. Następnie możesz użyć rozszerzenia przeglądarki, takiego jak Postman, lub umieścić je w zmiennej środowiskowej, aby używać jej w curl.

Aby uzyskać token dostępu OAuth2 do wykonywania wywołań interfejsu Edge Management API:

  1. Pobierz pakiet sso-cli:
    curl http://EDGE_SSO_IP_DNS:9099/resources/scripts/sso-cli/ssocli-bundle.zip -o "ssocli-bundle.zip"

    Gdzie EDGE_SSO_IP_DNS to adres IP lub nazwa DNS komputera hostującego moduł logowania jednokrotnego Apigee. Jeśli w przypadku logowania jednokrotnego w Apigee skonfigurowano protokół TLS, użyj https i prawidłowego numeru portu TLS.

  2. Rozpakuj pakiet ssocli-bundle.zip zgodnie z tym przykładem:
    unzip ssocli-bundle.zip
  3. Zainstaluj get_token w przeglądarce /usr/local/bin, zgodnie z tym przykładem:
    ./install -b PATH

    Opcja -b określa inną lokalizację.

  4. Ustaw zmienną środowiskową SSO_LOGIN_URL na adres URL logowania w takiej postaci:
    export SSO_LOGIN_URL="http://EDGE_SSO_IP_DNS:9099"

    Gdzie EDGE_SSO_IP_DNS to adres IP maszyny hostującej moduł logowania jednokrotnego Apigee. Jeśli w przypadku logowania jednokrotnego w Apigee skonfigurowano protokół TLS, użyj https i prawidłowego numeru portu TLS.

  5. (Tylko SAML) W przeglądarce otwórz ten URL, aby uzyskać jednorazowy kod dostępu:
    http://EDGE_SSO_IP_DNS:9099/passcode

    Jeśli w przypadku logowania jednokrotnego w Apigee skonfigurowano protokół TLS, użyj https i prawidłowego numeru portu TLS.

    To żądanie zwraca jednorazowy kod dostępu, który pozostaje ważny, dopóki nie odświeżysz adresu URL, aby uzyskać nowy kod dostępu, lub nie wygenerujesz tokena dostępu za pomocą kodu get_token.

    Pamiętaj, że kodu dostępu możesz użyć tylko podczas uwierzytelniania u dostawcy tożsamości SAML. Do uwierzytelnienia u dostawcy tożsamości LDAP nie możesz użyć kodu dostępu.

  6. Wywołaj get_token, aby uzyskać token dostępu OAuth2, jak pokazano w tym przykładzie:
    get_token -u EMAIL_ADDRESS

    Gdzie EMAIL_ADDRESS to adres e-mail użytkownika Edge.

    (Tylko SAML) Oprócz adresu e-mail wpisz kod dostępu zarówno w wierszu poleceń, jak i w tym przykładzie:

    get_token -u EMAIL_ADDRESS -p PASSCODE

    Narzędzie get_token uzyskuje token dostępu OAuth2, wyświetla go na ekranie i zapisuje go oraz token odświeżania w usłudze ~/.sso-cli.

  7. Przekaż token dostępu do wywołania interfejsu Edge Management API jako nagłówek Bearer, jak w tym przykładzie:
    curl -H "Authorization: Bearer ACCESS_TOKEN"
      https://MS_IP:8080/v1/organizations/ORG_NAME
  8. Po otrzymaniu nowego tokena dostępu możesz go uzyskać i przekazać do wywołania interfejsu API w jednym poleceniu, jak pokazano w poniższym przykładzie:
    header=`get_token` && curl -H "Authorization: Bearer $header"
      https://MS_IP:8080/v1/o/ORG_NAME

    W przypadku tej formy polecenia, jeśli token dostępu wygasł, będzie automatycznie odświeżany, dopóki token odświeżania nie wygaśnie.

(Tylko SAML) Po wygaśnięciu tokena odświeżania aplikacja get_token prosi o nowy kod dostępu. Aby wygenerować nowy token dostępu OAuth, musisz przejść do adresu URL widocznego powyżej w kroku 3 i wygenerować nowy kod dostępu.

Pobieraj i odświeżaj tokeny za pomocą interfejsu API zarządzania

Korzystanie z zabezpieczeń OAuth2 w interfejsie Apigee Edge Management API pokazuje, jak za pomocą interfejsu Edge Management API uzyskiwać i odświeżać tokeny. Do pobierania tokenów wygenerowanych na podstawie potwierdzeń SAML możesz też używać wywołań Edge API.

Jedyną różnicą między wywołaniami interfejsu API udokumentowanymi w artykule Korzystanie z zabezpieczeń OAuth2 w interfejsie Apigee Edge Management API jest to, że URL wywołania musi się odnosić do nazwy strefy. Dodatkowo, aby wygenerować początkowy token dostępu z dostawcą tożsamości SAML, musisz podać kod dostępu, tak jak w kroku 3 powyżej.

W celu autoryzacji przekaż zarezerwowane dane uwierzytelniające klienta OAuth2 w nagłówku Authorization. Wywołanie wyświetla na ekranie token dostępu i tokeny odświeżania.

Uzyskiwanie tokena dostępu

(LDAP) Użyj tego wywołania interfejsu API, aby wygenerować wstępne tokeny dostępu i odświeżania:

curl -H "Content-Type: application/x-www-form-urlencoded;charset=utf-8" \
  -H "accept: application/json;charset=utf-8" \
  -H "Authorization: Basic ZWRnZWNsaTplZGdlY2xpc2VjcmV0" -X POST \
  http://EDGE_SSO_IP_DNS:9099/oauth/token -s \
  -d 'grant_type=password&username=USER_EMAIL&password=USER_PASSWORD'

(SAML) Użyj tego wywołania interfejsu API, aby wygenerować wstępne tokeny dostępu i odświeżania:

curl -H "Content-Type: application/x-www-form-urlencoded;charset=utf-8" \
  -H "accept: application/json;charset=utf-8" \
  -H "Authorization: Basic ZWRnZWNsaTplZGdlY2xpc2VjcmV0" -X POST \
  https://EDGE_SSO_IP_DNS:9099/oauth/token -s \
  -d 'grant_type=password&response_type=token&passcode=PASSCODE'

Pamiętaj, że uwierzytelnianie u dostawcy tożsamości SAML wymaga tymczasowego kodu dostępu, a w przypadku dostawcy tożsamości LDAP go nie wymaga.

Odświeżanie tokena dostępu

Aby później odświeżyć token dostępu, użyj tego wywołania zawierającego token odświeżania:

curl -H "Content-Type:application/x-www-form-urlencoded;charset=utf-8" \
  -H "Accept: application/json;charset=utf-8" \
  -H "Authorization: Basic ZWRnZWNsaTplZGdlY2xpc2VjcmV0" -X POST \
  https://EDGE_SSO_IP_DNS:9099/oauth/token \
  -d 'grant_type=refresh_token&refresh_token=REFRESH_TOKEN'