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.
- Nel terminale, eseguire il comando seguente:
oci session authenticate
- Selezionare un'area.
- Nel browser immettere le credenziali utente.
- 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.
-
Autenticazione basata su chiave API (configurazione dell'impostazione OCI)
-
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
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.
oci session authenticate --no-browser --public-key-file-path <path-to-public-key> --profile <profile_name> --auth security_token
--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
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
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
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>
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:
- Nell'interfaccia CLI eseguire il comando seguente:
oci session authenticate
- Immettere le credenziali utente che si desidera utilizzare sul computer di destinazione.
- 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.
Questo metodo funziona solo per gli SDK OCI per Go e Python. L'esempio seguente è per Oracle Cloud Infrastructure SDK for Python:
- 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 posizionesecurity_token_file
, ad esempiosecurity_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()
- Leggere la chiave privata specificata dal file
.config
.private_key = oci.signer.load_private_key_from_file(config['key_file'])
- 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)
- Effettuare la richiesta di identità.
result = client.list_region_subscriptions(config['tenancy'])