Introduction
A l’heure de l’automatisation, de nombreux scripts utilisent l’API de SharePoint afin de dĂ©poser des fichiers rĂ©guliĂšrement. L’utilisation de la permission expliquĂ©e ci-dessous a pour but de gĂ©rer finement la permission de l’app registration, au site prĂšs.
Prérequis
- Avoir PowerShell 7 sur son poste.
- Etre « Application Administrator » sur Entra ID.
Créer les app registrations
Application maĂźtre
Via le module utilisĂ© PNP.Powershell, l’assignation des permissions est disponible uniquement depuis une connexion via app registration. Voici comment la crĂ©er :
Dans un terminal PowerShell, exĂ©cuter ce script afin de crĂ©er un certificat pour se connecter au tenant via l’app registration (n’oubliez pas de modifier les variables !)
$certname = "Astraworkplace"
$mypwd = ConvertTo-SecureString -String "Password" -Force -AsPlainText
$cert = New-SelfSignedCertificate -Subject "CN=$certname" -CertStoreLocation "Cert:\CurrentUser\My" -KeyExportPolicy Exportable -KeySpec Signature -KeyLength 2048 -KeyAlgorithm RSA -HashAlgorithm SHA256
Export-Certificate -Cert $cert -FilePath "C:\Users\Astraworkplace\Desktop\$certname.cer"
Ensuite, se connecter sur Entra , dans le menu de gauche, cliquer sur App Registrations. Cliquer ensuite sur New Registration.
Remplir le nom de l’application puis appuyer sur create.

Ensuite, se rendre dans l’onglet Certificates & Secrets puis importer le certificat au format .cer en cliquant sur Certificates, puis Upload certificate

Enregistrer l’empreinte du certificat ( thumbprint ), celle-ci vous sera utile pour la connexion Ă l’API Graph.
Il faut maintenant ajouter des droits à cette application, pour ce faire, cliquer sur API permissions, puis Add a permission.
Cliquer sur SharePoint, Application permissions, puis sélectionner le droit Sites.FullControl.All et cliquer sur Add Permissions.

Approuver ensuite cette permission en cliquant sur le bouton Grant admin consent.
L’application est créée et celle-ci permettra de gĂ©rer la 2Ăšme ( celle utilisĂ©e en production).
Application cible
Créer un nouveau certificat via le script ci-dessus, attention à utiliser un nom différent.
CrĂ©er ensuite une autre App registration de la mĂȘme maniĂšre que prĂ©cĂ©demment.
Ajouter la permission SharePoint Sites.Selected puis appuyer sur Grant admin consent.

Cette application cible sera celle utilisĂ©e par votre script pour contacter l’API SharePoint.
Attention Ă la date d’expiration du certificat, celui-ci sera Ă renouveler.
Gestion des droits de l’application cible
Bien qu’appliquĂ©, le droit Sites.Selected est vide et donc inutile pour le moment. Il faut donc assigner des droits.
Il existe 3 types de droits :
- Read : Lecture seule des fichiers du site SharePoint.
- Write : Lecture + écriture des fichiers du site SharePoint.
- FullControl : AccĂšs complet Ă toutes la gestion du site.
Assignement des droits via le module pnp.powershell
Le module pnp.powershell est un module dĂ©veloppĂ© par la communautĂ©, il sert Ă contacter l’API SharePoint, la documentation de ce projet se trouve ici.
Télécharger le script Add-SharepointRightOnApp.ps1 sur le Repo GitHub Astraworkplace
Ouvrir le script dans un éditeur de code, puis remplacer les variables par vos valeurs. Voici un exemple :

Ces valeurs sont fictives et inutilisables.
Exécuter ensuite le code avec PowerShell 7 .
Vérification des droits appliqués
Il est possible de vérifier les droits appliqués sur un site avec cette commande :
Get-PnPAzureADAppSitePermission -Site $SharepointUrl
Suppression de l’application maĂźtre
Une fois l’assignement de permission rĂ©alisĂ©, il est important de supprimer l’application MaĂźtre car celle-ci possĂšde des droits Ă©levĂ©s.
Pour cela, dans Entra sĂ©lectionner App registration, rechercher l’application MaĂźtre, puis la supprimer avec le bouton Delete

Exemple concret d’utilisation
- Un script automatisé dépose des fichiers sur un SharePoint réguliÚrement.
- Un script ou une application doit lire des fichiers disponibles sur un Sharepoint.
Mathéo Bourlet
