Condividi tramite


Oggetti di contesto di Azure PowerShell

Azure PowerShell usa oggetti di contesto di Azure PowerShell (contesti di Azure) per contenere le informazioni di sottoscrizione e autenticazione. Se si ha accesso a più sottoscrizioni, i contesti di Azure consentono di selezionare la sottoscrizione in cui eseguire i cmdlet di Azure PowerShell. I contesti di Azure vengono usati anche per archiviare le informazioni di accesso tra più sessioni di PowerShell ed eseguire attività in background.

Questo articolo illustra la gestione dei contesti di Azure, non la gestione di sottoscrizioni o account. Se desiderate gestire Utenti, sottoscrizioni, tenant o altre informazioni sull'account, consultare la documentazione ID di Microsoft Entra. Per informazioni sull'uso dei contesti per l'esecuzione di attività in background o parallele, vedere Eseguire i cmdlet di Azure PowerShell nei processi di PowerShell dopo aver acquisito familiarità con i contesti di Azure.

Panoramica degli oggetti contesto di Azure

I contesti di Azure sono oggetti di PowerShell che rappresentano la sottoscrizione attiva per eseguire comandi su e le informazioni di autenticazione necessarie per connettersi a un cloud di Azure. Con i contesti di Azure, Azure PowerShell non deve autenticare nuovamente l'account ogni volta che si cambia sottoscrizione. Un contesto di Azure è costituito da:

  • L'account che è stato usato per accedere ad Azure mediante Connect-AzAccount. I contesti di Azure trattano utenti, ID di applicazione ed entità del servizio allo stesso modo dal punto di vista dell'account.
  • La sottoscrizione attiva , un contratto di servizio con Microsoft per creare ed eseguire risorse di Azure, che sono associate a un tenant . I tenant vengono spesso indicati come organizzazioni nella documentazione o quando si lavora con Microsoft Entra.
  • Riferimento a una cache dei token , un token di autenticazione archiviato per l'accesso a un cloud di Azure. Le impostazioni di salvataggio automatico del contesto determinare dove è archiviato il token e per quanto tempo viene mantenuto.

Per altre informazioni su questi termini, vedere terminologia di Microsoft Entra. I token di autenticazione usati dai contesti di Azure sono gli stessi degli altri token archiviati che fanno parte di una sessione permanente.

Quando si accede con Connect-AzAccount, viene creato almeno un contesto di Azure per la sottoscrizione predefinita. L'oggetto restituito da Connect-AzAccount è il contesto di Azure predefinito usato per il resto della sessione di PowerShell.

Ottenere contesti di Azure

I contesti di Azure disponibili vengono recuperati con il cmdlet Get-AzContext. Elenca i contesti disponibili con il parametro ListAvailable:

Get-AzContext -ListAvailable

In alternativa, ottenere un contesto in base al nome:

Get-AzContext -Name MyContextName

I nomi di contesto possono essere diversi dal nome della sottoscrizione associata. Per determinare il nome del contesto, usare il valore della proprietà nome, che non viene visualizzata per impostazione predefinita.

Get-AzContext -ListAvailable | Select-Object -Property *

Importante

I contesti di Azure disponibili non coincidono sempre con le sottoscrizioni a disposizione. I contesti di Azure rappresentano solo informazioni archiviate in locale. È possibile ottenere le sottoscrizioni con il cmdlet Get-AzSubscription.

Creare un nuovo contesto di Azure dalle informazioni sulla sottoscrizione

Il cmdlet Set-AzContext viene usato per creare e impostare nuovi contesti di Azure come contesto attivo. Il modo più semplice per creare un nuovo contesto di Azure consiste nell'usare le informazioni sulla sottoscrizione esistenti. Il cmdlet Set-AzContext è progettato per accettare l'oggetto di output da Get-AzSubscription come valore inviato tramite pipe e configurare un nuovo contesto di Azure:

Get-AzSubscription -SubscriptionName MySubscriptionName |
  Set-AzContext -Name MyContextName

Oppure fornire il nome o l'ID della sottoscrizione e l'ID del tenant, se necessario:

Set-AzContext -Name MyContextName -Subscription MySubscriptionName -Tenant 00000000-0000-0000-0000-000000000000

Se il parametro nome viene omesso, il nome e l'ID della sottoscrizione vengono usati come nome di contesto nel formato Subscription Name (subscription-id).

Modificare il contesto di Azure attivo

Sia Set-AzContext che Select-AzContext possono essere usati per modificare il contesto di Azure attivo. Come descritto in Creare un nuovo contesto di Azure, Set-AzContext crea un nuovo contesto di Azure per una sottoscrizione se non esiste e quindi passa il contesto attivo a quello.

Select-AzContext è progettato per essere usato solo con contesti di Azure esistenti e funziona in maniera analoga a Set-AzContext -Context, ma è destinato all'uso con piping.

Set-AzContext -Context (Get-AzContext -Name MyContextName) # Set a context with an inline Azure context object
Get-AzContext -Name MyContextName | Select-AzContext # Set a context with a piped Azure context object

