Korzystanie z narzędzi get_token i acurl

Apigee udostępnia narzędzia get_token i acurl, które upraszczają interakcję z logowaniem jednokrotnym Apigee i interfejsem Edge Management API. Te narzędzia automatycznie obsługują generowanie, buforowanie, odświeżanie i wstawianie tokenów.

Narzędzia są instalowane w węźle OpenLDAP w lokalizacji /opt/apigee/apigee-openldap/bin/.

Narzędzie get_token

Narzędzie get_token odpowiada za uzyskiwanie tokenów dostępu i odświeżania OIDC/OAuth2. Obsługuje 2 podstawowe procesy uwierzytelniania i obejmuje wbudowane buforowanie tokenów.

Procesy uwierzytelniania

  • Device Code Flow (RFC 8628): przeznaczony dla użytkowników, którzy uwierzytelniają się za pomocą zewnętrznego dostawcy tożsamości (np. SAML, Okta lub OIDC). Jeśli podasz tylko adres e-mail (-u <email>), narzędzie zainicjuje ten proces i wyświetli adres URL oraz kod do zatwierdzenia w przeglądarce.
  • Password Grant (ROPC): przeznaczony dla użytkowników korzystających z maszyn bez interfejsu graficznego i skryptów automatycznych. Jeśli podasz zarówno nazwę użytkownika, jak i hasło (-u <user>:<password>), narzędzie uwierzytelni się bezpośrednio w SSO w Apigee bez interakcji z przeglądarką.

Buforowanie tokenów i automatyczne odświeżanie

Narzędzie get_token automatycznie zarządza cyklami życia tokenów, dzięki czemu nie musisz ręcznie śledzić czasu wygaśnięcia:

  • Sprawdzanie pamięci podręcznej: po wywołaniu narzędzie get_token sprawdza lokalną pamięć podręczną w lokalizacji ~/.sso-cli/<username>-token.json. Jeśli istnieje prawidłowy token, który nie wygasł, narzędzie użyje go ponownie bez ponownego uwierzytelniania.
  • Automatyczne odświeżanie: jeśli token dostępu w pamięci podręcznej wygasł, ale istnieje prawidłowy token odświeżania, narzędzie automatycznie wymieni token odświeżania w SSO w Apigee na nowy token dostępu.

Zmienne środowiskowe

Opcjonalnie możesz dostosować działanie narzędzia get_token za pomocą tych zmiennych środowiskowych:

  • SSO_LOGIN_URL: adres URL logowania jednokrotnego Apigee (domyślnie: http://localhost:9099).
  • CLIENT_ID: identyfikator klienta OAuth2 (domyślnie: edgecli).
  • CLIENT_SECRET: tajny klucz klienta OAuth2 (domyślnie: edgeclisecret).

Narzędzie acurl

Narzędzie acurl to przezroczysta otoczka standardowego narzędzia curl. Dba o to, aby każde żądanie do interfejsu API zawierało prawidłowy token okaziciela.

  • Rozdzielanie argumentów: narzędzie wyodrębnia argument -u <user:password> lub -u <user> i przekazuje go do narzędzia get_token. Wszystkie inne argumenty (np. -X, -H, -d, -v, -s) przekazuje bezpośrednio do standardowego narzędzia curl.
  • Wykonanie: po pomyślnym uzyskaniu lub pobraniu prawidłowego tokena z narzędzia get_token narzędzie acurl automatycznie wstawia nagłówek -H "Authorization: Bearer <token>" do wywołania narzędzia curl.

Przykłady użycia

Przykład 1. Logowanie interaktywne użytkownika

/opt/apigee/apigee-openldap/bin/acurl -u developer@apigee.com http://MS_IP_DNS:8080/v1/organizations

To polecenie wstrzymuje działanie, prosi użytkownika o przejście do przeglądarki w celu uwierzytelnienia za pomocą zewnętrznego dostawcy tożsamości, a następnie wykonuje wywołanie API po zatwierdzeniu.

Przykład 2. Logowanie bez interfejsu graficznego użytkownika korzystającego z maszyny

/opt/apigee/apigee-openldap/bin/acurl -u jenkins-bot@apigee.com:Secret123! http://MS_IP_DNS:8080/v1/organizations

To polecenie uwierzytelnia się bezpośrednio za pomocą Password Grant i natychmiast wykonuje wywołanie API.

Przykład 3. Ponowne użycie tokena w pamięci podręcznej

/opt/apigee/apigee-openldap/bin/acurl http://MS_IP_DNS:8080/v1/users

Ponieważ token został zapisany w pamięci podręcznej w poprzednich krokach, nie musisz ponownie podawać argumentu -u. Narzędzie odczytuje token z pamięci podręcznej i automatycznie go wstawia.