Utilizzo di SAML con attività automatizzate

Edge per Private Cloud v4.19.01

Quando si utilizza SAML con l'API Edge, il processo utilizzato per ottenere l'accesso OAuth2 i token di aggiornamento dell'asserzione SAML è chiamato flusso di passcode. Con il flusso dei passcode, utilizzare un browser per ottenere un passcode monouso da utilizzare per ottenere i token OAuth2.

Tuttavia, il tuo ambiente di sviluppo potrebbe supportare l'automazione per attività di sviluppo comuni, come l'automazione dei test o l'integrazione continua/deployment continuo (CI/CD). Per automatizzare quando SAML è abilitato, è necessario un modo per ottenere e aggiornare i token OAuth2 dover copiare/incollare un passcode da un browser.

Edge supporta la generazione automatica di token tramite l'uso di utenti di macchine all'interno di SAML le tue organizzazioni. Un utente della macchina può ottenere i token OAuth2 senza dover specificare un passcode. Ciò significa che puoi automatizzare completamente il processo per ottenere e aggiornare i token OAuth2 utilizzando l'API Edge Management.

Esistono due modi per creare un utente di macchina per un'organizzazione SAML:

Nelle sezioni che seguono vengono descritti tutti questi metodi.

Non puoi creare un utente del computer per un'organizzazione non SAML.

Crea un utente della macchina con apigee-ssoadminapi.sh

Usa apigee-ssoadminapi.sh per creare un utente della macchina all'interno di un'organizzazione SAML. Consulta la sezione Informazioni sull'uso apigee-ssoadminapi.sh per saperne di più. Puoi creare un singolo utente della macchina utilizzato da tutti delle tue organizzazioni o creare un utente di macchina separato per ogni organizzazione.

L'utente della macchina viene creato e archiviato nel datastore Edge, non nella tua identità SAML. o il provider di servizi di terze parti. Pertanto, non sei responsabile della manutenzione dell'utente della macchina utilizzando API di gestione isolata e perimetrale.

Quando crei l'utente della macchina, devi specificare un indirizzo email e una password. Dopo il giorno creando l'utente della macchina, lo assegni a una o più organizzazioni.

Per creare un utente della macchina con apigee-ssoadminapi.sh:

  1. Usa questo comando apigee-ssoadminapi.sh per creare l'utente della 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 SSO_ADMIN_NAME proprietà in il file di configurazione utilizzato per configurare il modulo SSO Edge. L'impostazione predefinita è ssoadmin.
    • SSO_ADMIN_SECRET è la password dell'amministratore specificata dal SSO_ADMIN_SECRET nel file di configurazione.
    • In questo esempio, puoi omettere i valori per --port e --ssl perché il modulo apigee-sso utilizza il valore predefinito valori di 9099 per --port e http per --ssl. Se le tue durante l'installazione non utilizzano queste impostazioni predefinite, specificale in base alle esigenze.

  2. Accedi alla UI Edge e aggiungi l'email dell'utente della macchina alle tue organizzazioni, quindi assegna all'utente della macchina il ruolo necessario. Consulta la sezione Aggiunta di utenti globali per altro ancora.

Crea un utente della macchina con Edge API di gestione

Puoi creare un utente della macchina utilizzando l'API Edge Management anziché utilizzare Utilità apigee-ssoadminapi.sh.

Per creare un utente della macchina con l'API di gestione:

  1. Usa il seguente comando curl per ottenere un token per l'utente ssoadmin, 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 amministratore che hai impostato durante l'installazione apigee-sso come specificato dalla proprietà SSO_ADMIN_SECRET in di configurazione del deployment.

    Questo comando visualizza un token necessario per effettuare la chiamata successiva.

  2. Utilizza il seguente comando curl per creare l'utente della macchina, trasmettendo il token ricevute 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"

    Dovrai utilizzare la password dell'utente della macchina nei passaggi successivi.

  3. Accedi alla UI di Edge.
  4. Aggiungi l'email dell'utente del computer alle tue organizzazioni e assegna l'utente del computer al ruolo necessario. Consulta la sezione Aggiungere utenti di tutto il mondo.

Ottenere e aggiornare i token utente della macchina

Utilizza l'API Edge per ottenere e aggiornare i token OAuth2 trasmettendo il parametro delle credenziali, 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 di 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'

    Salva i token per utilizzarli in un secondo momento.

  2. Passa il token di accesso a una chiamata API Edge Management come intestazione di connessione:
    curl -H "Authorization: Bearer access_token" \
      http://MS_IP_DNS:8080/v1/organizations/org_name

    Dove org_name è il nome dell'organizzazione contenente l'utente della macchina.

  3. Per aggiornare in un secondo momento il token di accesso, utilizza la seguente chiamata che include l'aggiornamento token:
    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'