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 żą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, jak pokazano w tym przykładzie:
curl -H "Authorization: Bearer access_token" https://ms_IP_DNS:8080/v1/organizations/orgName
Po włączeniu zewnętrznego dostawcy tożsamości na potrzeby uwierzytelniania możesz opcjonalnie wyłączyć uwierzytelnianie podstawowe. Jeśli wyłączysz uwierzytelnianie podstawowe, wszystkie skrypty (takie jak Maven, powłoka i apigeetool), które korzystają z wywołań interfejsu Edge Management API 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.
Pobieranie i odświeżanie tokenów za pomocą funkcji get_token
Narzędzie get_token wymienia dane uwierzytelniania podstawowego (a w niektórych przypadkach kod dostępu) na token dostępu i token odświeżania OAuth2. Narzędzie get_token akceptuje Twoje dane logowania i zwraca prawidłowy token dostępu. Jeśli token można odświeżyć, narzędzie odświeża go i zwraca. 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, dzięki czemu są gotowe do użycia, gdy są potrzebne. Wyświetla też prawidłowy token dostępu w stdout. Następnie możesz użyć rozszerzenia przeglądarki, takiego jak Postman, lub umieścić go w zmiennej środowiskowej do użycia w curl.
Aby uzyskać token dostępu OAuth2 na potrzeby wywołań interfejsu API zarządzania Edge:
- 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 lub nazwa DNS komputera, na którym znajduje się moduł SSO w Apigee. Jeśli protokół TLS został skonfigurowany w SSO w Apigee, użyj
httpsi prawidłowego numeru portu TLS. - Rozpakuj pakiet
ssocli-bundle.zip, jak w tym przykładzie:unzip ssocli-bundle.zip
- Zainstaluj
get_tokenw/usr/local/bin, jak pokazano w tym przykładzie:./install -b path
Opcja
-bokreśla inną lokalizację. - Ustaw zmienną środowiskową
SSO_LOGIN_URLna adres URL logowania w tej postaci:export SSO_LOGIN_URL="http://edge_sso_IP_DNS:9099"
Gdzie edge_sso_IP_DNS to adres IP komputera, na którym znajduje się moduł SSO w Apigee. Jeśli protokół TLS został skonfigurowany w SSO w Apigee, użyj
httpsi prawidłowego numeru portu TLS. - (Tylko SAML) 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 SSO w Apigee, użyj
httpsi prawidłowego numeru portu TLS.To żądanie 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_tokendo wygenerowania tokena dostępu.Pamiętaj, że hasła możesz używać tylko podczas uwierzytelniania za pomocą dostawcy tożsamości SAML. Nie możesz użyć hasła do uwierzytelnienia u dostawcy tożsamości LDAP.
- Wywołaj
get_token, aby uzyskać token dostępu OAuth2, jak pokazano w tym przykładzie:get_token -u emailAddress
emailAddress to adres e-mail użytkownika Edge.
(Tylko SAML) Wpisz kod dostępu w wierszu poleceń oprócz adresu e-mail, jak w tym przykładzie:
get_token -u emailAddress -p passcode
Narzędzie
get_tokenpobiera token dostępu OAuth2, wyświetla go na ekranie i zapisuje go oraz token odświeżania w pliku~/.sso-cli. - Przekaż token dostępu do wywołania interfejsu Edge Management API jako nagłówek
Bearer, jak w tym przykładzie:curl -H "Authorization: Bearer access_token" https://ms_IP:8080/v1/organizations/orgName
- Po pierwszym uzyskaniu nowego tokena dostępu możesz go pobrać i przekazać do wywołania interfejsu API w jednym poleceniu, jak w tym przykładzie:
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, dopóki nie wygaśnie token odświeżania.
(Tylko SAML) Po wygaśnięciu tokena odświeżania get_token poprosi o nowy kod dostępu. Zanim wygenerujesz nowy token dostępu OAuth, musisz przejść pod adres URL podany w kroku 3 i wygenerować nowy kod dostępu.
Używanie interfejsu API zarządzania Google Analytics do pobierania i odświeżania tokenów
Korzystanie z zabezpieczeń OAuth2 w interfejsie API zarządzania Apigee Edge pokazuje, 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, aby uzyskiwać tokeny wygenerowane 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 za pomocą dostawcy tożsamości SAML, musisz podać kod dostępu, jak pokazano w kroku 3 powyższej procedury.
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.
Uzyskiwanie tokena dostępu
(LDAP) Aby wygenerować początkowe 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'
(SAML) Aby wygenerować początkowe 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'
Pamiętaj, że uwierzytelnianie za pomocą dostawcy tożsamości SAML wymaga tymczasowego kodu dostępu, podczas gdy dostawca tożsamości LDAP tego nie wymaga.
Odświeżanie tokena dostępu
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'