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:
- 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. - Rozpakuj pakiet
ssocli-bundle.zip
:unzip ssocli-bundle.zip
- Zainstaluj get_token w get_token:
get_token Użyj opcji get_token, aby określić inną lokalizację: > ./install -b ścieżka - 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. - 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. - 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 - 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'