Korzystanie z SAML za pomocą interfejsu API do zarządzania Edge

Edge dla chmury prywatnej w wersji 4.19.01

Uwierzytelnianie podstawowe to jeden ze sposobów uwierzytelniania podczas wywoływania interfejsu API zarządzania Edge. Możesz na przykład wysłać do interfejsu API zarządzania Edge żądanie cURL, aby uzyskać dostęp do informacji o swojej 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 Google Analytics. Na przykład:

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

Po włączeniu SAML możesz opcjonalnie wyłączyć uwierzytelnianie podstawowe. Jeśli wyłączysz uwierzytelnianie podstawowe, wszystkie skrypty (skrypty Maven, skrypty powłoki, apigeetool itp.), które korzystają z wywołań interfejsu API zarządzania Edge 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.

Używanie get_token do pobierania i odświeżania tokenów

Narzędzie get_token wymienia dane logowania uwierzytelniania podstawowego i kod dostępu na token dostępu i token odświeżania OAuth2. Narzędzie get_token akceptuje Twoje dane logowania i wyświetla prawidłowy token dostępu. Jeśli token można odświeżyć, zostanie on odświeżony i wyświetlony. 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. Wypisuje też prawidłowy token dostępu do stdout. Następnie możesz użyć Postmana lub umieścić go w zmiennej środowiskowej do użycia w curl.

Poniższa procedura opisuje, jak używać get_token do uzyskiwania tokena 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 nazwy DNS komputera, na którym znajduje się moduł SSO Edge. Jeśli protokół TLS został skonfigurowany w Edge SSO, użyj https i prawidłowego numeru portu TLS.

  2. Rozpakuj pakiet ssocli-bundle.zip:
    unzip ssocli-bundle.zip
  3. Zainstaluj get_token w /usr/local/bin:
    > ./install. Użyj opcji -b, aby określić inną lokalizację: > ./install -b path
  4. Ustaw zmienną środowiskową SSO_LOGIN_URL na adres URL logowania w formacie:
    export SSO_LOGIN_URL="http://edge_sso_IP_DNS:9099"

    gdzie edge_sso_IP_DNS to adres IP nazwy DNS komputera, na którym znajduje się moduł Edge SSO. Jeśli protokół TLS został skonfigurowany w Edge SSO, użyj https i prawidłowego numeru portu TLS.
  5. W przeglądarce otwórz ten adres URL, aby uzyskać jednorazowy kod dostępu:
    http://edge_sso_IP_DNS:9099/passcode

    Jeśli skonfigurowano TLS w Edge SSO, użyj https i prawidłowego numeru portu TLS.

    Uwaga: jeśli nie jesteś obecnie zalogowany(-a) przez dostawcę tożsamości, pojawi się prośba o zalogowanie.

    Ten adres URL zwraca jednorazowy kod dostępu, który pozostaje ważny do momentu odświeżenia adresu URL w celu uzyskania nowego kodu dostępu lub użycia kodu dostępu z get_token do wygenerowania tokena dostępu.
  6. Wywołaj get_token, aby uzyskać token dostępu OAuth2:
    > get_token -u emailAddress

    gdzie emailAddress to adres e-mail użytkownika Edge. Pojawi się prośba o podanie jednorazowego kodu dostępu uzyskanego w kroku 3:
    One Time Code ( Get one at https://edge_sso_IP.com/passcode )
    Enter the passcode if SAML is enabled or press ENTER:


    Wpisz kod dostępu. 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.

    Możesz wpisać kod dostępu w wierszu poleceń, używając polecenia get_token w tej postaci:
    > get_token -u emailAddress -p passcode
  7. Przekaż token dostępu do wywołania interfejsu API zarządzania Edge jako nagłówek Bearer:
    > curl -H "Authorization: Bearer access_token" https://ms_IP:8080/v1/organizations/orgName

    Po pierwszym uzyskaniu nowego tokena dostępu możesz go uzyskać i przekazać do wywołania interfejsu API w jednym poleceniu, jak pokazano poniżej:
    > 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 do momentu wygaśnięcia tokena odświeżania.

Po wygaśnięciu tokena odświeżania get_token poprosi o nowy kod dostępu. Zanim wygenerujesz nowy token dostępu OAuth, musisz wejść na 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

Artykuł Using OAuth2 security with the Apigee Edge management API (Korzystanie z zabezpieczeń OAuth2 w interfejsie API zarządzania Apigee Edge) zawiera instrukcje pokazujące, 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 w przypadku tokenów wygenerowanych 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, musisz podać kod dostępu, jak pokazano w kroku 3 powyższej procedury.

Aby wygenerować początkowe tokeny dostępu i tokeny odświeżania, użyj na przykład 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'  

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

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'