• Microsoft 365
  • Script
  • 🔐GĂ©rer finement les droits d’une app registration pour les sites Sharepoint online

    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

    Capture d'écran représentant l'import de certificat dans entra

    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.

    Image parcourant l'ajout d'une permission

    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.

    permission sites.selected

    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

    Laisser un commentaire

    Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

    3 mins