Edge for Private Cloud w wersji 4.17.09
Uwierzytelnianie podstawowe to jeden ze sposobów uwierzytelniania podczas wykonywania wywołań interfejsu Edge Management API. Aby uzyskać dostęp do informacji o organizacji, możesz wysłać do interfejsu Edge Management API to żądanie cURL:
curl -u userName:pWord https://ms_IP_DNS:8080/v1/organizations/orgName
W tym przykładzie do przekazywania podstawowych danych uwierzytelniających służy opcja 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 to zrobisz, wszystkie skrypty (skrypty Maven, skrypty powłoki, apigeetool
itp.), które korzystają z wywołań interfejsu API do zarządzania Edge obsługujące uwierzytelnianie podstawowe, przestaną działać. Musisz zaktualizować wszystkie wywołania interfejsu API i skrypty, które korzystają z uwierzytelniania podstawowego, aby przekazywać tokeny dostępu OAuth2 w nagłówku Bearer.
Uzyskiwanie i odświeżanie tokenów za pomocą get_token
Narzędzie get_token
wymienia Twoje dane logowania podstawowego i kod dostępu na token dostępu OAuth 2 oraz token odświeżania. Narzędzie get_token
przyjmuje dane logowania i drukuje prawidłowy token dostępu. Jeśli token można odświeżyć, spowoduje to jego odświeżenie i wydrukowanie. Jeśli token odświeżania wygaśnie, pojawi się prośba o dane logowania użytkownika.
Narzędzie get_token
przechowuje tokeny na dysku, aby były gotowe do użycia w razie potrzeby. Wyświetla też prawidłowy token dostępu do standardowego protokołu.
Następnie możesz użyć Postmana lub umieścić go w zmiennej środowiskowej do wykorzystania w curl.
W tej procedurze opisano, jak użyć interfejsu get_token
do uzyskania tokena dostępu OAuth2, aby wykonywać wywołania 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 maszyny, na której działa moduł SSO Edge. Jeśli masz skonfigurowane szyfrowanie TLS na Edge SSO, 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
Aby określić inną lokalizację, użyj opcji
-b
:./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 hostującego moduł Edge SSO. Jeśli skonfigurowano TLS w Edge SSO, użyj
https
i prawidłowego numeru portu TLS. - Aby uzyskać kod dostępu jednorazowego, otwórz w przeglądarce ten adres URL:
http://edge_sso_IP_DNS:9099/passcode
Jeśli skonfigurowano TLS w Edge SSO, użyj
https
i prawidłowego numeru portu TLS.Ten adres URL 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
w celu 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 OAuth 2, wyświetla go na ekranie i zapisuje wraz z tokenem odświeżania w pliku~/.sso-cli
.Kod dostępu możesz wpisać w wierszu poleceń, używając polecenia
get_token
w takim formacie:get_token -u emailAddress -p passcode
- 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 uzyskaniu nowego tokena dostępu po raz pierwszy możesz go 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 wersji polecenia, jeśli token dostępu wygasł, jest on automatycznie odświeżany do czasu wygaśnięcia tokena odświeżania.
Po wygaśnięciu tokenu odświeżania get_token
wyświetli prośbę o podanie nowego kodu 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 Management API
Korzystanie z zabezpieczeń OAuth2 za pomocą interfejsu Edge management API w Apigee zawiera instrukcje dotyczące uzyskiwania i odświeżania tokenów za pomocą interfejsu Edge management API. Do tokenów wygenerowanych na podstawie oświadczeń SAML możesz też używać wywołań interfejsu Edge API.
Jedyną różnicą między wywołaniami interfejsu API opisanymi w artykule Korzystanie z zabezpieczeń OAuth2 w interfejsie API do zarządzania Apigee Edge jest to, że adres URL wywołania musi zawierać nazwę Twojej strefy. Aby wygenerować początkowy token dostępu, musisz też podać kod dostępu, jak w kroku 3 opisanej powyżej procedury.
Aby na przykład wygenerować tokeny początkowego 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'
Aby uzyskać autoryzację, prześlij zarezerwowane dane logowania klienta OAuth2 w polu nagłówka 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 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'