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 organizacji:

curl -u userName:pWord https://ms_IP_DNS:8080/v1/organizations/orgName

W tym przykładzie używasz opcji curl -u, aby przekazać dane uwierzytelniania podstawowego. Możesz też przekazać token OAuth2 w nagłówku Bearer, aby wykonywać wywołania interfejsu API zarządzania Edge, jak pokazano w tym przykładzie:

curl -H "Authorization: Bearer access_token" https://ms_IP_DNS:8080/v1/organizations/orgName

Po włączeniu zewnętrznego dostawcy tożsamości na potrzeby uwierzytelniania możesz opcjonalnie wyłączyć uwierzytelnianie podstawowe. Jeśli wyłączysz uwierzytelnianie podstawowe, wszystkie skrypty (takie jak Maven, powłoka i apigeetool), które korzystają z wywołań interfejsu Edge Management API obsługujących uwierzytelnianie podstawowe, przestaną działać. Musisz zaktualizować wszystkie wywołania interfejsu API i skrypty, które używają uwierzytelniania podstawowego, aby przekazywać tokeny dostępu OAuth2 w nagłówku Bearer.

Pobieranie i odświeżanie tokenów za pomocą funkcji get_token

Narzędzie get_token wymienia dane uwierzytelniania podstawowego (a w niektórych przypadkach kod dostępu) na token dostępu i token odświeżania OAuth2. 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ża go i zwraca. 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, dzięki czemu są gotowe do użycia, gdy są potrzebne. Wyświetla też prawidłowy token dostępu w stdout. Następnie możesz użyć rozszerzenia przeglądarki, takiego jak Postman, lub umieścić go w zmiennej środowiskowej do użycia w curl.

Aby uzyskać token dostępu OAuth2 na potrzeby wywołań interfejsu API zarządzania Edge:

  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, na którym znajduje się moduł SSO w Apigee. Jeśli protokół TLS został skonfigurowany w SSO w Apigee, użyj https i prawidłowego numeru portu TLS.

  2. Rozpakuj pakiet ssocli-bundle.zip, jak w tym przykładzie:
    unzip ssocli-bundle.zip
  3. Zainstaluj get_token w /usr/local/bin, jak pokazano w tym przykładzie:
    ./install -b path

    Opcja -b określa inną lokalizację.

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

    Gdzie edge_sso_IP_DNS to adres IP komputera, na którym znajduje się moduł SSO w Apigee. Jeśli protokół TLS został skonfigurowany w SSO w Apigee, użyj https i prawidłowego numeru portu TLS.

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

    Jeśli protokół TLS został skonfigurowany w SSO w Apigee, użyj https i prawidłowego numeru portu TLS.

    To żądanie zwraca jednorazowy kod dostępu, który pozostaje ważny do momentu odświeżenia tego adresu URL w celu uzyskania nowego kodu dostępu lub użycia kodu dostępu z get_token do wygenerowania tokena dostępu.

    Pamiętaj, że hasła możesz używać tylko podczas uwierzytelniania za pomocą dostawcy tożsamości SAML. Nie możesz użyć hasła do uwierzytelnienia u dostawcy tożsamości LDAP.

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

    emailAddress to adres e-mail użytkownika Edge.

    (Tylko SAML) Wpisz kod dostępu w wierszu poleceń oprócz adresu e-mail, jak w tym przykładzie:

    get_token -u emailAddress -p passcode

    Narzędzie get_token pobiera token dostępu OAuth2, wyświetla go na ekranie i zapisuje go oraz token odświeżania w pliku ~/.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/orgName
  8. Po pierwszym uzyskaniu nowego tokena dostępu możesz go pobrać i przekazać do wywołania interfejsu API w jednym poleceniu, jak w tym przykładzie:
    header=`get_token` && curl -H "Authorization: Bearer $header"
      https://ms_IP:8080/v1/o/orgName

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

(Tylko SAML) Po wygaśnięciu tokena odświeżania get_token poprosi o nowy kod dostępu. Zanim wygenerujesz nowy token dostępu OAuth, musisz przejść pod adres URL podany w kroku 3 i wygenerować nowy kod dostępu.

Używanie interfejsu API zarządzania Google Analytics do pobierania i odświeżania tokenów

Korzystanie z zabezpieczeń OAuth2 w interfejsie API zarządzania Apigee Edge pokazuje, jak używać interfejsu API zarządzania Edge do uzyskiwania i odświeżania tokenów. Możesz też używać wywołań interfejsu API Edge, aby uzyskiwać tokeny wygenerowane z asercji SAML.

Jedyna różnica między wywołaniami interfejsu API opisanymi w artykule Korzystanie z zabezpieczeń OAuth2 w interfejsie API zarządzania Apigee Edge polega na tym, że adres URL wywołania musi odwoływać się do nazwy strefy. Dodatkowo, aby wygenerować początkowy token dostępu za pomocą dostawcy tożsamości SAML, musisz podać kod dostępu, jak pokazano w kroku 3 powyższej procedury.

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

Uzyskiwanie tokena dostępu

(LDAP) Aby wygenerować początkowe tokeny dostępu i odświeżania, użyj tego wywołania interfejsu API:

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'

(SAML) Aby wygenerować początkowe tokeny dostępu i odświeżania, użyj tego wywołania interfejsu API:

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 za pomocą dostawcy tożsamości SAML wymaga tymczasowego kodu dostępu, podczas gdy dostawca tożsamości LDAP tego nie wymaga.

Odświeżanie tokena dostępu

Aby później odświeżyć token dostępu, użyj tego wywołania, które zawiera 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=refreshToken'