IAMinerva
AccueilBlogA propos
m3Nouveautes M365coMicrosoft CopilotteMicrosoft TeamsshSharePoint & OneDriveinIntune & SecuriteexExchange & OutlookpoPower PlatformazAzure & Entra IDtuTutoriels & GuidesevEvenements & ConferencesseSecuritewiWindows
IAMinerva

Blog professionnel dedie a l'ecosysteme Microsoft 365.

Liens rapides

AccueilBlogA proposNewsletter

Restez informe

Recevez les dernieres actualites Microsoft 365 directement dans votre boite mail.

© 2026 IAMinerva. Tous droits reserves.

Construit avecNext.js&Tailwind
Configuration et déploiement d'Unified Tenant Configuration Management dans Microsoft 365
BlogTutoriels & GuidesConfiguration et déploiement d'Unified Tenant Configuration Management dans Microsoft 365
Tutoriels & Guides#UTCM#Configuration Management#PowerShell

Configuration et déploiement d'Unified Tenant Configuration Management dans Microsoft 365

Guide complet pour implémenter UTCM, la solution native de Microsoft pour surveiller et gérer la dérive de configuration dans votre tenant Microsoft 365.

Houssem MAKHLOUF
1 février 2026
7 mars 2026
6 min de lecture

TL;DR par Minerva

généré par IA

Guide complet pour implémenter UTCM, la solution native de Microsoft pour surveiller et gérer la dérive de configuration dans votre tenant Microsoft 365.

Introduction

La gestion des configurations d'un tenant Microsoft 365 représente un défi majeur pour les administrateurs IT. Les modifications non autorisées ou involontaires peuvent compromettre la sécurité et la conformité de l'environnement. Microsoft Unified Tenant Configuration Management (UTCM) répond à cette problématique en offrant une solution native de surveillance des dérives de configuration.

Cette fonctionnalité permet de capturer l'état désiré de votre tenant et de détecter automatiquement les écarts par rapport à cette référence. Dans cet article, nous détaillons la procédure complète d'implémentation d'UTCM via PowerShell.

i

Prérequis

UTCM est actuellement en preview publique. Certaines fonctionnalités peuvent évoluer avant la disponibilité générale.

Architecture et composants d'UTCM

UTCM s'articule autour de trois composants fondamentaux qui travaillent en synergie :

Snapshots (Instantanés)

Les snapshots constituent des captures ponctuelles de l'état de vos ressources Microsoft 365. Ils peuvent inclure les stratégies d'accès conditionnel, les règles de transport Exchange, ou plus de 300 types de ressources différents.

Monitors (Moniteurs)

Les monitors fonctionnent comme des moteurs de surveillance. Ils comparent périodiquement l'état actuel de votre tenant avec un snapshot de référence et détectent les écarts.

Drifts (Dérives)

Les drifts représentent les différences identifiées entre l'état actuel et l'état désiré. Par exemple, la modification du nom d'affichage d'une stratégie d'accès conditionnel.

!

Limites à connaître

Chaque composant d'UTCM a des limites spécifiques documentées dans la documentation Microsoft Learn sur les limites des APIs.

Prérequis techniques

Avant de débuter l'implémentation, assurez-vous de disposer des éléments suivants :

  • PowerShell 7 installé sur votre poste de travail
  • Un compte Administrateur Global pour l'attribution des permissions
  • Les scopes Microsoft Graph appropriés

Pour vous connecter à Microsoft Graph avec les permissions nécessaires :

⚡PowerShell
1Connect-MgGraph -Scopes 'ConfigurationMonitoring.ReadWrite.All'

Configuration du principal de service UTCM

UTCM utilise un principal de service dédié pour accéder aux ressources surveillées. Ce principal doit disposer des permissions appropriées selon les types de ressources monitörées.

1

Installation des modules PowerShell

Installez le module Microsoft Graph Authentication requis :

⚡PowerShell
1Install-Module Microsoft.Graph.Authentication
2

Connexion avec permissions étendues

Connectez-vous à Microsoft Graph avec les permissions d'écriture d'applications :

⚡PowerShell
1Connect-MgGraph -Scopes 'Application.ReadWrite.All'
3

Création du principal de service

Exécutez le script suivant pour créer et configurer le principal de service UTCM :

