Gérer les droits appliqués sur des boîtes aux lettres Exchange Online


Actuellement, il n’existe pas de cmdlet permettant aux administrateurs de lister les permissions posées sur les boîtes aux lettres. Les seules instructions PowerShell dont disposent les administrateurs BPOS sont Get-MSOnlineUser et Get-XsHostedExchangeMailbox (pour lister les propriétés d’une boîte aux lettres), Add-MSOnlineMailPermission (pour ajouter une permission), Remove-MSOnlineMailPermission (pour en retirer)… Pas de chance, il n’y a pas de Get-MSOnlineMailPermission. De ce fait, il est impossible au travers de la console d’administration et au travers de PowerShell de retrouver les droits alloués à un utilisateur sur une boîte aux lettres données. De plus, les actions de partage d’accès au niveau d’Outlook (client-side) et au niveau d’Exchange (server-side) peuvent se superposer. Il est donc important à la base de choisir la technique utilisée. Les règles au niveau d’Outlook sont stockées dans le profil, les règles coté Exchange sont stockées dans la base de registre du serveur. Selon nous, pour une gestion centralisée des droits, et surtout si l’administration est déléguée, ce sont les permissions PowerShell qui devraient être la base de votre stratégie et qui devraient être utilisées (les règles Outlook restant  exclusivement réservées à l’allocation de permissions entre les utilisateurs, et ne dépendant pas des règles de gestion centralisée de l’IT gérées par l’administrateur).

Ce qui revient surtout à savoir user d’une méthode fiable pour la gestion des règles et pallier à l’absence de commandes ad-hoc au niveau des interfaces.

Méthode :

  • Déterminer avec le client un tableau des règles à appliquer (voir le format ci-après). Ce tableau doit être réalisé directement au format CSV. Si des règles sont déjà établies et qu’il en existe une trace, les intégrer au tableau,
  • Nettoyer toutes les anciennes règles qui pourraient déjà avoir été posées par erreur ou si on ne s’en souvient plus. Pour cela, créer un tableau CSV qu’on utilisera qu’une seule fois et qui supprime toutes les  règles de type GrantFullAccess, GrandSendAs, GrantSendOnBehalfOf,
  • Une fois que le tableau des règles à appliquer est prêt, passer la commande qui va nettoyer toute règle allouée par erreur ou impossible à récupérer,
  • Appliquer la commande qui permet d’allouer les règles et tenir la gestion des droits d’accès en complétant le tableau et en repassant systématiquement les règles.

Exemple A) Fichier CSV (AddPermissions.csv) d’application des droits :

Identity,TrustedUser,GrantFullAccess,GrantSendAs,GrantSendOnBehalfOf
a.alcabez@orentis.com,a.caouren@orentis.com,True,True,False

Exemple B) Fichier CSV (RemovePermissions.csv) de suppression des droits

Identity,TrustedUser,RemoveFullAccess,RemoveSendAs,RemoveSendOnBehalfOf
a.alcabez@orentis.com,a.caouren@orentis.com,True,True,True

Notez que pour l’exemple B, un tableau de nettoyage complet des règles devrait inclure (par exemple pour 12 comptes), 12*11 combinaisons, soit 132 possibilités. Libre à vous de créer un script PowerShell pour fabriquer automatiquement le fichier CSV.

En clair cela donne pour chaque remise en place des règles :

  • Etape A : Nettoyage des règles sur les boîtes aux lettres (sauf quand on est sûr qu’elles n’ont pas bougé),
  • Etape B : Ré-application des règles.

Commandes :

Pour créer un ensemble d’instructions qui applique automatiquement des règles, depuis PowerShell avec les outils de migration installés sur le poste :

Add-PSSnapin Microsoft.Exchange.Transporter (Ceci charge les cmdlets destinées à Exchange Online, ne pas saisir cette commande si les cmdlets sont déjà chargés)
$Cred = Get-Credential # (Ceci permet de saisir les identifiants administrateur du compte BPOS que l’on veut cibler et les stocker dans une variable, ne pas saisir cette commande si la variable est déjà initialisée)
$CSV = Import-CSV –Path C:\AddPermissions.csv # (Ceci permet de charger le tableau CSV dans une variable)
$CSV | Add-MSOnlineMailPermission –Credential $Cred # (Ceci permet d’exécuter l’application des permissions pour toutes les lignes du tableau)

Pour créer un ensemble d’instructions qui retire automatiquement des règles, depuis PowerShell avec les outils de migration installés sur le poste :

Add-PSSnapin Microsoft.Exchange.Transporter # (Ceci charge les cmdlets destinées à Exchange Online, ne pas saisir cette commande si les cmdlets sont déjà chargés)
$Cred = Get-Credential # (Ceci permet de saisir les identifiants administrateur du compte BPOS que l’on veut cibler et les stocker dans une variable, ne pas saisir cette commande si la variable est déjà initialisée)
$CSV = Import-CSV –Path C:\RemovePermissions.csv # (Ceci permet de charger le tableau CSV dans une variable)
$CSV | Remove-MSOnlineMailPermission –Credential $Cred # (Ceci permet d’exécuter l’application du retrait des permissions pour toutes les lignes du tableau)

Notez que de ce fait, le tableau CSV AddPermissions.csv est juste à remettre en forme pour envoyer un résumé au client des délégations « server-side » appliquées pour les boîtes auxlettres de sa société.

A propos Arnaud Alcabez

With more than 20 years of experience in computing technologies and 18 years in the world of IT consulting (whose his own company during 9 years - MCT, MCSE, MSS), I have strong and major skills on IT technologies such Exchange, Virtualization, and BPOS/Office365, Cloud strategy and in particular, Microsoft ecosystem. The last 10 years were devoted to growth the MS identification and the business market (large and mid channels) for some French IT companies. Today, as Office365/Exchange Senior Architect at Capgemini, I share my knowledge with internal teams and Capgemini's customers. In parallel, I am acknowledged as a Most Valuable Professional (MVP) since 2003 by Microsoft Corp. I'm a writer for Exchange Magazine in France,the owner and president of the French Exchange Server community (2500 qualified members in September 2008), and one of the five managers on the Exchange Group LinkedIn community. I speak regularly as IT Expert (Level 300/400 sessions) for Microsoft France, for exemple, during the Microsoft Techdays.
Cet article, publié dans Technologies, est tagué , , , , . Ajoutez ce permalien à vos favoris.