PowerShell

Authentification PowerShell à Microsoft Graph via App Registration

Authentification PowerShell à Microsoft Graph via App Registration

Vous utilisez probablement déjà PowerShell pour administrer votre Tenant M365. Pour autant, saviez-vous que vous pouvez éviter d’avoir à vous authentifier avec votre compte Global Admin. En effet, vous pouvez créer et configurer une Managed Identity afin de pouvoir vous connecter en PowerShell avec une Application Registered.

Par défaut, lorsque vous voulez vous connecter en PowerShell à votre Tenant, vous exécutez probablement la commande suivante en précisant le niveau de permissions (Scopes) dont vous avez besoin. Une fois connecter, vous pouvez ainsi intervenir sur Entra ID au niveau des users, des groupes, etc.

Connect-MgGraph -Scopes "User.Read.All", "Group.ReadWrite.All"

Sauf qu’avec cette méthode vous devez généralement vous identifier sur une page de votre navigateur avec un prompt Microsoft qui va permettre de vous identifier. Vous devez alors saisir votre login/password ainsi que votre renforcement MFA. Mais il y a plus simple.

Etape 1 – Création d’une nouvelle App Registration

Une fois identifié avec votre compte Global Admin, rendez-vous dans Entra ID puis App Registrations. Créez une nouvelle application registration. Donnez lui le nom dont vous avez envie (un truc parlant).

Création d’une nouvelle App Registration

Conservez les options par défaut puis notez les éléments suivants (nous allons en avoir besoin plus tard) :

  • Application (client) ID
  • Object ID
  • Directory (tenant) ID
Récupérez les informations de votre app registration

Dans la section Certificates & secrets, rendez-vous dans Client secrets et créez un nouveau client secret. Choisissez une description puis une durée de validité. Notez qu’une fois l’expiration atteinte, vous devez générer à nouveau ce secret.

Créez un nouveau secret (genre de clé d’API)

Notez bien la value pour le client secret – elle ne va s’afficher qu’une seule fois et nous en aurons besoin plus tard.

Etape 2 – Ajouter les permissions (Scopes)

Il nous reste maintenant plus qu’à donner les permissions à notre App Registration. C’est le même principe que pour les Scopes en PowerShell sauf que là nous allons saisir exactement ce que notre App Registration a le droit de faire.

Pour cela, dirigez-vous dans la section API permissions. Cliquez sur Add a permission et choisissez les Scopes dont vous allez avoir besoin en fonction de si vous souhaitez agir sur les Users, les Groups, les Conditional Access, etc.

Sélectionnez Microsoft Graph puis Application permissions.

Ajoutez les permissions

Par exemple pour gérer (créer, modifier, supprimer) des utilisateurs et des groupes, utilisez les permissions ci-dessous :

User.ReadWrite.All
Group.ReadWrite.All
N’oubliez pas de grand admin consent

Une fois que c’est fait, n’oubliez pas de cliquer sur le bouton Grant admin consent for TENANT NAME. Si tout est bien configuré, vous devez avoir chaque ligne de permissions avec une coche verte sur la fenêtre à droite (comme sur mon screenshot ci-dessus).

Etape 3 – Tester la connexion en PowerShell

Il ne vous reste plus qu’à tester les quelques lignes de PowerShell ci-dessous pour vous connecter en 1 seule exécution sans avoir à vous authentifier manuellement sur la mire d’authentification Microsoft.

# Variables requises
$tenantId = "nnn-nnn-nnn-nnn-nnn"
$clientId = "nnn-nnn-nnn-nnn-nnn"
$clientSecret = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"

# Connexion en PowerShell
$secureSecret = ConvertTo-SecureString $clientSecret -AsPlainText -Force
$credential = New-Object System.Management.Automation.PSCredential($clientId, $secureSecret)

Connect-MgGraph -TenantId $tenantId -ClientSecretCredential $credential -NoWelcome

Si vous avez tout bien fait, la connexion sera immédiate.

Pour vérifier que vous êtes bien connecté, vous pouvez même exécuter la commande suivante et vérifier votre statut :

Get-MgContext
Connexion réussie

Comme vous le voyez ci-dessus, nous sommes bien connectés via notre App Registration puisque nous retrouvons bien le nom au niveau de AppName. Même chose, vous pouvez retrouver les permissions que vous aviez choisi précédemment dans le tableau Scopes.

Vous pouvez maintenant exécuter des scripts pour créer/modifier/supprimer des utilisateurs ou groupes (ou tout plein d’autres choses.

Etape 4 – Se déconnecter

Pour vous déconnecter proprement, utilisez la commande suivante :

Disconnect-MgGraph | Out-Null
Share
Published by
thibault

Recent Posts

GitHub Actions + Azure Container Instances : un lab CI/CD de 40 minutes

GitHub Actions + Azure Container Instances : un lab CI/CD de 40 minutes Un lab…

2 jours ago

MCT 2025-2026 : renouvellement de mon statut Microsoft Certified Trainer

MCT 2025-2026 : renouvellement de mon statut Microsoft Certified Trainer Mon statut Microsoft Certified Trainer…

4 jours ago

S3NS obtient la aualification SecNumCloud : un pas de géant pour la Sécurité du Cloud

S3NS Obtient la Qualification SecNumCloud : Un pas de géant pour la Sécurité du Cloud…

6 jours ago

Déployer automatiquement son site avec GitHub Actions et SFTP

Déployer automatiquement son site avec GitHub Actions et SFTP Il y a quelques temps j'ai…

2 semaines ago

Proton Sheets : une nouvelle alternative à Excel Online et Google Sheets

Proton Sheets : Une Nouvelle Alternative à Excel Online et Google Sheets Introduction Proton Sheets,…

3 semaines ago

Azure Bastion : connexion RDP avec Entra ID depuis le portail Azure (Preview)

Azure Bastion : authentification Entra ID en preview pour les connexions RDP via le portail…

3 semaines ago