⚡PowerShell
1# Création du principal de service UTCM
2$body = @{
3 appId = "03b07b79-c5bc-4b5e-9bfa-13acf4a99998"
4}
5Invoke-MgGraphRequest -Uri "v1.0/servicePrincipals" -Method POST -Body $body
6
7# Attribution des permissions nécessaires
8$permissions = @('Policy.Read.All', 'Policy.ReadWrite.ConditionalAccess')
9$graph = Invoke-MgGraphRequest -Uri "v1.0/servicePrincipals?`$filter=appId eq '00000003-0000-0000-c000-000000000000'" -Method GET -OutputType PSObject | Select -Expand Value
10$utcm = Invoke-MgGraphRequest -Uri "v1.0/servicePrincipals?`$filter=appId eq '03b07b79-c5bc-4b5e-9bfa-13acf4a99998'" -Method GET -OutputType PSObject | Select -Expand Value
11
12foreach ($requestedPermission in $permissions) {
13 $AppRole = $Graph.AppRoles | Where-Object { $_.Value -eq $requestedPermission }
14 $body = @{
15 appRoleId = $AppRole.Id
16 resourceId = $Graph.Id
17 principalId = $UTCM.Id
18 } | ConvertTo-Json
19
20 Invoke-MgGraphRequest -Uri "/v1.0/servicePrincipals/$($UTCM.Id)/appRoleAssignments" -Method POST -Body $body
21}
✦

Permissions personnalisées

Si vous surveillez d'autres types de ressources, adaptez le tableau $permissions en conséquence. Par exemple, ajoutez 'Policy.Read.AuthenticationMethod' pour monitorer les stratégies de méthodes d'authentification.

Création d'un snapshot de référence

Un snapshot représente l'état désiré de vos configurations. Il est crucial de le capturer lorsque vos ressources sont dans l'état optimal.

Snapshot des stratégies d'accès conditionnel

⚡PowerShell
1$uri = "beta/admin/configurationManagement/configurationSnapshots/createSnapshot"
2$body = @{
3 displayName = "Baseline Accès Conditionnel"
4 description = "Stratégies CA critiques de production"
5 resources = @(
6 "microsoft.entra.conditionalaccesspolicy"
7 )
8}
9Invoke-MgGraphRequest -Uri $uri -Method POST -Body $body

Snapshot multi-ressources

Pour capturer plusieurs types de ressources simultanément :

⚡PowerShell
1resources = @(
2 "microsoft.entra.conditionalaccesspolicy",
3 "microsoft.entra.authenticationmethodpolicy",
4 "microsoft.exchange.transportrule"
5)
!

Mapping des permissions

Chaque type de ressource nécessite des permissions spécifiques. Microsoft ne fournit pas de mapping public complet, une analyse est parfois nécessaire.

Déploiement d'un moniteur de configuration

Une fois le snapshot créé, configurez le moniteur pour surveiller en continu vos ressources.

⚡PowerShell
1# Récupération des détails du snapshot
2$filter = "displayName eq 'Baseline Accès Conditionnel'"
3$uri = "beta/admin/configurationManagement/configurationSnapshotJobs/?`$filter=$filter"
4$snapshot = Invoke-MgGraphRequest -Uri $uri -Method GET -OutputType PSObject | Select -Expand Value
5$resourceLocation = $snapshot[0].resourceLocation
6$resources = Invoke-MgGraphRequest -Uri $resourceLocation -Method GET
7$fineResources = $resources | Select displayName, description, resources
8
9# Création du moniteur
10$uri = "beta/admin/configurationManagement/configurationMonitors"
11$body = @{
12 displayName = "Moniteur Accès Conditionnel Production"
13 description = "Surveillance continue des stratégies CA critiques"
14 baseline = @{
15 displayName = $fineResources.displayName
16 description = $fineResources.description
17 resources = ($fineResources.resources | Select-Object -Property displayName, resourceType, properties)
18 }
19} | ConvertTo-Json -Depth 10
20Invoke-MgGraphRequest -Uri $uri -Method POST -Body $body

Surveillance et analyse des résultats

Consultation du statut des tâches de monitoring

Les moniteurs s'exécutent automatiquement toutes les 6 heures. Pour consulter les résultats :

