Objets de contexte Azure PowerShell
Azure PowerShell utilise des objets de contexte Azure PowerShell (contextes Azure) pour stocker les informations d’abonnement et d’authentification. Si vous avez plusieurs abonnements, les contextes Azure vous permettent de sélectionner l’abonnement sur lequel exécuter les applets de commande Azure PowerShell. Les contextes Azure sont également utilisés pour stocker des informations de connexion entre plusieurs sessions PowerShell et exécuter des tâches en arrière-plan.
Cet article traite de la gestion des contextes Azure, mais pas de la gestion des abonnements ou des comptes. Si vous envisagez de gérer des utilisateurs, des abonnements, des locataires ou d’autres informations de compte, consultez la documentation Microsoft Entra ID. Pour découvrir comment utiliser des contextes afin d’exécuter des tâches en arrière-plan ou parallèles, consultez Exécuter des applets de commande Azure PowerShell dans les travaux PowerShell après vous être familiarisé avec les contextes Azure.
Vue d’ensemble des objets de contexte Azure
Les contextes Azure sont des objets PowerShell qui représentent votre abonnement actif sur lequel exécuter des commandes, et les informations d’authentification nécessaires pour se connecter à un cloud Azure. Avec les contextes Azure, Azure PowerShell n’a pas besoin de réauthentifier votre compte chaque fois que vous changez d’abonnement. Un contexte Azure est constitué des éléments suivants :
- Le compte qui a été utilisé pour se connecter à Azure avec Connect-AzAccount. Les contextes Azure traitent les utilisateurs, les ID d’application et les principaux de service de la même façon du point de vue d’un compte.
- L’abonnement actif, un contrat de service avec Microsoft pour créer et exécuter des ressources Azure, qui sont associées à un locataire. Les locataires sont souvent appelés organisations dans la documentation ou lors de l’utilisation d’Active Directory.
- Une référence à un cache de jeton, un jeton d’authentification stocké pour accéder à un cloud Azure. L’endroit où ce jeton est stocké et sa durée de conservation sont déterminés par les paramètres d’enregistrement automatique du contexte.
Pour plus d’informations sur ces termes, consultez la Terminologie Microsoft Entra. Les jetons d’authentification utilisés par les contextes Azure sont identiques aux autres jetons stockés qui font partie d’une session persistante.
Quand vous vous connectez avec Connect-AzAccount
, au moins un contexte Azure est créé pour votre abonnement par défaut. L’objet retourné par Connect-AzAccount
est le contexte Azure par défaut utilisé pour le reste de la session PowerShell.
Obtenir les contextes Azure
Les contextes Azure disponibles sont récupérés avec l’applet de commande Get-AzContext. Listez les contextes disponibles avec le paramètre ListAvailable :
Get-AzContext -ListAvailable
Vous pouvez aussi obtenir un contexte en utilisant son nom :
Get-AzContext -Name 'mycontext'
Les noms de contexte peuvent être différents du nom de l’abonnement associé.
Important
Les contextes Azure disponibles ne sont pas toujours vos abonnements disponibles. Les contextes Azure représentent seulement des informations stockées localement. Vous pouvez obtenir vos abonnements avec l’applet de commande Get-AzSubscription.
Créer un contexte Azure à partir des informations d’un abonnement
L’applet de commande Set-AzContext est utilisée à la fois pour créer des contextes Azure et pour les définir comme contexte actif. La façon la plus simple de créer un contexte Azure est d’utiliser les informations d’un abonnement existant. L’applet de commande est conçue pour prendre l’objet de sortie de Get-AzSubscription
comme valeur redirigée et pour configurer un nouveau contexte Azure :
Get-AzSubscription -SubscriptionName 'MySubscriptionName' |
Set-AzContext -Name 'MyContextName'
Vous pouvez aussi donner le nom ou l’ID de l’abonnement, et l’ID du locataire, si nécessaire :
Set-AzContext -Name 'MyContextName' -Subscription 'MySubscriptionName' -Tenant '00000000-0000-0000-0000-000000000000'
Si le paramètre Nom est omis, le nom et l’ID de l’abonnement sont utilisés comme nom du contexte au format Nom de l’abonnement (subscription-id).
Changer le contexte Azure actif
Set-AzContext
et Select-AzContext peuvent toutes deux être utilisées pour changer le contexte Azure actif. Comme décrit dans Créer un contexte Azure, Set-AzContext
crée un contexte Azure pour un abonnement s’il n’en existe pas, puis utilise ce contexte comme contexte actif.
Select-AzContext
est destinée à être utilisée seulement avec des contextes Azure existants ; elle fonctionne de façon similaire à Set-AzContext -Context
, mais elle est conçue pour être utilisée avec le pipe :
Set-AzContext -Context $(Get-AzContext -Name 'mycontext') # Set a context with an inline Azure context object
Get-AzContext -Name 'mycontext' | Select-AzContext # Set a context with a piped Azure context object
Comme de nombreuses autres commandes de gestion de compte et de contexte dans Azure PowerShell, Set-AzContext
et Select-AzContext
prennent en charge le paramètre Scope, qui vous permet de contrôler le temps pendant lequel le contexte est actif. Scope vous permet de changer le contexte actif d’une seule session sans changer votre contexte par défaut :
Get-AzContext -Name 'mycontext' | Select-AzContext -Scope Process
Pour éviter de basculer entre les contextes pendant toute une session PowerShell, toutes les commandes Azure PowerShell peuvent être exécutées sur un contexte donné avec le paramètre AzContext :
$context = Get-AzContext -Name "mycontext"
New-AzVM -Name ExampleVM -AzContext $context
L’autre utilisation principale des contextes avec les applets de commande Azure PowerShell est d’exécuter des commandes en arrière-plan. Pour plus d’informations sur l’exécution de travaux PowerShell avec Azure PowerShell, consultez Exécuter des applets de commande Azure PowerShell dans des travaux PowerShell.
Enregistrer des contextes Azure entre des sessions PowerShell
Par défaut, les contextes Azure sont enregistrés pour une utilisation entre des sessions PowerShell. Vous pouvez changer ce comportement de l’une des façons suivantes :
Connectez-vous en utilisant
-Scope Process
avecConnect-AzAccount
.Connect-AzAccount -Scope Process
Le contexte Azure retourné dans le cadre de cette connexion est valide seulement pour la session actuelle et n’est pas enregistré automatiquement, quel que soit le paramètre d’enregistrement automatique du contexte Azure PowerShell.
Désactivez l’enregistrement automatique du contexte dans Azure PowerShell avec l’applet de commande Disable-AzContextAutosave. La désactivation de l’enregistrement automatique du contexte n’efface pas les jetons stockés. Pour découvrir comment effacer les informations de contexte Azure stockées, consultez Supprimer les contextes et les informations d’identification Azure.
Vous pouvez activer explicitement l’enregistrement automatique du contexte Azure avec l’applet de commande Enable-AzContextAutosave. Quand l’enregistrement automatique est activé, les contextes de l’utilisateur sont stockés localement pour les sessions PowerShell ultérieures.
Enregistrez manuellement les contextes avec Save-AzContext pour les utiliser dans des sessions PowerShell futures, où elles peuvent être chargées avec Import-AzContext :
Save-AzContext -Path current-context.json # Save the current context Save-AzContext -Profile $profileObject -Path other-context.json # Save a context object Import-AzContext -Path other-context.json # Load the context from a file and set it to the current context
Avertissement
La désactivation de l’enregistrement automatique du contexte n’efface pas les informations de contexte stockées qui ont été enregistrées. Pour supprimer les informations stockées, utilisez l’applet de commande Clear-AzContext. Pour plus d’informations sur la suppression des contextes enregistrés, consultez Supprimer les contextes et les informations d’identification.
Chacune de ces commandes prend en charge le paramètre Scope, qui peut prendre la valeur Process
pour s’appliquer seulement au processus en cours d’exécution. Par exemple, pour faire en sorte que les contextes nouvellement créés ne soient pas enregistrés après que l’utilisateur quitte une session PowerShell :
Disable-AzContextAutosave -Scope Process
$context2 = Set-AzContext -Subscription 'sub-id' -Tenant 'other-tenant'
Les informations de contexte et les jetons sont stockés dans le répertoire $env:USERPROFILE\.Azure
sur Windows, et dans $HOME/.Azure
sur les autres plateformes. Des informations sensibles comme les ID d’abonnement et les ID de locataire peuvent néanmoins toujours être exposées dans des informations stockées, par le biais de journaux ou de contextes enregistrés. Pour découvrir comment effacer les informations stockées, consultez la section Supprimer les contextes et les informations d’identification Azure.
Supprimer les contextes et les informations d’identification stockées Azure
Pour effacer les contextes et les informations d’identification Azure :
Déconnectez-vous d’un compte avec Disconnect-AzAccount. Vous pouvez vous déconnecter de n’importe quel compte en utilisant le compte ou le contexte :
Disconnect-AzAccount # Disconnect active account Disconnect-AzAccount -Username 'user@contoso.com' # Disconnect by account name Disconnect-AzAccount -ContextName 'subscription2' # Disconnect by context name Disconnect-AzAccount -AzureContext $contextObject # Disconnect using context object information
La déconnexion supprime toujours les jetons d’authentification stockés et efface les contextes enregistrés associés à l’utilisateur ou au contexte déconnecté.
Utilisez Clear-AzContext. Cette applet de commande supprime toujours les contextes stockés et les jetons d’authentification, puis vous déconnecte.
Supprimez un contexte avec Remove-AzContext :
Remove-AzContext -Name 'mycontext' # Remove by name Get-AzContext -Name 'mycontext' | Remove-AzContext # Remove by piping Azure context object
Si vous supprimez le contexte actif, vous êtes déconnecté d’Azure et devez vous réauthentifier avec
Connect-AzAccount
.