Skip to content

Cet outil n'est ni affilié à Microsoft Corporation, ni approuvé ni sponsorisé par celle-ci. Microsoft 365, Microsoft Entra ID, Exchange Online et Microsoft Purview sont des marques du groupe de sociétés Microsoft. Les autres noms sont des marques de leurs propriétaires respectifs.

Exporter le journal d'audit unifié et les connexions Entra

Export pas à pas du journal d'audit unifié Purview et des journaux de connexion et d'audit Entra ID pour un BEC : rôles, limites, pagination PowerShell, pièges.

Publié le 8 min de lecture

En bref. Exportez trois choses, aujourd'hui : le journal d'audit unifié depuis le portail Microsoft Purview (Audit → Search → Export), les connexions utilisateur interactives et non interactives d'Entra ID (centre d'administration Entra → Monitoring & health → Sign-in logs → Download), et les journaux d'audit Entra (même endroit, de préférence en JSON). Remontez au moins 30 jours avant le premier événement suspect. Attention aux limites : 50 000 lignes par export Purview avec Audit (Standard), 100 000 lignes de connexion et 250 000 lignes d'audit par téléchargement Entra. Ne touchez pas aux fichiers.

La plupart des enquêtes BEC qui n'aboutissent pas échouent à cette étape, pas à l'analyse. Quelqu'un exporte uniquement les connexions interactives de la victime sur la dernière semaine, le rejeu a eu lieu dans le journal non interactif il y a douze jours, et la conclusion devient « on n'a rien trouvé ». Exportez large, filtrez au moment de l'analyse.

Avant de commencer : rôles et délais

SourceRôle minimal (moindre privilège)Où
Journal d'audit unifiéRôle Audit Logs ou View-Only Audit Logs dans PurviewPortail Microsoft Purview → Audit
Connexions EntraReports Reader (Lecteur de rapports)Centre d'administration Microsoft Entra
Audit EntraReports Reader (Lecteur de rapports)Centre d'administration Microsoft Entra

Les rôles proviennent de la documentation Microsoft sur la recherche dans l'audit et le téléchargement des journaux. Deux délais comptent. Les enregistrements d'audit apparaissent généralement 60 à 90 minutes après l'événement pour les services principaux, parfois plus tard. Et une recherche Purview large sur un gros tenant peut prendre des heures : lancez-la en premier et exportez les journaux Entra pendant qu'elle tourne.

1. Exporter le journal d'audit unifié depuis Purview

  1. Connectez-vous au portail Microsoft Purview et ouvrez Audit.
  2. Définissez la plage de dates et d'heures (UTC). La plage maximale par recherche est de 180 jours. Commencez au moins 30 jours avant le premier e-mail suspect.
  3. Laissez Activities et Record types vides pour une première passe. Vous voulez tout : boîtes, SharePoint, événements Entra ID répliqués dans l'UAL.
  4. Vous pouvez restreindre Users aux comptes suspects. Pour un premier incident, je préfère tout le tenant : la pulvérisation de mots de passe et le consentement frauduleux touchent rarement une seule personne.
  5. Lancez la recherche, attendez l'état Completed, ouvrez-la et choisissez Export.

L'export est un CSV dont la colonne AuditData contient l'enregistrement JSON complet. Cette colonne est la preuve ; les autres ne sont qu'un résumé. Pour la lire : enquête sur le journal d'audit unifié.

Limites de lignes. L'export accepte jusqu'à 50 000 lignes avec Audit (Standard) et jusqu'à 1 000 000 de lignes avec Audit (Premium) (Microsoft Learn). Si votre export fait exactement 50 000 lignes, il est tronqué. Découpez la recherche par semaine ou par utilisateur et exportez chaque partie. Les exports qui se recouvrent ne posent pas de problème si votre outil d'analyse dédoublonne sur RecordId / Id.

Alternative : Search-UnifiedAuditLog en PowerShell

Quand le portail expire ou que vous voulez des exports reproductibles, utilisez Exchange Online PowerShell. La cmdlet renvoie 100 enregistrements par défaut ; -ResultSize monte jusqu'à 5 000 et la pagination avec -SessionCommand ReturnLargeSet permet d'atteindre jusqu'à 50 000 résultats par session (référence de la cmdlet) :

