Question audit des permissions online pour les utilisateurs

Plus d'informations
il y a 7 mois 4 semaines - il y a 7 mois 4 semaines #34419 par Durand
Bonjour,

Dans un environnement Microsoft Entra, je cherche à obtenir la liste de tous les accès en ligne (SharePoint, OneDrive, etc.) dont disposent mes utilisateurs.
J'ai trouvé comment récupérer les droits sur les racines de SharePoint, mais cela ne couvre pas les fichiers partagés manuellement par lien.
J'ai des audits d'accès sur 30 jours, mais rien d'exhaustif.

Est-ce possible ?
Sinon, existe-t-il des logiciels spécialisés pour récupérer ce type d'information ?

Merci pour votre aide 

P.S: J'ai voulu déplacer ce sujet dans la partie générale du forum mais je n'y suis pas arrivé...
Dernière édition: il y a 7 mois 4 semaines par Durand.

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 7 mois 4 semaines #34433 par Arnaud Petitjean
Salut,

Je n'ai pas d'environnement Azure Entra sous la main mais à priori la meilleure façon de procéder est d'utiliser la Graph API pour cela.

J'ai demandé de l'aide à un ami (ChatGPT) et voilà un petit exemple de code pour démarrer :
# Installer le module Microsoft.Graph (s'il n'est pas déjà installé). Attention, cela nécessite un accès à internet.
Install-Module Microsoft.Graph

# Connexion à Microsoft Graph
Connect-MgGraph -Scopes "Sites.Read.All"

# Récupérer les sites SharePoint
$sites = Get-MgSite

foreach ($site in $sites) {
    $siteId = $site.Id

    # Récupérer les drives (bibliothèques de documents)
    $drives = Get-MgSiteDrive -SiteId $siteId

    foreach ($drive in $drives) {
        $driveId = $drive.Id

        # Récupérer les items dans le drive
        $items = Get-MgDriveItem -DriveId $driveId

        foreach ($item in $items) {
            # Récupérer les permissions sur chaque item
            $permissions = Get-MgDriveItemPermission -DriveId $driveId -DriveItemId $item.Id

            foreach ($permission in $permissions) {
                # Afficher ou enregistrer les détails des permissions
                $permissionDetails = @{
                    SiteId = $siteId
                    DriveId = $driveId
                    ItemId = $item.Id
                    PermissionId = $permission.Id
                    Roles = $permission.Roles
                    GrantedTo = $permission.GrantedTo
                }

                $permissionDetails | Out-File "permissions.csv" -Append
            }
        }
    }
}

Dis-moi si cela t'aide.

Arnaud

MVP PowerShell et créateur de ce magnifique forum :-)
Auteur de 6 livres PowerShell aux éditions ENI
Fondateur de la société Start-Scripting
Besoin d'une formation PowerShell ?

Connexion ou Créer un compte pour participer à la conversation.

Temps de génération de la page : 0.112 secondes
Propulsé par Kunena