Introduction
La gestion des groupes dans Entra ID peut nécessiter un suivi précis des modifications comme les ajouts, suppressions ou mises à jour. Les requêtes Delta Graph offrent une méthode efficace pour surveiller ces changements. Dans cet article, nous explorerons l'utilisation des requêtes Delta Graph, leurs limites, et des exemples de scripts PowerShell pratiques.
Comprendre les requêtes Delta Graph
Qu'est-ce qu'une requête Delta ?
Une requête Delta dans Microsoft Graph permet de détecter les ajouts, modifications ou suppressions d'objets sans nécessiter une lecture complète de la ressource. Cela permet d'optimiser les opérations de synchronisation entre une base locale et le stockage au sein d'Entra ID.
Bon à savoir
Fonctionnement des requêtes Delta
Pour utiliser une requête Delta, les étapes clés incluent :
- Établir une base initiale : Collecter les données de la ressource souhaitée avec les paramètres appropriés.
- Utilisation de l'URL deltaLink : La dernière page des résultats contient une URL spéciale (
deltaLink) qui servira pour suivre les changements ultérieurs. - Vérification des modifications : Utilisation de l'
deltaLinkpour récupérer les objets modifiés.
Créer une requête Delta
Pour récupérer la base initiale des groupes dans Entra ID, utilisez le script suivant :
1Connect-MgGraph -Scopes Group.Read.All2$Uri = 'https://graph.microsoft.com/v1.0/groups/delta?$select=id,DisplayName,MailNickName'3[array]$Baseline = $null4 5do {6 $Data = Invoke-MgGraphRequest -Method Get -Uri $Uri7 If ($Data.value) {8 $Baseline += $Data.value9 }10 If ($Data.'@odata.deltaLink') {11 $deltaLink = $Data.'@odata.deltaLink'12 $Uri = $null13 } Else {14 $Uri = $Data.'@odata.nextLink'15 }16} while ($Uri)17 18$DeltaLink | Out-File .\groupsdeltaLink.txtVérifier les modifications
Une fois la base définie, utilisez la deltaLink pour identifier les modifications :
1[array]$Data = Invoke-MgGraphRequest -Uri $DeltaLink -Method Get -OutputType PsObject2$Data.ValueCela renverra les valeurs des objets modifiés, incluant leurs propriétés mises à jour.
Utiliser les requêtes Delta "de maintenant"
Microsoft Graph permet également de créer une requête Delta immédiate pour surveiller les changements futurs. Voici un exemple de syntaxe :
1$Uri = "https://graph.microsoft.com/v1.0/groups/delta?`$deltatoken=latest"2$Data = Invoke-MgGraphRequest -Uri $Uri -Method Get -OutputType PsObject3$DeltaLink = $Data.'@odata.deltaLink'Cette méthode est utile si vous voulez commencer à surveiller les modifications sans récupérer les états actuels.
Limites et recommandations
Bien que les requêtes Delta soient performantes pour la synchronisation, elles présentent des limitations pour le reporting à long terme :
- Les jetons delta expirent après sept jours, rendant impossible le suivi des changements sur une période prolongée (par exemple, 30 jours).
- Les requêtes Delta ne fournissent pas d'informations sur les utilisateurs responsables des changements, contrairement aux journaux d'audit.
- Certaines fonctionnalités comme l'extension (
expand), le tri (orderby) et la sélection (top) ne sont pas prises en charge par les requêtes Delta.
Attention
Surveillance de groupes spécifiques
Il est possible de limiter une requête Delta à un sous-ensemble de groupes spécifiques en utilisant des filtres sur leurs identifiants. Voici un exemple :
1$Group1 = Get-MgGroup -Filter "displayName eq 'Finance Team'"2$Group2 = Get-MgGroup -Filter "displayName eq 'HR Department'"3$Uri = ("https://graph.microsoft.com/beta/groups/delta?$filter=id eq '{0}' or id eq '{1}'" -f $Group1.Id, $Group2.Id)4 5[array]$Baseline = Invoke-MgGraphRequest -Uri $Uri -Method Get -OutputType PsObjectCela permettra de surveiller les changements apportés uniquement à ces groupes spécifiques.
Alternatives et problèmes connus
Problèmes avec le module Graph SDK
Le module PowerShell Graph SDK ne prend pas en charge les liens delta, ce qui limite ses capacités pour les requêtes Delta. Cela reste un problème connu chez Microsoft.
Alternatives
Pour un suivi précis et une gestion complète des modifications, il est recommandé d'utiliser les journaux d'audit Entra ID ou des solutions de sauvegarde comme Entra ID Backup and Recovery, qui permettent de restaurer les modifications indésirables.
Astuce
Conclusion
Les requêtes Delta Graph sont une solution utile pour synchroniser et surveiller des changements de données en temps réel, mais elles ne conviennent pas pour une utilisation à des fins de reporting longue durée sur les objets modifiés. Explorez des outils comme les journaux d'audit Entra ID ou les options de sauvegarde pour une gestion complète des groupes.

Pour en apprendre davantage, vous pouvez explorer les autres sujets Microsoft Graph, comme l'intégration avec l'API, ou consulter les ressources sur l'automatisation avec PowerShell.

Rendez-vous sur Automating Microsoft 365 with PowerShell eBook pour optimiser vos scripts !



