/
/

Comment utiliser l’API Microsoft Graph pour extraire des rapports de conformité de plusieurs tenants

par Team Ninja
How to Use Microsoft Graph API to Pull Compliance Reports Across Multiple Tenants blog banner image

Points clés

  • Ce guide vous explique comment utiliser l’API Microsoft Graph pour extraire les données de conformité Microsoft 365 de plusieurs tenants depuis un terminal unique.
  • Chaque tenant Azure AD a besoin de son propre enregistrement d’application, avec les autorisations Reports.Read.All, AuditLog.Read.All, SecurityEvents.Read.All et Directory.Read.All, ainsi que du consentement de l’administrateur, pour que les appels à l’API Graph fonctionnent.
  • Le SDK PowerShell de Microsoft Graph s’authentifie à l’aide de l’ID client, de l’ID de tenant et du secret d’une application enregistrée, puis envoie des requêtes à l’API Graph pour récupérer les journaux de connexion, les alertes de sécurité et les étiquettes de conservation.
  • En stockant les identifiants des tenants dans un fichier JSON et en les parcourant en boucle, les équipes informatiques peuvent extraire et exporter les données de conformité de chaque tenant géré selon une planification récurrente, au lieu de se connecter manuellement.
  • Les secrets client expirés et les limites de débit de Microsoft Graph sont les causes de défaillance les plus fréquentes : des alertes proactives de rotation des secrets et une logique de nouvelle tentative comptent autant que la configuration initiale.
  • Les plateformes d’automatisation capables d’exécuter des scripts PowerShell sur les terminaux gérés facilitent la planification de ces extractions via l’API Graph et ajoutent du contexte au niveau des appareils.

Les outils de sécurité et de conformité de l’API Microsoft Graph sont indispensables dans tout environnement d’entreprise. Vous disposez d’un terminal unifié à partir duquel vous consultez l’ensemble des journaux d’audit, des rapports DLP, des incidents d’alerte et des politiques de conservation des comptes Microsoft 365 de votre organisation.

Cet outil présente plusieurs avantages majeurs : il permet de conserver une visibilité de la conformité entre tenants, d’automatiser les rapports sans passer par l’accès au portail, de bénéficier d’une méthode d’authentification sécurisée basée sur une application et de réaliser facilement des intégrations avec un SIEM ou des tableaux de bord personnalisés.

Guide d’accès aux rapports de conformité avec Microsoft Graph

Avant de commencer, vous devez configurer l’application dans le portail Azure AD et vérifier qu’elle dispose des autorisations nécessaires. Vous pouvez ensuite connecter votre compte à Microsoft Graph via Windows PowerShell et générer automatiquement les rapports. Vous avez également la possibilité d’automatiser le processus à l’aide d’un fichier .JSON.

Les GPO permettent de renforcer vos procédures de sécurité. Vous pouvez utiliser le registre Windows pour garantir que toutes les politiques sont appliquées de manière cohérente sur l’ensemble de vos appareils gérés. Et en cas d’erreur, CMD (invite de commande) vous aide à diagnostiquer le problème.

Prérequis :

  • un enregistrement d’application Azure AD pour chaque tenant (ou l’utilisation de Microsoft Lighthouse, nécessaire pour l’accès délégué)
  • Le consentement de l’administrateur doit être accordé pour les étendues d’API requises.
  • Le module complémentaire Microsoft 365 E5 Compliance est requis pour les rapports avancés.
  • Vous devez disposer de Windows PowerShell, avec le SDK Microsoft Graph installé.
  • Facultatif, mais recommandé : un accès à Intune, aux GPO et au registre Windows pour valider les politiques appliquées aux terminaux

La vidéo affiche à l’écran Comment utiliser l’API Microsoft Graph pour extraire des rapports de conformité de plusieurs tenants : une référence utile à consulter avant de parcourir et de configurer les paramètres.

