Prérequis pour l'image

Pour permettre la collecte des données, nous vous invitons à remplir les prérequis ci-dessous.

La solution utilise les API de Microsoft pour collecter les autorisations et l'accès à Exchange, OneDrive, SharePoint et Teams.

Accorder les permissions à l'application IDECSI - Platform - Picture

Veuillez nous envoyer votre TenantID, l'URL de votre site SharePoint ([yourdomain].sharepoint.com), et nous faire savoir quand vous avez accordé l'application IDECSI - Platform - Picture ci-dessous en cliquant sur les liens suivants et en vous connectant en tant qu'administrateur du tenant:

https://login.microsoftonline.com/common/adminconsent?client_id=4a50902b-fc9b-4722-8b97-4d027e82dc5f

Détails des permissions de l'application accordée

Voici l'ensemble des droits de l'application IDECSI - Platform - Picture.
 
Vous pouvez supprimer Sites.FullControl.All pour être en mode lecture seule, mais vous ne pourrez pas voir combien d'autorisations sur les sites SharePoint et d'autorisations d'administration sont accordées à l'ensemble de l'entreprise ou à l'ensemble de l'entreprise à l'exception des utilisateurs externes.
 
APIAutorisationUtilisation de l'IDECSIPlus d'informations ?
Office 365 Management APIActivityFeed.ReadCollecte des journaux d'audit pour afficher les événements d'accès dans MyDataSecurity.
Détecter les changements de droits et de permissions pour pouvoir récupérer les ressources, et alerter si nécessaire.
Office 365 Management Activity API reference | Microsoft Learn
API graphiqueChannelSettings.Read.AllCarte des canaux d'équipes (privés et partagés) à afficher dans MyDataSecurity.Liste des canaux - Microsoft Graph v1.0 | Microsoft Learn
API graphiqueAuditLog.Read.AllCollecter les journaux d'audit unifiés et les journaux d'audit d'Entra pour enrichir toutes les informations sur les ressources d'Idecsi. 
API graphiqueMembre du canal.Lire.toutIdentifier les membres du canal et les membres de MyDataSecurity. 
API graphiqueRépertoire.Lire.toutIdentifier les utilisateurs, les groupes et les applications qui afficheront ces informations dans MyDataSecurity.Requis pour les informations AD (utilisateurs, groupes, licences, applications, administrateurs)
API graphiqueFichiers.lus.tousPermet de lire les métadonnées des fichiers, l'historique des versions et les propriétés de partage afin d'afficher ces informations dans MyDataSecurity. 
API graphiquePolitique de protection de l'information.Lire.toutRécupérer les configurations des étiquettes de sensibilité (Purview).Liste sensitivityLabels - Microsoft Graph beta | Microsoft Learn
API graphiqueMailboxSettings.ReadAdapter la langue et les paramètres de l'interface IDECSI et identifier la boîte aux lettres associée à un utilisateur.Obtenir les paramètres de la boîte aux lettres de l'utilisateur - Microsoft Graph v1.0 | Microsoft Learn
API graphiquePolitique.Lire.toutLire les configurations des tenant et les alerter en cas de changement.Configurations requises pour la lecture
API graphiqueRapports.Lire.toutCollecter divers rapports pour enrichir les informations dans MyDataSecurity et MyDataManagement.reportRoot : getOneDriveUsageStorage - Microsoft Graph v1.0 | Microsoft Learn
reportRoot : getOneDriveUsageFileCounts - Microsoft Graph v1.0 | Microsoft Learn
reportRoot : getSharePointSiteUsageStorage - Microsoft Graph v1.0 | Microsoft Learn
reportRoot : getSharePointSiteUsageFileCounts - Microsoft Graph v1.0 | Microsoft Learn
SharePointSites.FullControl.AllCollecter (administrateurs de sites classiques) et corriger les permissions (Everyone site admin, EEEU site admin, Everyone, EEEU) sur les sites SharePoint, et récupérer le créateur du lien de partage et la date de création.SharePoint admin APIs authentification et autorisation | Microsoft Learn
API graphiqueSites.Lire.toutCartographier les sites, les bibliothèques, les autorisations et les métadonnées utilisées pour alimenter les profils d'utilisateurs dans MDS/MDM.Liste de sites - Microsoft Graph v1.0 | Microsoft Learn
API graphiqueTeamSettings.Read.AllCartographier les équipes et leurs paramètres pour alimenter les profils d'utilisateurs dans MDS.Obtenir l'équipe - Microsoft Graph v1.0 | Microsoft Learn
 Office 365 Exchange Online APIExchange.ManageAsApp

