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 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. 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 to zrobisz, 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, gotowe do użycia w razie potrzeby. 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 Edge Management API:
- 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ł Edge SSO. Jeśli protokół TLS został skonfigurowany w Edge SSO, użyj
httpsi prawidłowego numeru portu TLS. - Rozpakuj pakiet
ssocli-bundle.zip:unzip ssocli-bundle.zip
- Zainstaluj get_token w /usr/local/bin:
> ./install. Użyj opcji -b, aby określić inną lokalizację: > ./install -b path - 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. - 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 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. - 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 wraz z tokenem odświeżania w pliku ~/.sso-cli.
Możesz wpisać kod dostępu w wierszu poleceń, używając polecenia get_token w formacie:
> get_token -u emailAddress -p passcode - Przekaż token dostępu do wywołania interfejsu Edge Management API 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ć nowe hasło.
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 do tokenów generowanych 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 tokeny 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'