Étape 1 : enregistrer une application dans Azure pour l’accès à Graph

  1. Ouvrez le portail Azure AD dans votre navigateur.
  2. Allez dans App Registrations > New Registration.
  3. Nommez l’application que vous souhaitez enregistrer.
  4. Définissez le type de compte autorisé sur Accounts in this organizational directory only (Contoso only – Single tenant).
  5. Ensuite, modifiez les autorisations de l’application en cliquant sur Add a permission. Vous serez redirigé vers Microsoft Graph.
  6. Accordez les autorisations suivantes :
    • Reports.Read.All
    • AuditLog.Read.All
    • SecurityEvents.Read.All
    • Directory.Read.All
  7. Cliquez sur Add Permissions.
  8. Cliquez sur le bouton Grant admin consent. L’application peut désormais lire tous les profils utilisateur auxquels vous lui avez donné accès.
  9. Allez dans Certificates & secrets.
  10. Sélectionnez Client Secrets > New Client secret.
  11. Renseignez les informations et suivez les prompts. Ce secret servira de mot de passe pour l’application.
  12. Notez l’ID d’application (client), l’ID de répertoire (tenant) et la valeur du secret. Ces éléments vous permettront d’accéder à nouveau à l’application par la suite.

Répétez ou automatisez ce processus pour chaque tenant concerné.

Étape 2 : se connecter à Microsoft Graph dans PowerShell

  1. Ouvrez le menu Démarrer et recherchez Windows PowerShell.
  2. Faites un clic droit sur Windows PowerShell > Exécuter en tant qu’administrateur.
  3. Pour installer Microsoft Graph, saisissez la commande suivante et appuyez sur Entrée :

Install-Module Microsoft.Graph -Scope CurrentUser

Import-Module Microsoft.Graph

  1. Pour vous connecter avec les identifiants de votre application, saisissez la commande suivante et appuyez sur Entrée :

Connect-MgGraph -ClientId "APP_ID" -TenantId "TENANT_ID" -ClientSecret (ConvertTo-SecureString "SECRET" -AsPlainText -Force)

Remplacez «  APP_ID » par l’ID client, «  TENANT_ID » par l’ID de tenant et « SECRET » par la valeur du secret que vous avez générée.

  1. Pour sélectionner l’étendue, saisissez Select-MgProfile -Name "beta" et appuyez sur Entrée.

Vous êtes maintenant connecté à Microsoft Graph.

Étape 3 : extraire les rapports de conformité avec l’API Microsoft Graph

Une fois connecté à Microsoft Graph dans Windows PowerShell, procédez comme suit :

  1. Pour récupérer les journaux d’audit, saisissez cette commande et appuyez sur Entrée :

$logs = Invoke-MgGraphRequest -Method GET -Uri "https://graph.microsoft.com/beta/auditLogs/signIns"

  1. Pour lister les alertes DLP, saisissez cette commande et appuyez sur Entrée :

$alerts = Invoke-MgGraphRequest -Method GET -Uri "https://graph.microsoft.com/beta/security/alerts"

  1. Pour lister les politiques de conservation, saisissez cette commande et appuyez sur Entrée :

$policies = Invoke-MgGraphRequest -Method GET -Uri "https://graph.microsoft.com/beta/security/retentionLabels"

  1. Pour exporter les données dans un fichier .CSV, saisissez cette commande et appuyez sur Entrée :

$logs.value | Export-Csv -Path ".\Tenant_AuditLogs.csv" -NoTypeInformation

Répétez ce processus pour chaque tenant, en vous connectant avec ses identifiants propres.

Facultatif : automatiser le reporting entre tenants

Les administrateurs informatiques peuvent stocker tous les identifiants des tenants dans un fichier JSON. Il leur suffit alors d’exécuter ce fichier pour parcourir chaque tenant en boucle, s’y connecter et consolider les données. Ce fichier peut aussi s’exécuter automatiquement à intervalles réguliers via le Planificateur de tâches, piloté depuis leur outil de gestion des terminaux.

Voici un exemple de structure de boucle sur les tenants :

foreach ($tenant in $tenantList) {
Connect-MgGraph -ClientId $tenant.ClientId -TenantId $tenant.TenantId -ClientSecret $tenant.Secret
$auditData = Invoke-MgGraphRequest -Uri "https://graph.microsoft.com/beta/auditLogs/signIns"
$auditData.value | Export-Csv -Path ".\$($tenant.Name)_Audit.csv" -Append
}

