23/11/2024

AzurePowerShell

Comment se connecter à Azure avec PowerShell ?

I. Présentation

Dans ce tutoriel, nous allons apprendre à nous connecter sur un compte Azure en PowerShell à l'aide de la commande Connect-AzAccount, disponible au sein du module Az.Accounts.

L'objectif est de se connecter au Cloud Azure dans le but de pouvoir interagir avec des ressources, notamment des VM Azure, à partir d'une console PowerShell, d'un éditeur de code ou d'un script. Pour se connecter à Azure AD, c'est une autre méthode qu'il faut utiliser. Ce tutoriel me semble important, car l'authentification sur Azure est une étape indispensable avant de pouvoir exécuter des actions au travers d'autres commandes.

Avant de commencer, vous devez installer le module Az.Accounts sur votre machine afin de pouvoir utiliser Connect-AzAccount :

Install-Module -Name Az.Accounts

II. Se connecter avec la méthode interactive

Nous allons commencer par la méthode interactive, qui consiste à s'authentifier manuellement dans un navigateur. Pour utiliser cette méthode, il suffit d'exécuter la commande sans paramètre :

Connect-AzAccount

Le navigateur par défaut défini sur votre machine va s'ouvrir afin de vous demander de vous authentifier sur Microsoft Azure. Il vous suffit de sélectionner un compte dans la liste ou de saisir votre adresse e-mail, puis d'indiquer le mot de passe correspondant.

Connect-AzAccount

Ensuite, une page blanche va s'afficher avec ce message

Authentication complete. You can return to the application. Feel free to close this browser tab.

Vous n'avez plus qu'à fermer la fenêtre ! La connexion est établie !

Dans le cas de l'utilisation d'un compte Microsoft personnel pour s'authentifier sur Azure, c'est un peu différent. En général, la console PowerShell retourne un message qui commence par :

WARNING: Unable to acquire token for tenant '699090000000000000'

Et, il est demandé de relancer la commande en précisant l'ID du tenant. En fait, soit on récupère l'ID du tenant dans la console PowerShell, ou en amont via le portail Azure en mode Web.

Ce qui donne :

Connect-AzAccount -TenantId 699090000000000000

Là encore, il est nécessaire de s'authentifier et de valider la connexion avec la double authentification. Par exemple, via un code de sécurité envoyé sur l'adresse e-mail de secours.

Au final, on arrive quand même à se connecter à Azure même si c'est légèrement différent.

III. Se connecter avec les identifiants

Pour se connecter automatiquement à l'aide d'un script, ou utiliser une méthode plus habituelle, on peut s'appuyer sur l'utilisation d'identifiants via un objet PSCredential. Pour cela, on va stocker les identifiants dans une variable, par exemple $CredsAz et les utiliser au moment d'appeler Connect-AzAccount.

Pour obtenir les identifiants, il y a plusieurs façons de faire, notamment la manière interactive avec Get-Credential.

Ce qui donne :

$CredsAz = Get-Credential
Connect-AzAccount -Credential $CredsAz

En image :

Connect-AzAccount avec identifiants

Là encore, cette opération fonctionne très bien avec un compte Microsoft professionnel, rattaché à Office 365, par exemple.

Par contre, avec un compte Microsoft personnel, c'est pénible mais la connexion n'est pas possible de cette façon. La console retourne l'erreur "Connect-AzAccount: UsernamePasswordCredential authentication failed: ROPC does not support MSA accounts.". Personnellement, je n'ai pas trouvé de solution.

IV. Se connecter avec la méthode Device Login

La méthode de connexion "Device Login" nécessite de saisir un code de connexion sur le site de Microsoft. Ce code de connexion est généré sur la machine locale depuis laquelle on souhaite se connecter, d'où cette notion de "Device Login", car on authentifie le périphérique en quelque sorte.

Dans le but d'utiliser cette méthode de connexion, il faut utiliser le cmdlet Connect-AzAccount avec le paramètre "-DeviceCode" :

Connect-AzAccount -DeviceCode

Suite à l'exécution de cette commande, le message suivant s'affiche dans la console :

WARNING: To sign in, use a web browser to open the page https://microsoft.com/devicelogin and enter the code EST3WY5DN to authenticate.

En fait, il faut se connecter sur le site "https://microsoft.com/devicelogin" (depuis la même machine ou une autre machine), s'authentifier et saisir le code indiqué dans la console PowerShell, ici "EST3WY5DN".

Une fois que c'est fait, le message ci-dessous s'affiche dans le navigateur.

You have signed in to the Microsoft Azure PowerShell application on your device. You may now close this window.

La connexion est établie dans la console PowerShell : il ne reste plus qu'à l'exploiter ! 🙂

Sachez que pour déconnecter toutes les sessions ouvertes par l'utilisateur en cours, il y a une commande magique :

Clear-AzContext

Dans les prochains articles, nous verrons comment exploiter cette connexion à Azure établie avec PowerShell pour réaliser diverses actions.

author avatar
Florian BURNEL Co-founder of IT-Connect
Ingénieur système et réseau, cofondateur d'IT-Connect et Microsoft MVP "Cloud and Datacenter Management". Je souhaite partager mon expérience et mes découvertes au travers de mes articles. Généraliste avec une attirance particulière pour les solutions Microsoft et le scripting. Bonne lecture.
Partagez cet article Partager sur Twitter Partager sur Facebook Partager sur Linkedin Envoyer par mail

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.