Automatizza il processo di generazione dei token

Stai visualizzando la documentazione di Apigee Edge.
Vai alla documentazione di Apigee X.
informazioni

Quando utilizzi SAML con l'API Edge, il processo utilizzato per ottenere i token di accesso e aggiornamento OAuth2 dall'asserzione SAML è chiamato flusso passcode. Con il flusso di passcode, utilizzi un browser per ottenere un passcode una-tantum da utilizzare per ottenere i token OAuth2.

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

Informazioni sugli utenti di macchine

Apigee Edge supporta gli utenti delle macchine nella tua organizzazione abilitata per SAML. Gli utenti delle macchine vengono utilizzati esclusivamente per l'automazione e non sono accessibili direttamente da una persona.

Un utente delle macchine può ottenere i token OAuth2 senza dover specificare un passcode. Ciò significa che puoi automatizzare completamente il processo di ottenimento e aggiornamento dei token OAuth2 utilizzando l'API Edge.

Passaggi per automatizzare il processo di generazione dei token

Per automatizzare il processo di generazione del token:

Passaggio Descrizione
1 Crea un utente macchina nella tua zona di identità SAML
2 Assegna i ruoli richiesti all'utente della macchina nell'organizzazione Edge
3 Recuperare i token OAuth2 degli utenti della macchina

Video: guarda un breve video per scoprire come automatizzare l'accesso alle API Apigee Edge utilizzando le credenziali dell'utente macchina.

Gestisci gli utenti delle macchine per le zone di identità SAML

Apigee fornisce l'interfaccia a riga di comando (CLI) per la gestione degli utenti delle macchine per creare e gestire gli account utente della macchina. I passaggi per utilizzare l'interfaccia a riga di comando di gestione degli utenti della macchina sono descritti nelle sezioni seguenti.

Utilizzare l'interfaccia a riga di comando

Per utilizzare l'interfaccia a riga di comando di gestione degli utenti delle macchine, scarica e annulla iltar il seguente file: usermgmt.tar.gz(1)

Il formato per chiamare l'interfaccia a riga di comando è il seguente:

usermgmt_platform [command] [flags]

La seguente tabella riassume le piattaforme supportate e il comando corrispondente per chiamare l'interfaccia a riga di comando di gestione degli utenti delle macchine. Gli eseguibili si trovano nella directory usermgmt.

Piattaforma 32-bit A 64 bit
Linux usermgmt_linux_386 usermgmt_linux_amd64
Mac usermgmt_darwin_386 usermgmt_darwin_amd64
Windows usermgmt_windows_386 usermgmt_windows_amd64

La seguente tabella riassume i comandi che possono essere specificati.

Comando Maggiori informazioni
create Crea un utente macchina in una zona di identità
delete Elimina un utente della macchina in una zona di identità
help Richiedi assistenza per l'utilizzo dell'interfaccia a riga di comando
list Elenca tutti gli utenti macchina in una zona di identità
reset Reimpostare la password per un utente macchina in una zona di identità

Se vuoi, puoi passare uno dei seguenti flag per visualizzare la guida al comando specificato: -h o --help

Accedi all'interfaccia a riga di comando

La prima volta che esegui l'interfaccia a riga di comando entro 24 ore, ti viene richiesto di inserire le credenziali dell'account zoneadmin.

Enter your Apigee credentials
Username: zoneadmin-username
Password: zoneadmin-password
If your user is opted with MFA, enter MFA code. Otherwise press enter to skip.
MFA: mfa-code_or_enter_to_skip

L'interfaccia a riga di comando per la gestione degli utenti della macchina archivia un token di accesso sulla macchina locale, quindi dovrai accedere solo una volta ogni 24 ore.

Richiedi assistenza per l'utilizzo dell'interfaccia a riga di comando

Visualizza le informazioni sull'utilizzo dell'interfaccia a riga di comando utilizzando il comando usermgmt_platform help. Consulta Utilizzare l'interfaccia a riga di comando per l'elenco delle piattaforme supportate.

usermgmt_platform help

Vengono visualizzate le seguenti informazioni della guida:

A command-line interface (CLI) to manage machine user accounts to automate
Apigee identity zone management. Use the CLI to create, list, delete,
and reset the password for machine users.

Usage:
  usermgmt [flags]
  usermgmt [command]

Available Commands:
  create  Creates a machine users in an identity zone.
  delete  Deletes a machine users in an identity zone.
  help    Help about any command
  list    Lists the machine users in an identity zone.
  reset   Resets the password for a machine user in an identity zone.

Flags:
  -h, --help               help for usermgmt

Use "usermgmt [command] --help" for more information about a command.

Visualizza la guida per un comando specifico passando sia il comando che il flag -h o --help alla riga di comando.

Ad esempio, per ricevere assistenza sul comando list:

usermgmt_platform list -h

Vengono visualizzate le seguenti informazioni della guida:

Lists the machine users in an identity zone.

Usage:
  usermgmt list [flags]

Flags:
  -h, --help   help for list

Crea un utente della macchina in una zona di identità