⚡PowerShell
1# Identification du moniteur
2$filter = "displayName eq 'Moniteur Accès Conditionnel Production'"
3$uri = "beta/admin/configurationManagement/configurationMonitors/?`$filter=$filter"
4$monitorJob = Invoke-MgGraphRequest -Uri $uri -Method GET -OutputType PSObject | Select -Expand Value
5
6# Récupération des résultats de monitoring
7$filter = "monitorId eq '$($monitorJob[0].id)'"
8$uri = "/beta/admin/configurationManagement/configurationMonitoringResults?`$filter=$filter"
9$monitorResults = Invoke-MgGraphRequest -Uri $uri -Method GET -OutputType PSObject | Select -expand Value

La propriété driftsCount dans $monitorResults indique le nombre de dérives détectées.

Configuration Monitor Results

Analyse détaillée des dérives

Lorsque des dérives sont détectées, analysez-les en détail :

⚡PowerShell
1$filter = "monitorId eq '$($monitorJob[0].id)'"
2$uri = "/beta/admin/configurationManagement/configurationDrifts/?`$filter=$filter"
3$configurationDrifts = Invoke-MgGraphRequest -Uri $uri -Method GET -OutputType PSObject | Select -expand Value

Configuration Drift Results

Pour une analyse approfondie, convertissez les résultats en JSON :

⚡PowerShell
1$configurationDrifts | ConvertTo-Json -Depth 10

View drift details

Automatisation et intégration

✦

Recommandation d'automatisation

Intégrez ces commandes PowerShell dans un runbook Azure Automation ou une Azure Function pour automatiser la détection et les alertes de dérive.

Pour une utilisation en production, considérez :

  • Notifications automatiques via Microsoft Teams ou email
  • Intégration avec Azure Monitor pour les alertes
  • Rapports périodiques de conformité
  • Workflows d'approbation pour les changements détectés

Tableau comparatif des types de ressources surveillées

Type de ressourcePermission requiseCas d'usage
microsoft.entra.conditionalaccesspolicyPolicy.ReadWrite.ConditionalAccessStratégies d'accès conditionnel
microsoft.entra.authenticationmethodpolicyPolicy.Read.AuthenticationMethodMéthodes d'authentification
microsoft.exchange.transportruleMail.ReadWriteRègles de transport Exchange
microsoft.sharepoint.tenantSettingsSharePointTenantSettings.ReadWrite.AllParamètres tenant SharePoint

Conclusion

Unified Tenant Configuration Management représente une avancée significative dans la gestion des configurations Microsoft 365. Cette solution native permet aux équipes IT de maintenir l'intégrité et la conformité de leur environnement de manière proactive.

Bien qu'UTCM soit actuellement exposé uniquement via des APIs REST, son intégration dans des solutions automatisées permet de créer un système de surveillance robuste. L'investissement initial en développement PowerShell est compensé par la réduction significative des risques de dérive de configuration et l'amélioration de la posture de sécurité globale.

La prochaine étape consiste à intégrer ces capacités dans vos processus opérationnels existants pour créer un écosystème de gouvernance Microsoft 365 mature et automatisé.

Partager:
HM

Houssem MAKHLOUF

Microsoft 365 enthusiast & IT professional.

Article précédent

Migration de Teams Live Events vers Teams Events : ce que vous devez savoir pour 2025-2027

29 janv. 2026
Article suivant

Migration obligatoire vers Windows App : la fin programmée du Bureau à distance Microsoft

2 févr. 2026

Articles similaires

Exécution de scripts PowerShell pour auditer des applications AI et gérer leurs enregistrements.copilot

Auditer et Gérer les Applications AI avec PowerShell

Auditez les applications AI non autorisées dans Entra ID avec PowerShell et Microsoft Graph pour renforcer contrôle et sécurité.

28 juin 20265 min
Graphiques abstraits et géométriques avec des couches de couleurs translucides.exchange

Convertir les IDs Exchange pour l'API Graph Microsoft 365

Convertissez les identifiants Exchange (storeId, entryId, RestId) pour l'API Graph et l'eDiscovery ciblée. Guide technique avec scripts PowerShell complets.

28 juin 20268 min
Arbre stylisé en doré sur fond noir avec des éléments circulaires.azure

Choisir le bon type d’extension dans Microsoft Entra

Découvrez les types d'extensions Microsoft Entra et choisissez la configuration optimale pour vos objets directory en tenant compte de leur usage.

27 juin 20265 min