Passer au contenu

Audit Google Workspace, lister les Groupes et leurs permissions

Découvrez comment lister les groupes d'un domaine Google Workspace, ainsi que leurs paramètres de manière automatisée via un Apps Script

Pourquoi ce script?

Nous avons reçu au support il y a quelques semaines une demande d’un client souhaitant extraire tous les groupes de sa plateforme Google Workspace avec les paramètres de partage et de sécurité de ceux-ci, ce qui n’est pas encore nativement possible. 

J’ai donc eu l’idée de créer un Google Apps Script listant tous les groupes de la plateforme, ainsi que certaines de leurs permissions et de mettre en forme ces informations dans un fichier Google Sheets.

Fonctionnement

Ce script utilise différentes API pour :

  • Extraire le nom de domaine de l’adresse mail  de l’administrateur exécutant le script
  • Lister les groupes
  • Extraire les privilèges des groupes
  • Créer et modifier la feuille de calcul

Prérequis 

Le compte qui exécutera le script devra disposer au minimum du droit de lecture sur les groupes du domaine :

Modularité

Il est tout à fait possible de modifier le script pour afficher d’autres paramètres de groupes, ou encore renommer les colonnes dans la feuille de calcul. Pour cela il faut dans un premier temps ajouter/modifier les colonnes dans le tableau “response”  dans la fonction listAllGroups :

function listAllGroups() {

 var pageToken ;

 var page ;

 var response = [] ;

 response.push( [‘Email ‘ , « WhoCanContactOwner » , « WhoCanViewMembership » , « WhoCanMoveTopicsIn » , « WhoCanMoveTopicsOut » , « WhoCanPostMessage » , « WhoCanModerateMembers » , « whoCanModifyMembers » , « WhoCanJoin » , « AllowExternalMembers » ] )

Toujours dans la même fonction, définir dans le même ordre que les colonnes paramétrées précédemment, les permissions que vous souhaitez afficher dans le tableau. Ce dernier sera par la suite injecté dans la feuille de calcul :

 For (var i = 0 ; i < groups.length; i++) {

       var group = groups [ i ] ;

       var settings = getGroupSettings(group.email) ;

       response.push([group.email, settings.whoCanContactOwner, settings.whoCanViewMembership, settings.whoCanMoveTopicsIn, settings.whoCanMoveTopicsOut, settings.whoCanPostMessage, settings.whoCanModerateMembers, settings.whoCanModifyMembers, settings.whoCanJoin, settings.allowExternalMembers ] ) ; }

Voir tous les paramètres de groupe : https://developers.google.com/admin-sdk/groups-settings/v1/reference/groups#json

Résultat

L’exécution du script résulte d’un lien menant au fichier Google Sheets créé avec l’adresse mail de tous les groupes et leurs permissions :

Le fichier en question :

Liens

Lien vers le Google Apps Script : https://script.google.com/d/1fIQwJa1bJFQzHNF9MTFF5F9TcLA6Kxek5CC9FyxcCVp7u3wvzAs1NKLp/edit?usp=sharing

Une fois sur le script, vous pouvez le copier comme ceci :

A noter qu’il faut autoriser certains services à accéder à votre compte : 

Lien vers le GitHub Devoteam G Cloud : https://github.com/devoteam-g-cloud/apps-script/tree/master/GoogleGroups/ListGroupsAndPermissions