Risk Detections
The question it answers: Which risk detections did Identity Protection record in the last 30 days, for whom and from where?
Every risk detection of the last 30 days - leaked credentials, password spray, impossible travel, token theft - with the user, IP address and location.
At a glance
Section titled “At a glance”| Where in the app | Entra ID › Security › Risky Users |
| Shown as | a tab of Risky Users & Risk Detections |
| 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 P2. Without it Graph returns limited or no risk data, and this page shows the error. |
| Report id (API and MCP) | entra.security.risk-detections |
Columns
Section titled “Columns”| Column | Key | Type |
|---|---|---|
| When | DetectedDateTime | DateTime |
| User | UserDisplayName | Link |
| Detection | RiskEventTypeDisplay | Text |
| Level | RiskLevel | Status |
| State | RiskState | Text |
| Timing | DetectionTimingType | Text |
| IP | IpAddress | Text |
| Location | Location | Text |
What it needs
Section titled “What it needs”Licence: Microsoft Entra ID P2. Without it Graph returns limited or no risk data, and this page shows the error.
Application permissions on the IntensiveReports app registration (all permissions):
| Permission | API | What it allows | Note |
|---|---|---|---|
IdentityRiskEvent.Read.All | Microsoft Graph | Read all identity risk event information |
Data sources it reads
GET /v1.0/identityProtection/riskDetections
Through the API and MCP
Section titled “Through the API and MCP”GET /ir-api/v1/reports/entra.security.risk-detections?size=100An AI assistant reads it with the MCP tool get_report and the id entra.security.risk-detections. The client needs the Read grant for Entra ID. See Using the API.