Facultatif : utiliser le registre pour enrichir le contexte de reporting sur les terminaux

Cas d’utilisation : les clés de registre permettent de garantir que le marquage des appareils et les étiquettes de reporting sont appliqués de façon cohérente sur l’ensemble de vos appareils. Pour cela, procédez comme suit :

  1. Ouvrez le menu Démarrer et recherchez Éditeur du registre pour ouvrir le programme.
  2. Repérez la clé de registre correspondant à l’application que vous voulez vérifier. À titre d’exemple, voici un chemin de registre et les valeurs associées :

HKEY_LOCAL_MACHINE\SOFTWARE\Contoso\Compliance

    • TenantTag (String) : la valeur doit être « ClientA ».
    • LastAuditSync (String) : la valeur doit être « [Date de la dernière synchronisation d’audit] ».

Remarque : vous pouvez utiliser des scripts pour lire ces étiquettes et inclure les métadonnées des terminaux dans les rapports générés par Graph.

Facultatif : utiliser la stratégie de groupe pour l’état de conformité des terminaux

Cas d’utilisation : les stratégies de groupe aident à faire appliquer les règles et à garantir la conformité des terminaux, en particulier pour le score de conformité et le reporting sur la sensibilité des données.

  1. Ouvrez le menu Démarrer et recherchez Modifier la stratégie de groupe pour ouvrir le programme.
  2. Rendez-vous à cet emplacement : Configuration ordinateur > Modèles d’administration > Composants Windows > Collecte de données.
  3. Activez les politiques suivantes :
    • Autoriser la télémétrie : vous devez également la définir sur Améliorée ou Complète.
    • Configurer l’ID commercial pour le regroupement des appareils

Facultatif : utiliser CMD pour valider les autorisations et la connectivité

Cas d’utilisation : utile dans les environnements sur site ou hybrides, où les terminaux doivent être alignés sur les exigences de conformité.

  1. Ouvrez le menu Démarrer et recherchez Invite de commandes.
  2. Faites un clic droit sur Invite de commandes > Exécuter en tant qu’administrateur.
  3. Pour vérifier l’accès à Internet et au terminal Graph, saisissez cette commande et appuyez sur Entrée :

nslookup graph.microsoft.com

ping graph.microsoft.com

Pour vérifier l’état de synchronisation de l’agent local, saisissez cette commande et appuyez sur Entrée :

dsregcmd /status

Pour vous assurer que les GPO ont bien été appliquées, saisissez ceci et appuyez sur Entrée :

gpresult /h gpo.html

Guide de démarrage rapide

NinjaOne vous aide à utiliser l’API Microsoft Graph pour extraire des rapports de conformité de plusieurs tenants. La plateforme NinjaOne est conçue pour simplifier le travail avec les écosystèmes Microsoft 365, y compris dans des scénarios complexes comme le reporting de conformité multi-tenant. Elle offre des fonctionnalités dédiées à la gestion et à l’automatisation de ces processus.

  • Reporting de conformité : extrayez les rapports de sécurité et de conformité de tous les comptes gérés.
  • Automatisation : automatisez la génération des rapports et la collecte des données.
  • Intégration : connexion fluide à Microsoft Graph pour un accès aux données en temps réel.
  • Évolutivité : conçue pour un suivi de conformité à grande échelle dans toute l’entreprise.

Points de vigilance

Problème/RisqueConséquences possiblesCorrection/Retour arrière
Vous obtenez une erreur « Access Denied ».Vous ne pouvez pas accéder aux données recherchées.Vérifiez que le consentement de l’administrateur a bien été accordé et que les étendues d’API requises sont correctement attribuées.
Vous recevez une réponse vide.Vous n’obtenez pas les données recherchées.Vérifiez que le tenant dispose des licences appropriées et que la journalisation est activée.
Le secret client a expiré.Vous ne pourrez pas accéder aux données dans Microsoft Graph.Configurez une alerte dans votre outil de gestion des terminaux pour être prévenu avant l’expiration des secrets et éviter ce problème.
Une erreur de script se produit.Vous ne pourrez pas extraire les rapports.Utilisez des blocs Try/Catch et une journalisation détaillée pour tracer les erreurs.