Crea un utente della macchina in una zona di identità utilizzando il comando usermgmt_platform create. Consulta Utilizzare l'interfaccia a riga di comando per l'elenco delle piattaforme supportate.

  1. Inserisci il seguente comando:
    usermgmt_platform create

    Viene visualizzato l'elenco delle zone di identità:

    myzone1
    myzone2
  2. Inserisci il nome di una zona quando richiesto:
    Enter a zone name: myzone1
  3. Inserisci un nome utente per l'utente della macchina:
    Create a Machine User
    Username: machineuser1@mycompany.com
  4. Inserisci una password per l'utente della macchina. Inserisci di nuovo la password quando richiesto.
    Password: password
    Re-enter password: password 

    L'utente viene creato.

    Created machine user machineuser1@mycompany.com

Elenco di tutti gli utenti macchina in una zona di identità

Elenca tutti gli utenti delle macchine in una zona di identità utilizzando il comando usermgmt_platform list. Consulta Utilizzare l'interfaccia a riga di comando per l'elenco delle piattaforme supportate.

  1. Inserisci il seguente comando:
    usermgmt_platform list
    Viene visualizzato l'elenco delle zone di identità:
    myzone1
    myzone2
  2. Inserisci il nome di una zona quando richiesto:
    Enter a zone name: myzone1

    Viene visualizzato l'elenco di utenti della macchina nella zona di identità:

    Machine users in the zone:
    machineuser1@mycompany.com
        

Reimpostare la password per un utente macchina in una zona di identità

Reimposta la password di un utente della macchina in una zona di identità utilizzando il comando usermgmt_platform reset. Consulta Utilizzare l'interfaccia a riga di comando per l'elenco delle piattaforme supportate.

  1. Inserisci il seguente comando:
    usermgmt_platform reset

    Viene visualizzato l'elenco delle zone di identità:

    myzone1
    myzone2
  2. Inserisci il nome di una zona quando richiesto:
    Enter a zone name: myzone1
  3. Inserisci il nome utente dell'utente della macchina per cui vuoi reimpostare la password:
    Reset User Password
    Enter the username for the machine user
    Username: machineuser1@mycompany.com
  4. Inserisci una nuova password per l'utente della macchina. Inserisci di nuovo la password quando richiesto.
    Enter the new password: password
    Re-enter password: password

    La password è stata reimpostata.

    Reset password for machine user machineuser1@mycompany.com

Elimina un utente della macchina in una zona di identità

Elimina un utente della macchina in una zona di identità utilizzando il comando usermgmt_platform delete. Consulta Utilizzare l'interfaccia a riga di comando per l'elenco delle piattaforme supportate.

  1. Inserisci il seguente comando:
    usermgmt_platform delete
    Viene visualizzato l'elenco delle zone di identità:
    myzone1
    myzone2
  2. Inserisci il nome di una zona quando richiesto:
    Enter a zone name: myzone1
  3. Inserisci il nome utente dell'utente della macchina che vuoi eliminare:
    Delete User
    Enter the username for the machine user
    Username: machineuser1@mycompany.com 

    L'utente della macchina viene eliminato.

    Deleted user machineuser1@mycompany.com

Assegna i ruoli richiesti all'utente macchina nell'organizzazione Edge

Utilizzando la UI, aggiungi l'utente della macchina all'organizzazione Edge abilitata per SAML e assegnagli i ruoli richiesti (ad esempio, amministratore dell'organizzazione), come descritto in Aggiunta di utenti.

Recuperare i token OAuth2 dell'utente della macchina

Puoi automatizzare il processo di generazione dei token e gestire la memorizzazione nella cache per gli utenti delle macchine con le utilità acurl(1) e get_token(1), come descritto in OAuth2 per utenti delle macchine e Utenti delle macchine nelle zone SAML.

Per ottenere manualmente i token OAuth2 dell'utente della macchina con curl:

  1. Utilizza lo strumento di codifica degli URL che preferisci per codificare il nome utente e la password dell'utente della macchina.

    Avviso: utilizza uno strumento di codifica degli URL interno per assicurarti che le credenziali utente del computer non vengano compromesse.

  2. Genera i token di accesso e aggiornamento iniziali chiamando l'endpoint del token SAML, mostrato nell'esempio seguente:
    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 \
      https://zoneName.login.apigee.com/oauth/token -s \
      -d 'grant_type=password&username=machineusername&password=machineuserpassword'

    Per l'autorizzazione, passa la credenziale client OAuth2 riservata, ZWRnZWNsaTplZGdlY2xpc2VjcmV0, nell'intestazione Authorization. La chiamata stampa i token di accesso e di aggiornamento su stdout.

  3. Passa il token di accesso a una chiamata API di gestione perimetrale come intestazione di connessione:
    curl -H "Authorization: Bearer ACCESS_TOKEN" \
      https://api.enterprise.apigee.com/v1/organizations/orgName
  4. Quando il token di accesso scade, puoi aggiornarlo inviandolo all'endpoint del token SAML, come illustrato nell'esempio seguente:
    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 \
      https://zoneName.login.apigee.com/oauth/token \
      -d 'grant_type=refresh_token&refresh_token=REFRESH_TOKEN'

(1) Copyright 2023 Google LLC
Gli strumenti usermgmt, acurl e get_token sono resi disponibili come "Software" ai sensi del contratto che regola l'utilizzo della piattaforma Google Cloud da parte dell'utente, inclusi i Termini specifici del servizio disponibili all'indirizzo https://cloud.google.com/terms/service-terms.