Analogamente a molti altri comandi di gestione di account e contesto in Azure PowerShell, Set-AzContext e Select-AzContext supportano il parametro ambito in modo da poter controllare per quanto tempo il contesto è attivo. Scope consente di modificare il contesto attivo di una singola sessione senza cambiare il contesto predefinito:

Get-AzContext -Name MyContextName | Select-AzContext -Scope Process

Per evitare di cambiare contesto per un'intera sessione di PowerShell, è possibile eseguire i comandi di Azure PowerShell con un parametro AzContext su un determinato contesto:

$context = Get-AzContext -Name MyContextName
New-AzVM -Name ExampleVM -AzContext $context

L'altro uso principale dei contesti con i cmdlet di Azure PowerShell consiste nell'eseguire comandi in background. Per altre informazioni sull'esecuzione di processi di PowerShell con Azure PowerShell, vedere Eseguire i cmdlet di Azure PowerShell nei processi di PowerShell.

Salvare i contesti di Azure tra sessioni di PowerShell

Per impostazione predefinita, i contesti di Azure vengono salvati per l'uso tra sessioni di PowerShell. È possibile modificare questo comportamento nei modi seguenti:

  • Accedere usando -Scope Process con Connect-AzAccount.

    Connect-AzAccount -Scope Process
    

    Il contesto di Azure restituito come parte di questo accesso è valido solo per la sessione corrente e non viene salvato automaticamente, indipendentemente dall'impostazione di salvataggio automatico del contesto di Azure PowerShell.

  • Disabilitare il salvataggio automatico del contesto in Azure PowerShell con il cmdlet Disable-AzContextAutosave. La disabilitazione del salvataggio automatico del contesto non cancella i token archiviati. Per informazioni su come cancellare le informazioni sul contesto di Azure archiviate, vedere Rimuovere i contesti di Azure e le credenziali archiviate.

  • Abilitare in modo esplicito il salvataggio automatico del contesto di Azure con il cmdlet Enable-AzContextAutosave. Con il salvataggio automatico abilitato, i contesti di un utente vengono archiviati in locale per le sessioni successive di PowerShell.

  • Salva manualmente i contesti con Save-AzContext per usarli nelle sessioni future di PowerShell, che possono essere caricati con Import-AzContext:

    Save-AzContext -Path current-context.json # Save the current context
    Import-AzContext -Path other-context.json # Load the context from a file and set it to the current context
    

Avvertimento

La disabilitazione del salvataggio automatico del contesto non cancella le informazioni sul contesto archiviate salvate. Per rimuovere le informazioni archiviate, usare il cmdlet Clear-AzContext. Per altre informazioni sulla rimozione dei contesti salvati, vedere Rimuovere i contesti di Azure e le credenziali archiviate.

Ognuno di questi comandi supporta il parametro Scope, che può accettare un valore di Process per essere applicato solo al processo attualmente in esecuzione. Ad esempio, per assicurarsi che i contesti appena creati non vengano salvati dopo la chiusura di una sessione di PowerShell:

Disable-AzContextAutosave -Scope Process
Set-AzContext -Subscription 'Subscription ID or Name' -Tenant 00000000-0000-0000-0000-000000000000

Le informazioni sul contesto e i token vengono archiviati nella directory $env:USERPROFILE\.Azure in Windows e $HOME/.Azure in altre piattaforme. Le informazioni riservate, ad esempio gli ID di sottoscrizione e gli ID di tenant, possono comunque essere esposte in informazioni memorizzate, tramite log o contesti salvati. Per informazioni su come cancellare le informazioni archiviate, vedere Rimuovere contesti di Azure e credenziali archiviate.

Rimuovere i contesti di Azure e le credenziali archiviate

Per cancellare i contesti e le credenziali di Azure:

  • Disconnettersi da un account con Disconnect-AzAccount. È possibile disconnettersi da qualsiasi account per account o per contesto.

    Disconnect-AzAccount # Disconnect active account
    Disconnect-AzAccount -Username 'user@contoso.com' # Disconnect by account name
    Disconnect-AzAccount -ContextName MyContextName # Disconnect by context name
    
    $context = Get-AzContext
    Disconnect-AzAccount -AzureContext $context # Disconnect using context object information
    

    La disconnessione rimuove sempre i token di autenticazione archiviati e cancella i contesti salvati associati all'utente o al contesto disconnesso.

  • Usare Clear-AzContext. Questo cmdlet rimuove sempre i contesti archiviati e i token di autenticazione e ti disconnette.

  • Rimuovere un contesto con Remove-AzContext:

    Remove-AzContext -Name MyContextName # Remove by name
    Get-AzContext -Name MyContextName | Remove-AzContext # Remove by piping an Azure context object
    

    Se si rimuove il contesto attivo, si è disconnessi da Azure ed è necessario ripetere l'autenticazione con Connect-AzAccount.

Vedere anche