Permission qui n'accorde aucun droit à l'application elle-même. Le principal de service associé recevra les droits de collecte et de remédiation (via PowerShell) en fonction de l'affectation.

Authentifier une application EWS à l'aide d'OAuth

Prise en charge de la politique d'accès aux applications ajoutée aux services Web d'Exchange dans Exchange Online

Contrôle d'accès basé sur les rôles pour les applications dans Exchange Online

Plus d'informations sur les permissions : Vue d'ensemble des permissions de Microsoft Graph - Microsoft Graph | Microsoft Learn

Fournir des droits sur l'Exchange

Le droit "Gérer Exchange en tant qu'application" permet de se connecter en tant qu'application mais n'accorde pas de permissions spécifiques. C'est pourquoi nous devons ajouter un "Service Principal" qui permettra de l'utiliser. Pour limiter les droits, nous allons créer un Groupe de Rôles I2A, dans lequel nous placerons le "Service Principal".

⚠️ Veuillez noter :

  • Installer ou mettre à jour PowerShell à la version 7 (winget install --id Microsoft.Powershell --source winget)
  • Lancer PowerShell 7 en tant qu'administrateur local de la machine (ou avec un compte disposant des droits nécessaires)
  • Installer le module Microsoft.Graph (Install-Module Microsoft.Graph)
  • Installer le module ExchangeOnlineManagement version 3.6 (Install-Module -Name ExchangeOnlineManagement -RequiredVersion 3.6.0).
# Import ExchangeOnline module and Graph module
Import-Module ExchangeOnlineManagement;Get-Module ExchangeOnlineManagement
Import-Module Microsoft.Graph;Get-Module Microsoft.Graph

# Load and connect to Microsoft Graph with administrator rights.
Connect-MgGraph -Scopes AppRoleAssignment.ReadWrite.All,Application.Read.All

# Retrieve the Service Principal corresponding to the "IDECSI - Platform" application.
$AzureADApp = Get-MgServicePrincipal -Filter "DisplayName eq 'IDECSI - Platform - Picture'"

# Exchange Online Connexion
# This prompts for user credentials. Please use an Exchange Admin account to connect.
Connect-ExchangeOnline

# Create an Exchange Service Principal linked to the Azure AD App
New-ServicePrincipal -AppId $AzureADApp.AppId -ObjectId $AzureADApp.Id -DisplayName "SP for Azure AD App IDECSI - Platform - Picture"

# Retrieve the new Service Principal object
$SP = Get-ServicePrincipal -Identity "SP for Azure AD App IDECSI - Platform - Picture"
Write-Host ($SP | Format-Table | Out-String)

# Define variables
# These variables store:
# * The name of the role group
$roleGroupName = "I2A"
# * The names of custom management roles to be created.
$roleName = "Mail Recipients - ViewOnly - I2A"

# Create Role: "Mail Recipients - ViewOnly - I2A"
# Creates a new management role based on the "Mail Recipients" parent role.
New-ManagementRole $roleName -Parent "Mail Recipients"
Get-ManagementRoleEntry ($roleName + "\*")
$data2 = Get-ManagementRoleEntry ($roleName + "\*")
# This loop removes all cmdlets except those starting with "Get", effectively making the role read-only.
foreach($data in $data2)
{
$name = ""
$name = $data.Name
if($name -NotLike "Get*")
{
Remove-ManagementRoleEntry $roleName\$name -confirm:$false
Write-Host ("Done for $name")
}
}

Get-ManagementRoleEntry ($roleName + "\*")

# Assign Roles to Role Group and Add Service Principal
# Creates a new role group named "I2A", includes:
# * Standard built-in roles (like audit and read-only)
# * The custom role we created
# * Assigns everything to the Service Principal
New-RoleGroup -Name $roleGroupName -Roles "Audit Logs","View-Only Configuration","View-Only Recipients",$roleName -Members $SP.Identity

# Disconnect
# Ends the Exchange Online and Graph session properly.
Disconnect-ExchangeOnline
Disconnect-Graph

Une fois que la demande est acceptée et que le script a été exécuté avec succès, veuillez en informer votre Customer Success Manager.