Utilizzo delle utilità get_token e acurl

Apigee fornisce le utilità get_token e acurl per semplificare l'interazione con SSO Apigee e l'API di gestione di Edge. Questi strumenti gestiscono automaticamente la generazione, la memorizzazione nella cache, l'aggiornamento e l'inserimento dei token.

Le utilità sono installate sul nodo OpenLDAP in /opt/apigee/apigee-openldap/bin/.

L'utilità get_token

L'utilità get_token è responsabile dell'acquisizione dei token di accesso e di aggiornamento OIDC/OAuth2. Supporta due flussi di autenticazione principali e include la memorizzazione nella cache dei token integrata.

Flussi di autenticazione

  • Flusso del codice del dispositivo (RFC 8628): progettato per gli utenti umani che eseguono l'autenticazione tramite un provider di identità esterno (ad esempio SAML, Okta o OIDC). Se passi solo un indirizzo email (-u <email>), l'utilità avvia questo flusso, richiedendoti un URL e un codice da approvare in un browser.
  • Concessione della password (ROPC): progettata per gli utenti di macchine headless e gli script automatici. Se passi sia un nome utente che una password (-u <user>:<password>), l'autenticazione viene eseguita direttamente su SSO Apigee senza interazione con il browser.

Memorizzazione nella cache e aggiornamento automatico dei token

L'utilità get_token gestisce automaticamente i cicli di vita dei token, quindi non devi monitorare manualmente i tempi di scadenza:

  • Controllo della cache: quando viene chiamata, get_token controlla la cache locale in ~/.sso-cli/<username>-token.json. Se esiste un token valido e non scaduto, lo riutilizza senza eseguire nuovamente l'autenticazione.
  • Aggiornamento automatico: se il token di accesso memorizzato nella cache è scaduto, ma esiste un token di aggiornamento valido, l'utilità scambia automaticamente il token di aggiornamento in SSO Apigee con un nuovo token di accesso.

Variabili di ambiente

Facoltativamente, puoi personalizzare il comportamento di get_token utilizzando le seguenti variabili di ambiente:

  • SSO_LOGIN_URL: l'URL di Apigee SSO (impostazione predefinita: http://localhost:9099).
  • CLIENT_ID: l'ID client OAuth2 (impostazione predefinita: edgecli).
  • CLIENT_SECRET: il client secret OAuth2 (impostazione predefinita: edgeclisecret).

L'utilità acurl

L'utilità acurl è un wrapper trasparente intorno a curl standard. Assicura che ogni richiesta API includa un token di connessione valido.

  • Separazione degli argomenti: l'utilità estrae l'argomento -u <user:password> o -u <user> e lo passa a get_token. Inoltra tutti gli altri argomenti (ad esempio -X, -H, -d, -v, -s) direttamente a curl standard.
  • Esecuzione: dopo aver acquisito o recuperato correttamente un token valido da get_token, acurl inserisce automaticamente l'intestazione -H "Authorization: Bearer <token>" nella chiamata curl.

Esempi di utilizzo

Esempio 1: accesso interattivo per un utente umano

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

Questo comando mette in pausa, chiede all'utente di visitare un browser per eseguire l'autenticazione tramite il proprio IdP esterno e poi esegue la chiamata API una volta approvata.

Esempio 2: accesso headless per un utente macchina

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

Questo comando esegue l'autenticazione direttamente tramite la concessione della password ed esegue immediatamente la chiamata API.

Esempio 3: riutilizzo di un token memorizzato nella cache

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

Poiché il token è stato memorizzato nella cache nei passaggi precedenti, non è necessario fornire di nuovo l'argomento -u. L'utilità legge il token memorizzato nella cache e lo inserisce automaticamente.