Utilizzo di SAML con attività automatizzate

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:

  1. 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.
  2. 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:

  1. 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.
  2. 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.
  3. 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:

  1. 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.
  2. 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.
  3. 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.