Autres éléments à prendre en compte pour extraire des rapports de conformité avec Microsoft Graph

  • Gardez à l’esprit les limites de débit et la limitation (throttling) appliquée par Microsoft Graph. Dans certains cas, vous devrez relancer certaines actions, en particulier lors de l’extraction de gros volumes de données.
  • Vous pouvez réduire la complexité en recourant à Azure Lighthouse ou à des modèles d’accès entre tenants.
  • Utilisez Azure Key Vault ou une solution de stockage chiffré pour conserver vos secrets client.
  • Veillez à ce que seules les personnes autorisées puissent accéder aux rapports contenant des données propres aux utilisateurs.

Les services NinjaOne

NinjaOne renforce l’automatisation de la conformité basée sur Graph grâce à :

  • l’exécution entre tenants : vous pouvez planifier et déployer des scripts de reporting PowerShell sur tous les tenants gérés avec l’outil PowerShell à distance de NinjaOne ;
  • la gestion centralisée des identifiants : stockez les identifiants de l’API Graph en toute sécurité et appelez-les tenant par tenant dans une solution de stockage sécurisée et chiffrée ;
  • les alertes et tableaux de bord de conformité : intégrez les résultats des rapports dans des tableaux de bord personnalisés et déclenchez des notifications selon des seuils de risque ;
  • le contexte au niveau des terminaux : extrayez les données de registre et de GPO propres à chaque appareil pour enrichir les rapports de conformité avec l’outil de gestion des terminaux de NinjaOne ;
  • la gestion automatisée des tickets : définissez des alertes lorsque certaines conditions de conformité sont détectées (inactivité d’audit ou absence de politique de conservation, par exemple).

Tirez parti de Microsoft Graph pour vos rapports de conformité

Microsoft Graph est un outil puissant pour automatiser le reporting de conformité en environnement d’entreprise. Il offre aux administrateurs informatiques une visibilité évolutive sur l’activité des tenants, la protection des données et la posture réglementaire.

Sujets connexes :

FAQs

Les données de base sur les connexions et les alertes de sécurité sont accessibles avec une licence Microsoft 365 standard. En revanche, les rapports de conformité avancés nécessitent une licence Microsoft 365 E5 ou le module complémentaire E5 Compliance.

Le terminal v1.0 est stable et pris en charge en production, tandis que le terminal beta expose des API de conformité et de sécurité plus récentes ou en cours de développement, susceptibles d’être modifiées ou de cesser de fonctionner sans préavis. S’appuyer sur des points d’accès beta pour une automatisation planifiée entre tenants implique un risque de maintenance permanent.

La durée de conservation dépend du niveau de licence Microsoft 365 : les journaux de connexion sont généralement conservés 30 jours sur la plupart des offres, une durée prolongée avec une licence Azure AD premium, et les journaux d’audit de l’annuaire suivent des limites échelonnées similaires.

Oui. L’enregistrement de l’application a seulement besoin des autorisations d’API spécifiques accordées avec le consentement de l’administrateur, et non d’un rôle d’administrateur général attribué à une personne.

Microsoft Graph limite les requêtes par application et par tenant, en renvoyant un statut 429 accompagné d’un en-tête Retry-After lorsque les seuils sont atteints. Les scripts qui extraient des données de nombreux tenants doivent intégrer un mécanisme de temporisation exponentielle et de nouvelle tentative, plutôt que d’envoyer les requêtes en boucle serrée.

L’API Graph permet d’automatiser et de consolider les mêmes données sous-jacentes que celles affichées par le portail Purview, mais Purview reste le système de référence pour configurer les politiques DLP, les étiquettes de conservation et les cas d’eDiscovery.

You might also like

Prêt à simplifier les aspects les plus complexes de l'informatique et de la sécurité ?