Edge for Private Cloud v4.18.01
Quando utilizzi SAML con l'API Edge, la procedura utilizzata per ottenere i token di accesso e di aggiornamento OAuth2 dall'affermazione SAML è chiamata flusso del passcode. Con il flusso del passcode, utilizzi un browser per ottenere un passcode una tantum che poi utilizzi per ottenere i token OAuth2.
Tuttavia, l'ambiente di sviluppo potrebbe supportare l'automazione per le attività di sviluppo comuni, come l'automazione dei test o l'integrazione continua/il deployment continuo (CI/CD). Per automatizzare queste attività quando SAML è abilitato, devi avere un modo per ottenere e aggiornare i token OAuth2 senza dover copiare/incollare un passcode da un browser.
Edge supporta la generazione automatica di token tramite l'utilizzo di utenti macchina. Un utente della macchina può ottenere i token OAuth2 senza dover specificare un passcode. Ciò significa che puoi automatizzare completamente la procedura di ottenimento e aggiornamento dei token OAuth2 utilizzando l'API di gestione di Edge.
Creare un utente della macchina
Utilizza l'utilità apigee-ssoadminapi.sh per creare un utente macchina per un'organizzazione SAML. Per saperne di più, consulta la sezione Utilizzo di apigee-ssoadminapi.sh. Puoi creare un singolo utente macchina utilizzato da tutte le tue organizzazioni o un utente macchina separato per ogni organizzazione.
L'utente della macchina viene creato e archiviato nel datastore Edge, non nel fornitore di identità SAML. Pertanto, non sei responsabile della gestione dell'utente della macchina utilizzando l'interfaccia utente di Edge e l'API di gestione di Edge.
Quando crei l'utente della macchina, devi specificare un indirizzo email e una password. Dopo aver creato l'utente della macchina, assegnalo a una o più organizzazioni.
Per creare un utente della macchina:
- Utilizza il seguente comando apigee-ssoadminapi.sh per creare l'utente macchina:
> apigee-ssoadminapi.sh saml machineuser add --admin SSO_ADMIN_NAME --secret SSO_ADMIN_SECRET --host edge_sso_IP_or_DNS -u machine_user_email -p machine_user_password
dove:- SSO_ADMIN_NAME è il nome utente dell'amministratore definito dalla proprietà SSO_ADMIN_NAME nel file di configurazione utilizzato per configurare il modulo SSO di Edge. Il valore predefinito è ssoadmin.
- SSO_ADMIN_SECRET è la password di amministrazione specificata dalla proprietà
SSO_ADMIN_SECRET
nel file di configurazione.
In questo esempio, puoi omettere i valori per --port e --ssl perché il modulo apigee-sso utilizza i valori predefiniti di 9099 per --port e http per --ssl. Se la tua installazione non utilizza questi valori predefiniti, specificali come appropriato.
- Accedi all'interfaccia utente di Edge, aggiungi l'indirizzo email dell'utente della macchina alle tue organizzazioni e assegnagli il ruolo necessario. Per saperne di più, consulta Aggiungere utenti globali.
Ottenere e aggiornare il token utente della macchina
Utilizza l'API Edge per ottenere e aggiornare i token OAuth2 passando le credenziali dell'utente della macchina anziché un passcode.
Per ottenere i token OAuth2 per l'utente della macchina:
- Utilizza la seguente chiamata API per generare i token di accesso e aggiornamento iniziali:
> 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 /
http://edge_sso_IP_DNS:9099/oauth/token -s /
-d 'grant_type=password&username=m_user_email&password=m_user_password '
La chiamata stampa i token di accesso e di aggiornamento sullo schermo. Salva i token per utilizzarli in un secondo momento. - Passa il token di accesso a una chiamata dell'API di gestione di Edge come intestazione Bearer:
> curl -H "Authorization: Bearer access_token" http://ms_IP_DNS:8080/v1/organizations/orgName
dove orgName è il nome dell'organizzazione contenente l'utente macchina. - Per aggiornare in un secondo momento il token di accesso, 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" /
-H "Authorization: Basic ZWRnZWNsaTplZGdlY2xpc2VjcmV0" -X POST /
http://edge_sso_IP_DNS:9099/oauth/token /
-d 'grant_type=refresh_token&refresh_token=refreshToken'
Crea un utente della macchina utilizzando l'API di gestione di Edge
Puoi creare un utente della macchina utilizzando l'API di gestione di Edge anziché l'utilità apigee-ssoadminapi.sh. Per creare un utente della macchina:
- Utilizza il seguente comando cURL per ottenere un token per l'utente ssoadmin, il nome utente dell'account amministratore per apigee-sso:
> curl "http://edge_sso_IP_DNS:9099/oauth/token" -i -X POST /
-H 'Accept: application/json' / -H 'Content-Type: application/x-www-form-urlencoded' /
-d "response_type=token" -d "grant_type=client_credentials" /
--data-urlencode "client_secret=SSO_ADMIN_SECRET" /
--data-urlencode "client_id=ssoadmin"
dove SSO_ADMIN_SECRET è la password di amministratore impostata quando hai installato apigee-sso come specificato dalla proprietà SSO_ADMIN_SECRET nel file di configurazione.
Questo comando mostra un token necessario per effettuare la chiamata successiva. - Utilizza il seguente comando cURL per creare l'utente macchina, passando il token che hai ricevuto nel passaggio precedente:
> curl "http://edge_sso_IP_DNS:9099/Users" -i -X POST /
-H "Accept: application/json" -H "Content-Type: application/json" /
-d '{"userName" : "machine_user_email", "name" : {"formatted":"DevOps", "familyName" : "last_name", "givenName" : "first_name"}, "emails" : [ {"value" : "machine_user_email", "primary" : true } ], "active" : true, "verified" : true, "password" : "machine_user_password" }' /
-H "Authorization: Bearer token"
La password dell'utente macchina ti servirà nei passaggi successivi. - Accedi all'interfaccia utente di Edge, aggiungi l'indirizzo email dell'utente della macchina alle tue organizzazioni e assegnagli il ruolo necessario. Per saperne di più, consulta Aggiungere utenti globali.