Quando utilizzi un IDP esterno con l'API Edge, la procedura standard per ottenere i token di accesso OIDC/OAuth2
dalla CLI è il flusso del codice del dispositivo OAuth 2.0. Con questo flusso, utilizzi l'utilità get_token, che ti chiede di visitare un URL in un browser per eseguire l'autenticazione tramite l'IDP e poi sblocca automaticamente il terminale.
Tuttavia, il tuo ambiente di sviluppo potrebbe supportare l'automazione per le attività di sviluppo comuni, come l'automazione dei test o le pipeline CI/CD. Per automatizzare queste attività quando è abilitato un IDP esterno, devi avere un modo per ottenere e aggiornare i token OAuth2 senza interfaccia grafica, senza richiedere l'interazione con il browser.
Edge supporta la generazione automatica di token tramite l'utilizzo di utenti macchina senza interfaccia grafica. Un utente macchina può ottenere token OIDC/OAuth2 tramite le concessioni di password standard senza richiedere un browser. Ciò significa che puoi automatizzare completamente la procedura di ottenimento e aggiornamento dei token per gli script.
Creare un utente macchina
Puoi creare un utente macchina utilizzato da tutte le tue organizzazioni o creare un utente macchina separato per ogni organizzazione.
L'utente macchina viene creato e archiviato direttamente nella directory OpenLDAP locale e contrassegnato esplicitamente come utente macchina (employeeType: machineuser). In questo modo, SSO Apigee può autenticare in modo sicuro l'utente macchina tramite una concessione di password anche quando SAML/OIDC federato è applicato rigorosamente per gli utenti umani.
Per istruzioni dettagliate sulla creazione, l'elenco e la gestione degli utenti macchina, consulta Gestire gli utenti macchina con apigee-machineuser.sh.
Ottenere e aggiornare i token degli utenti macchina
Puoi utilizzare le utilità get_token e acurl fornite in /opt/apigee/apigee-openldap/bin/ o curl standard per ottenere i token per gli utenti macchina.
- Utilizzo delle utilità Apigee: i wrapper
get_tokeneacurlgestiscono automaticamente la memorizzazione nella cache dei token, la generazione del payload e l'aggiornamento automatico. Per istruzioni dettagliate ed esempi sull'utilizzo di questi strumenti, consulta Utilizzo delle utilità get_token e acurl. - Utilizzo di curl standard: se gli script di automazione non hanno accesso ai wrapper Apigee, puoi interagire direttamente con SSO Apigee utilizzando i seguenti comandi
curlstandard:
Per ottenere e aggiornare i token utilizzando curl standard:
- Utilizza la seguente chiamata API per generare i token di accesso e di aggiornamento iniziali direttamente da Apigee SSO:
curl -H "Content-Type: application/x-www-form-urlencoded;charset=utf-8" \ -H "accept: application/json;charset=utf-8" \ -X POST http://Edge_SSO_IP_DNS:9099/token -s \ -d 'grant_type=password&username=machineUserEmail&password=machineUserPassword&client_id=edgecli&client_secret=edgeclisecret&scope=openid%20profile%20email%20offline_access' - Trasmetti il token di accesso a una chiamata API di gestione Edge nell'intestazione
Authorization: Bearer:curl -H "Authorization: Bearer access_token" \ http://MS_IP_DNS:8080/v1/organizations/org_name
- Per aggiornare in modo nativo il token di accesso in un secondo momento, utilizza la seguente chiamata che include il token di aggiornamento:
curl -H "Content-Type:application/x-www-form-urlencoded;charset=utf-8" \ -H "Accept: application/json;charset=utf-8" \ -X POST http://Edge_SSO_IP_DNS:9099/token \ -d 'grant_type=refresh_token&refresh_token=refreshToken&client_id=edgecli&client_secret=edgeclisecret'