Synchroniser des groupes de sécurité avec des groupes Microsoft 365

La gestion des droits dans le monde de Microsoft 365 est une chose importante qui est principalement gérée par les groupes Microsoft 365. A chaque création d’un groupe Microsoft 365, une suite d’outils est ajoutée à ce groupe, comme un site SharePoint ou une équipe Teams. Ainsi, dans les grandes organisations, de nombreux groupes sont créés. Des groupes de sécurité et des groupes Microsoft 365 dont il faut en assurer la sécurité. Dans le cas d’une organisation avec beaucoup de mouvement interne, il est aussi important de les maintenir, qu’ils soient publics ou privés.

Comment automatiser la synchronisation entre des groupes Microsoft 365 et les groupes de sécurité ?

Pour cela, il est par exemple possible d’ajouter à chaque groupe des responsables pour qu’ils aient un accès aux outils et données de ce groupe. De même, faire ces ajouts à la main pour chaque nouveau groupe peut-être une étape fastidieuse, et difficile à maintenir. Ainsi, c’est ici que les groupes de sécurité rentrent en jeu.

Les groupes de sécurité sont des groupes qui peuvent être utilisés pour maintenir plus facilement la gestion de droits. Par exemple on peut définir un groupe de personne à inclure dans chaque site SharePoint pour maintenir la sécurité. D’ailleurs, sn des points forts des groupes de sécurité est qu’il est possible d’y inclure un autre groupe de sécurité. Cependant, il y a un problème, il n’est pas possible d’ajouter un groupe de sécurité dans un groupe Microsoft 365. 

Dans cet article, nous allons voir un exemple d’application qu’il est possible de mettre en place pour avoir la possibilité d’ajouter un groupe de sécurité dans un groupe M365.

L’objectif de l’application permettant la synchronisation des groupes de sécurité et des groupes Microsoft 365

Cette application permet de synchroniser un groupe de sécurité avec un groupe M365. Pour ce faire, une interface est placée dans le site SharePoint du groupe M365. Un choix de groupes de sécurité est disponible et on synchronise ensuite les 2 groupes. Aussi, cette synchronisation ajoute les membres du groupe de sécurité au groupe M365. Par contre si on fait des modifications dans le groupe de sécurité, elle ne sont pas automatiquement répliquées dans le groupe M365 associé. De plus, pour suivre ces modifications, une action de synchronisation est disponible depuis l’interface située dans SharePoint. En outre, un script quotidien synchronise aussi les 2 groupes. 

Les technologies impliquées

Avant de plonger dans le fonctionnement de l’application, je vous propose de faire un récapitulatif des technologies :

  • SharePoint Framework :

SPFX est la méthode de développement sous SharePoint mise en avant par Microsoft. Elle permet d’instancier un projet d’application Web sous forme d’une WebPart rapidement. Pour développer, nous allons principalement utiliser ReactJS. 

Cette WebPart va servir d’interface pour notre application et va appeler les scripts powershell qui vont agir sur les groupes.

  • Azure Function PowerShell :

Azure permet d’hoster des fonctions et de pouvoir les exécuter via un appel HTTP. Ici nous allons utiliser des fonctions PowerShell pour effectuer des actions sur les groupes M365. Nous utilisons aussi PowerShell pour le déploiement de l’application.

Le développement

Avant tout, au niveau du développement, l’application se situe à 2 niveaux dans Microsoft 365 :

  • Le premier est global, cela va concerner l’application Azure avec les bonnes permissions pour agir sur les groupes et l’application de function Azure avec les fonctions PowerShell. Ce niveau constitue la partie « back » de l’application.
  • Le deuxième niveau est présent dans chaque groupe M365 qui utilise l’application. C’est l’interface qui est déployée dans le site SharePoint du groupe. Ce niveau constitue la partie « front » de l’application.

L’application Azure

  • L’application Azure va nous permettre de nous authentifier et d’avoir les permissions nécessaires pour agir sur les groupes. Cette pratique est très utile pour éviter d’utiliser des comptes Admin pour avoir les droits. Dans l’article concernant l’application de provisioning de groupe M365, nous utilisons aussi les Azure applications. Les permissions à appliquer concernent Graph Api, SharePoint et Azure Active directory.Il faudra aussi ajouter à cette application un certificat. Ce dernier va nous permettre de nous authentifier via les fonctions Powershell et d’utiliser cette Azure application. 

La fonction application Azure

  • La fonction application Azure contient des scripts qui sont hébergés sur Azure. Ici plus précisément nous avons besoin de 4 scripts : 
