Si vous travaillez dans le monde de Microsoft 365 vous avez forcément entendu parler des groupes Microsoft 365. Ces fameux groupes constituent la base de M365, et il n’est pas simple de comprendre leur définition exacte.
Gérer la création des groupes Microsoft 365 dans son environnement
Vous créez un site d’équipe SharePoint ? => Un groupe est créé.
Vous créer une équipe Teams ? => Un groupe aussi.
De même pour un plan Planner et d’autres applications. Pour savoir quand un groupe est créé et les services qu’il apporte, je vous recommande cet article de Matt Wade qui est idéal quand on souhaite en savoir plus sur ces groupes.
En tout premier lieu, dans une entreprise qui souscrit à Microsoft 365, les applications qui font partie du service sont mises en avant et utilisées pour la collaboration. Forcément, on ne va pas payer un abonnement pour au final utiliser Google Sheet au lieu d’Excel. Beaucoup de groupes sont créés et cela peut devenir compliqué à administrer. Quand un nouveau projet arrive dans l’entreprise, des nouvelles instances des outils sont créées.
Le problème, c’est qu’il n’existe pas d’outil dans M365 pour gérer la création de groupe avec des requêtes et un système de validation.
Donc soit on laisse la main aux utilisateurs et on risque de se retrouver avec un espace Administrateur remplit de groupe, soit on laisse les admins créer les groupes ce qui leur ajoute du travail supplémentaire.
En bref, ce sont des questions de gouvernance pour lesquelles Solution Obvie peut vous assister dans leur mise en œuvre en fonction de vos besoins. C’est pourquoi nous vous proposons aujourd’hui cet article pour vous expliquer comment mettre en place une application de provisioning de groupe débarque et sauver les citoyens de Microsoft 365 city.
En plus on utilise les technos montantes et modernes ! Du Power Apps, du Power Automate, du Powershell… bon peut-être pas pour PowerShell mais ça reste une technologie très prisée !
L’objectif de l’application
Le but de l’application est de permettre à l’utilisateur de demander la création d’un groupe. Dans un formulaire, l’utilisateur choisi un nom, une description, ajoute des utilisateurs et a aussi la possibilité d’ajouter un Teams avec un template ou non. Une fois la requête envoyée, un administrateur reçoit la demande à valider. L’utilisateur peut suivre l’évolution de sa requête à travers un tableau regroupant ses requêtes et leur statut. Une fois la requête traitée, l’utilisateur est notifié par un mail.
La méthode proposée dans cet article est une des multiples possible dans l’environnement Microsoft 365. Ici, le design de l’application est inspirée d’une solution proposée par Microsoft pour provisionner des équipes Teams. Voici le lien vers le dépôt Git de la solution.
Les technologies impliquées
Avant de plonger dans le fonctionnement de l’application, je vous propose de faire un récapitulatif des technologies :
- Power Apps :
Pour le front de l’application et son design, on retrouve l’étoile montante Power Apps. On utilise Power Apps pour mettre en place des formulaires rapidement et simplement ! En plus c’est une techno dite « Low code », adaptée aux « Citizen developers ».
- Power Automate :
En restant dans la famille des Power, on retrouve Automate (anciennement Flow). On va l’utiliser pour le back de notre appli, l’algo qui va s’occuper de la création du groupe et de tout ce qui va avec. Comme son collègue PowerApps, on peut dire que c’est une techno qui a une prise en main rapide.
- SharePoint :
Un outil qui se combine bien avec les amis ci-dessus est SharePoint. On va l’utiliser pour stocker nos requêtes de groupe et quelques paramètres qui vont nous servir lors du déploiement de l’application.
- Microsoft Graph API :
Pour aller un peu plus loin et pousser au max les capacités de Power Apps et Automate, on va utiliser Microsoft Graph API. Quand une action Power Automate ne propose pas les options que l’on souhaite, quand on est bloqué, il nous propose des solutions. Tout repose sur lui dans cette application. Il va nous permettre de créer les groupes Microsoft 365 parce qu’il n’existe pas encore d’action ou de connecteur out-of-the-box office 365 pour les créer directement.
- PowerShell :
Puis vient l’étape de déploiement. Et la technologie ultime pour déployer dans un environnement Microsoft c’est PowerShell. Et quand il est combiné avec PnP pour déployer du SharePoint il est encore plus puissant.
Le développement
Dans cette application de provisioning, nous utilisons SharePoint et ses listes pour stocker les requêtes et autres informations. Nous allons créer 3 listes :
- Group Requests :
Cette liste va servir à stocker les requêtes de groupes avec leurs metadatas. Un item sera ajouté par l’interface PowerApps et mis à jour par le Flow PowerAutomate.
- Group Request Settings :
Cette liste va servir à stocker les informations utiles relatives à l’application. Elle va notamment permettre au Flow PowerAutomate de récupérer des informations pour paramétrer automatiquement des actions et éviter de devoir les modifier à chaque nouveau déploiement.
- Teams Templates :
Cette liste va servir à stocker les ID et description des templates Teams. Cette liste est créée car à cette date on ne peut pas encore retrouver la liste des templates disponibles dans l’espace admin Teams. Il faut alors passer par une liste qui est remplie manuellement. Au déploiement, la liste est préremplie avec les templates par défaut de Microsoft 365. Vous pouvez ajouter vos templates après déploiement.
L’application PowerApps
- Pour créer un formulaire rapide qui ajoute un item dans une liste SharePoint, PowerApps est la solution moderne mise en avant par Microsoft. Dans notre application nous avons besoins de 3 écran :
- Une page Home
- Une page pour le formulaire
- Une page pour voir l’état des requêtes
- Pour éviter d’avoir des groupes avec les même noms, un custom connector avec une requête Graph API sur les groupes est créé. Cette fonctionnalité nécessite d’avoir PowerApps Premium. Si vous n’allez pas sur des versions avec licences de Power Apps, il faudra faire une version dégradée de cette fonction en se basant uniquement sur les éléments stockés dans la liste SharePoint.Au niveau du design du formulaire, l’application proposée par Microsoft est très épurée et user friendly. Le formulaire de base de Power Apps est fonctionnel mais très limité dans la disposition des contrôles. Même si toutes les entreprises ne sont pas spécialisées dans l’art graphique, une interface avec un minimum de design est plus sympathique à utiliser. La bonne pratique préconisée est de cacher les champs du formulaire et de créer des nouveaux contrôles. Il suffit ensuite de paramétrer les valeurs par défaut des champs du formulaires avec la valeur des nouveaux contrôles.
- Une fois le formulaire envoyé, l’item est créé dans la liste SharePoint. L’application redirige vers la page Historique qui affiche les requêtes de l’utilisateur connecté.
Le flux PowerAutomate
Grâce à un flow automatisé qui se déclenche à la création d’un item dans une liste SharePoint, la magie va pouvoir opérer. Plusieurs étapes constituent le Flow :
- Initialisation des variables
- Lancement d’une Approbation
- Création du groupe
- Ajout d’une équipe Teams ou non
- Mise à jour du statut du groupe
- Envoie d’un mail avec le résultat
Power Automate permet énormément de choses en mode gratuit, mais pas la création de groupe Office. En activant la version Premium, on débloque de nouvelles possibilités et actions. L’une d’entre elles est l’action HTTP. Avec celle-ci, il est possible de s’authentifier sur une application Azure AD qui possède des droits pour utiliser Graph API. La documentation Microsoft détails toutes les requêtes possibles ici.
Le déploiement
Pour déployer l’application dans votre tenant un package est disponible sur ce repository Github. Voici ce qu’il contient :
- Solution Power Apps et Automate
- Custom Connector Power Apps
- Script de déploiement
- Template pour le site SharePoint et les listes
- Fichier Excel pour préremplir les listes SharePoint Teams Template et Settings
Pour faciliter le déploiement, et surtout éviter les erreurs humaines, la plupart des actions sont automatisées. Pour le moment il n’est pas possible de déployer des solutions PowerApps et PowerAutomate via PowerShell. Cette partie restera donc manuelle.
Le script va intervenir pour la création du site SharePoint et de ses listes ainsi que pour la création de l’application pour utiliser Graph API dans Azure AD. Durant le déroulement du script, des connexions sont effectués à Azure AD et SharePoint Online. Il faut donc prévoir un compte avec des droits Admins pour chacun des outils.
Une fois le script appliqué, il faut importer les solutions PowerApps et PowerAutomate. Après de légère configuration pour créer les nouvelles connexions, l’application est prête à être utilisée !
Aller plus loin
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