Connect-ExchangeOnline
$sid = "bec-" + (Get-Date -Format yyyyMMddHHmmss)
$all = @()
do {
  $page = Search-UnifiedAuditLog -StartDate "2026-08-15" -EndDate "2026-09-16" `
          -SessionId $sid -SessionCommand ReturnLargeSet -ResultSize 5000
  $all += $page
} while ($page.Count -gt 0)
$all | Export-Csv .\ual.csv -NoTypeInformation -Encoding UTF8

Trois règles : gardez le même SessionId pendant toute la boucle, ne mélangez jamais ReturnLargeSet et ReturnNextPreviewPage dans une même session (la sortie tombe à 10 000), et découpez par date si vous atteignez 50 000. Pour une collecte programmatique à grande échelle, Microsoft recommande l'API Office 365 Management Activity.

Avant de vous fier à un résultat vide, vérifiez que l'audit est actif. Dans Exchange Online PowerShell, Get-AdminAuditLogConfig | Format-List UnifiedAuditLogIngestionEnabled doit renvoyer True. Un attaquant disposant de droits d'administration peut le désactiver ; l'outil signale les modifications Set-AdminAuditLogConfig comme une altération de l'audit.

2. Exporter les journaux de connexion Entra ID

  1. Dans le centre d'administration Microsoft Entra, allez dans Entra ID → Monitoring & health → Sign-in logs.
  2. Définissez le filtre de dates. Le portail n'a que ce que la rétention a gardé : 7 jours avec Entra ID Free, 30 jours avec P1/P2 (rétention des données).
  3. Cliquez sur Download, choisissez CSV ou JSON, et téléchargez Interactive sign-ins et Non-interactive sign-ins. Les connexions d'applications et d'identités managées valent aussi la peine si une application est en cause.
  4. Gardez les noms de fichiers d'origine. Ils distinguent interactif et non interactif, et certains outils (dont M365 Forensics) s'en servent quand l'enregistrement ne le précise pas.

Limites. Jusqu'à 100 000 enregistrements de connexion par fichier. Au-delà, le téléchargement expire dans le navigateur : réduisez la plage, filtrez sur les utilisateurs concernés, ou passez par l'API Graph (qui exige une licence P1/P2) ou par les paramètres de diagnostic vers Log Analytics. Si les connexions arrivent déjà dans Log Analytics, un export KQL de SigninLogs et AADNonInteractiveUserSignInLogs en JSON est l'option la plus complète.

Pourquoi le non-interactif compte. Quand un cookie ou un jeton d'actualisation volé est rejoué, l'utilisateur ne tape rien. Entra ID enregistre une connexion non interactive depuis l'IP de l'attaquant, avec le même Session ID que l'original. C'est le cœur de la détection du rejeu de jeton.

Les variantes « authentication details » du téléchargement ne sont pas nécessaires pour l'analyse décrite ici ; M365 Forensics les ignore et le signale.

3. Exporter les journaux d'audit Entra ID

  1. Même centre d'administration : Entra ID → Monitoring & health → Audit logs.
  2. Définissez les dates, Download, choisissez JSON si possible. Le CSV aplatit les cibles et les propriétés modifiées dans des colonnes numérotées et n'en garde qu'une partie ; le JSON conserve chaque entrée modifiedProperties, là où se trouvent les autorisations consenties et la nouvelle méthode MFA.
  3. Jusqu'à 250 000 enregistrements d'audit par fichier.

Beaucoup d'événements d'audit Entra (consentements, attributions de rôles, identifiants d'applications) apparaissent aussi dans l'UAL sous la charge de travail AzureActiveDirectory. Les détails d'enregistrement MFA sont souvent plus lisibles dans l'audit Entra lui-même.

Liste de contrôle des exports

FichierCouvreLimite habituelleÀ ne pas oublier
CSV d'audit PurviewBoîtes, fichiers, administration, copie d'Entra50 000 lignes (Standard)Découper si le plafond est atteint
Connexions interactivesConnexions par mot de passe / MFA100 000 lignes, 7 à 30 joursTout le tenant, pour la pulvérisation
Connexions non interactivesUtilisation de jetons, rejeu100 000 lignes, 7 à 30 joursSouvent le plus gros fichier
Audit EntraMFA, consentements, rôles, fédération250 000 lignesJSON plutôt que CSV

En option, si vous les avez : la sortie de Get-InboxRule -Mailbox <user> -IncludeHidden pour l'état actuel des règles, le suivi des messages pour le courrier envoyé. La version actuelle de M365 Forensics ne lit pas encore ces deux sources.

Traiter les fichiers comme des preuves

  • Calculez l'empreinte (SHA-256) de chaque fichier dès son téléchargement et notez qui l'a exporté, quand et avec quels filtres.
  • Ne modifiez jamais les originaux. Ouvrir un CSV de l'UAL dans Excel puis l'enregistrer peut abîmer le JSON AuditData et les dates.
  • Stockez des copies hors du tenant compromis (pas dans le OneDrive de la victime).
  • Notez le fuseau horaire : les horodatages exportés par Purview et Entra sont en UTC.

Étape suivante

Déposez les fichiers dans M365 Forensics, ou suivez le pas-à-pas d'analyse. S'il manque quelque chose que vous attendiez, rétention et journaux manquants explique les causes habituelles.

Questions fréquentes

Combien de lignes peut-on exporter depuis une recherche d'audit Purview ?

Microsoft indique jusqu'à 50 000 lignes par export avec Audit (Standard) et jusqu'à 1 000 000 de lignes avec Audit (Premium). Si vous atteignez la limite, découpez la recherche par plage de dates ou par utilisateur.

Ai-je besoin des connexions non interactives ?

Oui. Quand un cookie de session ou un jeton d'actualisation volé est rejoué, Entra ID enregistre des connexions non interactives, pas interactives. Sans ce fichier, le rejeu de jeton est invisible.

Combien de temps les journaux de connexion Entra ID sont-ils conservés ?

Sept jours avec Microsoft Entra ID Free et 30 jours avec P1 ou P2, sauf s'ils sont envoyés vers un compte de stockage ou Log Analytics. Exportez-les en premier.

Pour aller plus loin

Articles liés