Introduction
Microsoft Graph offre une puissante API permettant aux administrateurs de gérer et de consulter les données des groupes Microsoft 365 (M365). Toutefois, choisir les permissions appropriées pour accéder aux propriétés et aux ressources des groupes peut s'avérer complexe. Cet article explique en détail les permissions clés comme Group.Read.All et GroupMember.Read.All, et leurs implications dans divers scénarios applicatifs.
Bon Ă savoir

Permissions déléguées vs permissions d'application
Quand utiliser Group.Read.All et GroupMember.Read.All
La permission Group.Read.All permet de lire les propriétés des groupes, tandis que GroupMember.Read.All est conçue pour accéder à des informations de base comme les membres et les propriétaires des groupes. Voici les distinctions principales :
- Group.Read.All : Accès au contenu complet des groupes, y compris les ressources associées comme les fichiers SharePoint, le calendrier et les conversations d'équipe.
- GroupMember.Read.All : Accès limité aux informations de base, idéal pour des scénarios de reporting ou d'audit.
Attention
Accès délégué avec Group.Read.All
La permission déléguée Group.Read.All permet à un utilisateur connecté de lire toutes les informations de groupes auxquels il a un accès direct ou via un rôle administrateur Entra ID. Voici un exemple PowerShell pour accéder aux détails d'un groupe et des conversations associées :
1$Group = Get-MgGroup -Filter "displayName eq 'Ultimate Guide to Office 365'" 2[array]$Conversation = Get-MgGroupConversation -GroupId $Group.Id -Top 1 3$Conversation | Format-List Id, LastDeliveredDateTime, Preview, UniqueSendersAstuce
Permissions d'application : Plus puissantes
Lorsque vous utilisez Group.Read.All comme permission d’application, l'accès est global à tous les groupes Entra ID. Cela confère un pouvoir considérable, mais nécessite des contrôles d'accès rigoureux pour éviter les abus. Cette permission ne prend pas en charge les calendriers des groupes, une limitation importante à noter.
La nature minimale de GroupMember.Read.All
GroupMember.Read.All est spécifiquement conçu pour fournir :
- L'identifiant du groupe et son nom d'affichage.
- La liste des membres, y compris les membres transitifs.
Cette permission n'accorde pas d'accès aux ressources des groupes. Elle est idéale pour des scripts ou des applications qui doivent répondre à des questions comme « À quels groupes cet utilisateur appartient-il ? ».
Voici un exemple pour récupérer les membres avec PowerShell :
1[array]$Members = Get-MgGroupMember -GroupId $Group.Id 2$Members | Format-Table Id, DisplayNameRécupération des informations utilisateur
Bien que GroupMember.Read.All constitue une base solide pour l'accès aux groupes, la récupération de propriétés utilisateur spécifiques comme le nom d'affichage ou l'adresse e-mail nécessite une permission supplémentaire, telle que User.ReadBasic.All. Sans cette dernière, seules les informations de base seront exposées :
1$Members.additionalPropertiesImportant
Conclusion
Le choix des permissions Microsoft Graph appropriées repose sur une évaluation précise des exigences de votre application :
- GroupMember.Read.All : Pour un accès limité à la composition des groupes.
- Group.Read.All : Pour une gestion complète des données et des ressources des groupes.
- User.ReadBasic.All : Pour récupérer des détails spécifiques des membres.
Définir vos besoins
Identifiez si votre application nécessite un accès aux ressources des groupes ou uniquement aux informations de base.
Choisir les permissions
Sélectionnez les permissions avec le modèle de moindre privilège (par ex., commencez par GroupMember.Read.All).
Appliquer et tester
Configurez les permissions dans Entra ID et testez les scénarios d'utilisation à l'aide de PowerShell.
Pour aller plus loin
Explorez nos autres articles sur la gestion des groupes M365 et l’optimisation des scripts PowerShell grâce à Microsoft Graph :
Tags : Utilisez ces permissions pour améliorer vos scripts PowerShell ou des applications M365.



