Autenticazione basata su token per l'interfaccia CLI

L'autenticazione basata su token per l'interfaccia CLI consente di creare un token di sessione temporaneo da utilizzare per autenticare una richiesta di comando dell'interfaccia CLI. È possibile generare questo token con o senza un browser Web.

Requisiti

I requisiti sono gli stessi elencati per l'interfaccia CLI in Requisiti.

Creazione di una sessione dell'interfaccia CLI con un browser

Per utilizzare l'autenticazione basata su token per l'interfaccia CLI in un computer con un browser Web, effettuare le operazioni riportate di seguito.

  1. Nel terminale, eseguire il comando seguente:
    oci session authenticate
  2. Selezionare un'area.
  3. Nel browser immettere le credenziali utente.
  4. Dopo aver eseguito correttamente l'autenticazione, chiudere il browser e seguire il prompt interattivo sul terminale. Verrà creato un file di configurazione.

Creazione di una sessione CLI senza un browser

Per generare un token utente senza un browser, è innanzitutto necessario eseguire l'autenticazione con uno dei metodi riportati di seguito.

  1. Autenticazione basata su chiave API (configurazione dell'impostazione OCI)

  2. Autenticazione basata su token della sessione (autenticazione della sessione OCI)

Autenticazione basata sulle chiavi API

Per utilizzare l'autenticazione basata su token per l'interfaccia CLI senza un browser Web, eseguire il comando seguente:

oci session authenticate --no-browser

Questo comando crea una coppia di chiavi pubblica/privata e aggiorna la posizione del file di chiavi private nel file .config.

Autenticazione basata sul token della sessione

Se si utilizza un token di sessione:
oci session authenticate --no-browser --auth security_token

Argomenti facoltativi

Per l'autenticazione basata su chiavi API e token di sessione, è possibile fornire un percorso a una chiave pubblica come argomento. Fornisce un token di sessione che può essere firmato dalla chiave privata corrispondente durante l'utilizzo del token generato.

Nell'interfaccia CLI eseguire il comando seguente:
oci session authenticate --no-browser --public-key-file-path <path-to-public-key> --profile <profile_name> --auth security_token
È possibile controllare il tempo per il quale il token persiste. Il tempo minimo per il quale il token persiste è di 5 minuti e il tempo massimo per la persistenza del token è di 60 minuti (valore predefinito). Per impostare la scadenza di una sessione personalizzata per il token, utilizzare il parametro --session-expiration-in-minutes. Ad esempio:
oci session authenticate --no-browser --session-expiration-in-minutes <token-persistence-time-in-minutes> --profile <profile_name> --auth security_token
Nota

Se sono necessari più token utente, eseguire di nuovo l'autenticazione basata su token senza browser con oci session authenticate --no-browser.

Convalida di un token

Per verificare la validità di un token, eseguire il comando seguente:

oci session validate --config-file <path_to_config_file> --profile <profile_name> --auth security_token
Si dovrebbe ricevere un messaggio che mostra la data di scadenza per la sessione. Se si riceve un errore, controllare le impostazioni del profilo.
Nota

Per autenticare i comandi CLI utilizzando il token di sessione, è necessario utilizzare --auth security_token o impostare la variabile di ambiente OCI_CLI_AUTH su security_token.

Aggiornamento di un token

L'ora di scadenza predefinita del token è impostata su 1 ora e può essere aggiornata entro il periodo di validità fino a 24 ore.
Nota

Per le sessioni autenticate mediante oci session authenticate --no-browser, il valore massimo è 60 minuti.

Per aggiornare il token, eseguire il comando seguente:

oci session refresh --profile <profile_name>
Nota

Per autenticare i comandi CLI utilizzando il token di sessione, è necessario utilizzare --auth security_token o impostare la variabile di ambiente OCI_CLI_AUTH su security_token.

Copia di un token di sessione CLI in un altro computer

Per utilizzare l'autenticazione basata su token per l'interfaccia CLI in un computer senza un browser Web, è necessario esportare una sessione da un computer abilitato al Web, quindi importarla nel computer senza un browser Web.

Esportazione dal computer di origine

Sul computer di origine con il browser:

  1. Nell'interfaccia CLI eseguire il comando seguente:
    oci session authenticate
  2. Immettere le credenziali utente che si desidera utilizzare sul computer di destinazione.
  3. Per esportare un file zip, eseguire il comando seguente:
    oci session export --profile <profile_name> --output-file <output_filename>

Per verificare l'esportazione, vedere Convalida di un token.

Importazione nel computer di destinazione

Sul computer di destinazione senza il browser, eseguire il comando seguente nell'interfaccia CLI:

oci session import --session-archive <path_to_exported_zip>

È possibile eseguire il test dell'importazione eseguendo quanto segue:

oci iam region list --config-file <path_to_config_file> --profile <profile_name> --auth security_token

Deve restituire un elenco di aree. L'esecuzione riuscita di questo comando verifica che l'autenticazione del token funzioni come previsto.

Esecuzione di script su un computer senza browser

Dopo aver importato l'autenticazione nel computer di destinazione, è possibile eseguire CLI e SDK utilizzando le impostazioni riportate di seguito.

Per CLI

Per eseguire gli script sull'interfaccia CLI, aggiungere il suffisso seguente:

--config-file <path_to_config_file> --profile <profile_name> --auth security_token

Per SDK

Per eseguire SDK sul computer di destinazione, è necessario leggere il file token, quindi utilizzarlo per inizializzare SecurityTokenSigner.

Dopo aver creato un file di token come mostrato in Creating a CLI Session with a Browser, utilizzare il processo seguente.

Nota

Questo metodo funziona solo per gli SDK OCI per Go e Python. L'esempio seguente è per Oracle Cloud Infrastructure SDK for Python:
  1. Leggere il file token dal parametro security_token_file del file .config. Il parametro viene creato e gestito automaticamente dall'interfaccia CLI OCI. Il file token viene salvato nella directory di configurazione OCI predefinita, ad esempio ~/.oci/. Il profilo nel file ~/.oci/config viene aggiornato con la posizione security_token_file, ad esempio security_token_file=/Users/your-username/.oci/<generated-token-filename>.
    config = oci.config.from_file(profile_name='TokenDemo')
    token_file = config['security_token_file']
    token = None
    with open(token_file, 'r') as f:
         token = f.read()
  2. Leggere la chiave privata specificata dal file .config.
    private_key = oci.signer.load_private_key_from_file(config['key_file'])
  3. Creare il client SDK iniziale per l'area specificata dall'utente.
    signer = oci.auth.signers.SecurityTokenSigner(token, private_key) 
    client = oci.identity.IdentityClient({'region': region}, signer=signer)
  4. Effettuare la richiesta di identità.
    result = client.list_region_subscriptions(config['tenancy'])