Używanie SAML z interfejsem API do zarządzania Edge

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 to żądanie cURL, aby uzyskać dostęp do informacji o Twojej organizacji:

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

W tym przykładzie do przekazywania podstawowych danych logowania uwierzytelniania użyto opcji cURL -u. Możesz też przekazać token OAuth2 w nagłówku Bearer, by wywoływać interfejs Edge API. 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 itd.), które korzystają z wywołań interfejsu API zarządzania Edge obsługujących uwierzytelnianie podstawowe, przestaną działać. Musisz zaktualizować wszystkie wywołania i skrypty interfejsu API, które korzystają z uwierzytelniania podstawowego, aby przekazywać tokeny dostępu OAuth2 w nagłówku okaziciela.

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

Narzędzie get_token wymienia Twoje podstawowe dane uwierzytelniające uwierzytelnianie podstawowe i kod dostępu na potrzeby protokołu OAuth2 i tokenu odświeżania. Narzędzie get_token akceptuje Twoje dane uwierzytelniające i wyświetla prawidłowy token dostępu. Jeśli token da się odświeżyć, zostanie on odświeżony i wydrukowany. 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 karcie stdout. Następnie możesz użyć Postmana lub umieścić go w zmiennej środowiskowej, aby używać go w curl.

Poniżej opisujemy, jak za pomocą polecenia get_token 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 nazwy DNS komputera hostującego moduł logowania jednokrotnego na serwerach brzegowych. Jeśli skonfigurowano protokół TLS w jednokrotnym logowaniu brzegowym, użyj wartości https i prawidłowego numeru portu TLS.

  2. Rozpakuj pakiet ssocli-bundle.zip:
    unzip ssocli-bundle.zip
  3. Zainstaluj get_token w get_token:
    get_token Użyj opcji get_token, aby określić inną lokalizację: > ./install -b ścieżka
  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 nazwy DNS komputera hostującego moduł logowania jednokrotnego na serwerach brzegowych. Jeśli w systemie logowania Edge skonfigurowano protokół TLS, 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 protokół TLS został skonfigurowany w Edge SSO, użyj protokołu https i prawidłowego numeru portu TLS.

    Uwaga: jeśli nie korzystasz obecnie z dostawcy tożsamości, zobaczysz prośbę o zalogowanie się.

    Ten adres URL zwraca jednorazowy kod dostępu, który pozostaje ważny, dopóki go nie odświeżysz, aby uzyskać nowy kod dostępu, lub nie wygenerujesz tokena dostępu za pomocą kodu get_token.
  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 wpisanie jednorazowego kodu dostępu uzyskanego w kroku 3:
    Kod jednorazowy ( możesz go uzyskać na stronie https://edge_sso_IP.com/passcode )
    Wpisz kod dostępu, jeśli protokół SAML jest włączony, lub naciśnij ENTER:


    Wpisz kod. Narzędzie get_token uzyskuje token dostępu OAuth2, wyświetla go na ekranie, a następnie zapisuje go wraz z tokenem odświeżania w ~/.sso-cli.

    Hasło możesz wpisać w wierszu poleceń, używając polecenia get_token w formularzu:
    > get_token -u emailAddress -p passcode
  7. Przekaż token dostępu do wywołania interfejsu Edge Management API jako nagłówek Bearer (jako nagłówek Bearer)
    > curl -H „Authorization: Bearer” access_token https://ms_IP:8080/v1/organizations/orgName

    Gdy po raz pierwszy uzyskasz nowy token dostępu dla interfejsu API, który po raz pierwszy wyświetli się w postaci nowego polecenia „https: ” i po raz pierwszy otrzymasz od niego nowy token dostępu, który po raz pierwszy wyświetli się jako obiekt https:// i wywołaj go.


Po wygaśnięciu tokena odświeżania get_token poprosi o nowy kod dostępu. Aby wygenerować nowy token dostępu OAuth, musisz otworzyć adres URL podany powyżej w kroku 3 i wygenerować nowy kod dostępu.

Pobieranie i odświeżanie tokenów za pomocą interfejsu API zarządzania

Korzystanie z zabezpieczeń OAuth2 w Apigee Edge Management API zawiera instrukcje, które pokazują, jak używać interfejsu Edge Management API do uzyskiwania i odświeżania tokenów. Możesz też używać wywołań Edge API w przypadku tokenów wygenerowanych na podstawie potwierdzeń SAML.

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

Aby na przykład wygenerować wstępne 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'  

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

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=refreshToken'