Dans le centre d’administration Microsoft Entra, ouvrez Identité → Surveillance & santé → Journaux de connexion, définissez vos filtres, et choisissez Télécharger → JSON. Pour des extractions plus importantes ou par script, utilisez Microsoft Graph : GET /auditLogs/signIns. Quoi qu’il en soit, vous n’obtenez que ce qui est encore conservé : 7 jours sur Entra ID Free, 30 jours avec P1 ou P2.
Les journaux de connexion montrent qui s’est authentifié, d’où, vers quelle application, et si l’AMF et l’accès conditionnel ont été appliqués. Dans les attaques axées sur l’identité, c’est la majeure partie de l’histoire. Prime Core dispose de 170 règles de détection pour les données de connexion Entra ID, mappées à 113 techniques MITRE ATT&CK. Parmi elles : pulvérisation de mots de passe (T1110.003), fatigue AMF (T1621) et connexions avec des identifiants cloud volés (T1078.004).
Avant de commencer
La rétention est courte. Si l’activité recherchée est plus ancienne que 7 ou 30 jours, le portail et Graph ne l’auront pas. Le seul endroit où elle pourrait encore exister est là où vos paramètres de diagnostic envoient les journaux de connexion : un espace de travail Log Analytics, Microsoft Sentinel ou un compte de stockage. Consultez notre [guide d’exportation de Microsoft Sentinel] pour ce chemin.
Rôles. Lecteur de rapports est le rôle le moins privilégié pouvant lire les journaux de connexion. Lecteur de sécurité et Lecteur global fonctionnent aussi.
Il existe quatre types de connexions. Utilisateur interactif, utilisateur non interactif, principal de service et identité gérée ont chacun leur propre onglet dans le portail. La relecture de jetons et l’abus de jetons de rafraîchissement apparaissent généralement sous non interactif, que les gens oublient d’exporter.
Option 1 : Télécharger depuis le portail
- Allez à Journaux de connexion et choisissez l’onglet (commencez par interactif, puis non interactif).
- Set Date et tous les filtres (utilisateur, application, statut).
- Choisissez Télécharger, puis JSON.
Le portail limite le nombre d’enregistrements inclus dans un seul téléchargement. [PREUVE : confirmez la limite actuelle.] Pour de grandes plages, divisez par jour ou utilisez Graph.
Option 2 : Microsoft Graph PowerShell
Cela extrait le JSON brut de l’API, suit le pagination, et écrit une connexion par ligne :
Connect-MgGraph -Scopes "AuditLog.Read.All"
$uri = "https://graph.microsoft.com/v1.0/auditLogs/signIns?`$filter=createdDateTime ge 2026-10-19T00:00:00Z and createdDateTime lt 2026-10-20T00:00:00Z"
do {
$page = Invoke-MgGraphRequest -Method GET -Uri $uri -OutputType Json | ConvertFrom-Json
$page.value | ForEach-Object { $_ | ConvertTo-Json -Depth 10 -Compress } | Add-Content signins_1019.jsonl
$uri = $page.'@odata.nextLink'
} while ($uri)
Le point de terminaison v1.0 retourne des connexions interactives. Les connexions non interactives et principal de service nécessitent le point de terminaison bêta avec un filtre signInEventTypes. La lecture des connexions via l’API dépend également de votre niveau de licence de locataire.
Les horodatages sont en UTC.
Ce qu’il faut chercher
| Champ ou valeur | Ce que cela vous dit |
|---|---|
| status.errorCode 50126 | Nom d’utilisateur ou mot de passe incorrect. Nombreux de ceux-ci à travers de nombreux utilisateurs signifie pulvérisation |
| status.errorCode 50053 | Compte verrouillé par verrouillage intelligent |
| status.errorCode 500121 | AMF échouée ou refusée ; une rafale de ceux-ci est une fatigue AMF |
| clientAppUsed = IMAP, POP, SMTP, « Autres clients » | Authentification héritée qui contourne l’AMF |
| conditionalAccessStatus | Si l’accès conditionnel a été appliqué, réussi ou échoué |
| riskLevelDuringSignIn, location, ipAddress | Origines risquées ou inconnues |
Le schéma qui mérite d’être stoppé : une série d’échecs 50126 à travers de nombreux comptes à partir d’une plage IP, puis un succès pour l’un d’eux.
Téléchargez, assainissez et examinez dans LogTotal
- Téléchargez. Ouvrir logtotal.com et déposez le fichier JSON.
- Assainir. [what gets masked: UPNs, display names, IPs, device names, tenant and object IDs]. Look it over before you continue.
- Examinez.
Quand ça tourne mal
| Symptôme | Cause probable | Fix |
|---|---|---|
| Rien de plus vieux qu’une semaine ou un mois | Rétention pour votre niveau de licence | Vérifiez Log Analytics, Sentinel ou le stockage si les paramètres de diagnostic étaient activés |
| Graph returns 403 | Consentement AuditLog.Read.All manquant, rôle ou licence | Accordez le consentement ; vérifiez votre rôle et votre licence de locataire |
| L’export n’a que les connexions interactives | Les autres types se trouvent dans des onglets séparés, ou dans Graph bêta | Exportez chaque onglet ; utilisez le point de terminaison bêta |
| Le téléchargement contient moins d’enregistrements que le portail n’en montre | Limite de téléchargement du portail | Divisez par jour, ou utilisez Graph |
FAQ
Et les journaux d’audit Entra ?
Ce sont des journaux différents : changements de répertoire comme des nouveaux utilisateurs, des affectations de rôles et des consentements d’application. Même zone de portail, Journaux d’audit. Dans Graph c’est /auditLogs/directoryAudits. Dans un incident, vous avez généralement besoin des deux.
Puis-je obtenir des connexions de Sentinel à la place ?
Oui, si le connecteur Entra ID est activé : elles sont dans les tables SigninLogs et AADNonInteractiveUserSignInLogs, avec la rétention que votre espace de travail a.