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
| API | Autorisation | Utilisation de l'IDECSI | Plus d'informations ? |
| Office 365 Management API | ActivityFeed.Read | Collecte 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 graphique | ChannelSettings.Read.All | Carte des canaux d'équipes (privés et partagés) à afficher dans MyDataSecurity. | Liste des canaux - Microsoft Graph v1.0 | Microsoft Learn |
| API graphique | AuditLog.Read.All | Collecter les journaux d'audit unifiés et les journaux d'audit d'Entra pour enrichir toutes les informations sur les ressources d'Idecsi. | |
| API graphique | Membre du canal.Lire.tout | Identifier les membres du canal et les membres de MyDataSecurity. | |
| API graphique | Répertoire.Lire.tout | Identifier les utilisateurs, les groupes et les applications qui afficheront ces informations dans MyDataSecurity. | Requis pour les informations AD (utilisateurs, groupes, licences, applications, administrateurs) |
| API graphique | Fichiers.lus.tous | Permet 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 graphique | Politique de protection de l'information.Lire.tout | Récupérer les configurations des étiquettes de sensibilité (Purview). | Liste sensitivityLabels - Microsoft Graph beta | Microsoft Learn |
| API graphique | MailboxSettings.Read | Adapter 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 graphique | Politique.Lire.tout | Lire les configurations des tenant et les alerter en cas de changement. | Configurations requises pour la lecture |
| API graphique | Rapports.Lire.tout | Collecter 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 |
| SharePoint | Sites.FullControl.All | Collecter (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 graphique | Sites.Lire.tout | Cartographier 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 graphique | TeamSettings.Read.All | Cartographier 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 API | Exchange.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 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.