Edge for Private Cloud wer. 4.17.09
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
, aby wykonywać wywołania interfejsu Edge Management 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
itp.) 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 okaziciela.
Uzyskiwanie i odświeżanie tokenów za pomocą polecenia get_token
Narzędzie get_token
wymienia Twoje dane uwierzytelniające podstawowe i kod dostępu na token dostępu OAuth2 i odświeżania. Narzędzie get_token
akceptuje Twoje dane logowania i wyświetla prawidłowy token dostępu. Jeśli token będzie można 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ższa procedura opisuje, jak przy użyciu get_token
uzyskać token dostępu OAuth2 do wykonywania 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 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. - 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 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. - W przeglądarce otwórz ten adres URL, aby uzyskać jednorazowy kod dostępu:
http://edge_sso_IP_DNS:9099/passcode
Jeśli w systemie logowania Edge skonfigurowano protokół TLS, użyj wartości
https
i prawidłowego numeru portu TLS.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
. - 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 hasła 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
uzyskuje token dostępu OAuth2, wyświetla go na ekranie i zapisuje go oraz token odświeżania w usłudze~/.sso-cli
.Aby wpisać kod dostępu w wierszu poleceń, użyj polecenia
get_token
w tym formularzu:get_token -u emailAddress -p passcode
- Przekaż token dostępu do wywołania interfejsu Edge Management API jako nagłówek okaziciela:
curl -H "Authorization: Bearer access_token" https://ms_IP:8080/v1/organizations/orgName
Gdy po raz pierwszy uzyskasz nowy token 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ł, będzie automatycznie odświeżany, dopóki token odświeżania nie wygaśnie.
Po wygaśnięciu tokena odświeżania get_token
prosi 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.
Uzyskiwanie 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ń interfejsu Edge API w przypadku tokenów wygenerowanych na podstawie potwierdzeń SAML.
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, 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 token dostępu 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'