MFA Fatigue & Repeated MFA Denials
The question it answers: Which users denied or reported MFA prompts, or had repeated failed MFA attempts in the last 7 days - and signed in afterwards?
An attacker with a user’s password sends MFA prompt after prompt until the user taps Approve. Users who denied or reported prompts, or saw many failed MFA attempts - especially followed by a successful sign-in - may be under attack right now.
At a glance
Section titled “At a glance”| Where in the app | Entra ID › Sign-in Analytics › MFA Fatigue |
| Workload | Entra ID |
| Kind | Table |
| Data | Built from the tenant data IntensiveReports keeps in memory and refreshes in the background, so it opens at once. |
| Licence | Microsoft Entra ID P1. |
| Report id (API and MCP) | entra.sign-ins.mfa-fatigue |
Columns
Section titled “Columns”| Column | Key | Type |
|---|---|---|
| User | Name | Link |
| UPN | Secondary | Text |
| Type | Category | Status |
| Finding | Finding | Text |
| Failures | Count | Text |
| Source | Detail | Text |
| Last failure | LastSeen | DateTime |
What it needs
Section titled “What it needs”Licence: Microsoft Entra ID P1.
Application permissions on the IntensiveReports app registration (all permissions):
| Permission | API | What it allows | Note |
|---|---|---|---|
AuditLog.Read.All | Microsoft Graph | Read all audit log data |
Data sources it reads
GET /beta/auditLogs/signIns (7 days)
Through the API and MCP
Section titled “Through the API and MCP”GET /ir-api/v1/reports/entra.sign-ins.mfa-fatigue?size=100An AI assistant reads it with the MCP tool get_report and the id entra.sign-ins.mfa-fatigue. The client needs the Read grant for Entra ID. See Using the API.