Capture d'écran application Azure - Article sur les Groupes de Sécurité et Microsoft 365

3 scripts HTTP :

  • Ajout d’un groupe de sécurité dans un groupe M365, ce script ajoute les membres d’un groupe de sécurité à un groupe M365. Avant l’ajout, les membres du groupe M365 de base sont sauvegardés dans un Property Bag du site SharePoint du groupe. Les membres du groupe de sécurité sont aussi sauvegardés dans un Property Bag.
  • Synchronisation du groupe de sécurité associé à un groupe M365, ce script va récupérer les membres du groupe de sécurité associé, et les comparer avec ceux sauvegardés dans le Property Bag. Il ajustera en ajoutant ou en supprimant les membres du groupe M365 associé au groupe de sécurité. Avant ajout ou suppression, on vérifie si le membre n’était pas déjà dans le groupe M365 avant l’association du groupe de sécurité. Si c’est le cas aucune action n’est lancée.
  • Suppression d’un groupe de sécurité associé à un groupe M365, ce script supprime les membres du groupe de sécurité qui étaient ajoutés au groupe M365. On récupère les valeurs Property Bag des membres sécurités et des membres M365 de base, puis on retire chaque utilisateur du Property Bag sécurité du groupe M365 en regardant s’il n’était pas déjà dans le groupe de base.

1 script Timer : 

  • Synchronisation des groupes de sécurité associés à des groupes M365, ce script peut-être exécuté quotidiennement pour synchroniser chaque groupe M365 qui dispose de l’application. Pour vérifier si l’application est installée, on se connecte au site SharePoint des groupes et on regarde si la valeur du Property Bag « syncGroupAppEnabled » est à true. Si oui on effectue les mêmes actions que dans le script de synchronisation. 

L’interface SharePoint

De surcroît, l’interface SharePoint est une application SPFX déployée dans chaque site SP d’un groupe M365. Au départ, on choisit un groupe de sécurité à associer à notre groupe Microsoft 365. La liste des groupes de sécurité disponibles est à préciser dans un fichier Excel, elle sera ensuite stockée dans un Property Bag au déploiement de l’application SPFX.

capture d'écran de l'interface SharePoint - Groupes de Sécurité Microsoft 365

Une fois le groupe associé, l’interface présente 2 options : Sync ou Remove.

Capture écran

On retrouve aussi l’information de la dernière synchronisation, ainsi que les utilisateurs ajoutés ou supprimés lors de cette dernière synchro.

Le déploiement

En tout premier lieu, notez bien que l’application, présentée ici, est disponible sur ce repository github

Ensuite, concernant le package de déploiement, il comprend les fichiers suivants :

  • Un dossier certificates, il contient le certificat à déployer dans l’application Azure pour s’authentifier.
  • Un ficher deployAzure.ps1, script qui permet de déployer l’Azure Application et la fonction application Azure.
  • Un fichier manifest.json, fichier qui contient les permissions à ajouter sur l’Azure application.
  • Un dossier zip PowerShellGroupOperation.zip, dossier qui contient les fonctions Azure à déployer dans la fonction application Azure.
  • Un fichier deploySPFX.ps1, script qui permet de déployer l’application SPFX et de créer les Property Bag dans le site SharePoint.
  • Un fichier securityGroups.xlsx, il contient les groupes de sécurité qui seront utilisés dans l’application et ajouter dans le Property Bag.

Afin de déployer cette application on procède en 2 étapes : 

Premièrement, il est question de déployer le premier niveau de l’application. On va créer l’Azure Application et la fonction application Azure. On effectue cette étape une seule fois.

Deuxièmement, il faut déployer l’application SPFX et créer les Property Bag dans le site SharePoint. On effectue cette étape pour chaque groupe Microsoft 365 auxquels on veut synchroniser un groupe de sécurité.

Enfin, la plupart des actions sont automatisées par des scripts PowerShell.

Aller plus loin sur la synchronisation des groupes de sécurité et des groupes Microsoft 365

Si vous voulez continuer dans la voie de l’utilisation d’applications pour faciliter l’administration de votre tenant Microsoft 365, je vous conseille de nous contacter pour vous présenter les différentes solutions alternatives.

Henri Desmet


Administration Microsoft Capitaine Obvie Green IT Microsoft Viva MS Teams OneDrive Outlook Power Apps Power BI Power Platform SharePoint Solution Obvie Stream Transformation Numérique