Skip to content

Role Assignments Made Outside PIM

The question it answers: Which directory roles were assigned directly instead of through Privileged Identity Management, and by whom?

Directory roles granted directly instead of through Privileged Identity Management: no approval, no justification, no expiry. In a tenant that uses PIM every row here is either a process gap or someone working around it.

Where in the appEntra ID › Identity Hygiene › Role Assignments Outside PIM
WorkloadEntra ID
KindTable
DataBuilt from the tenant data IntensiveReports keeps in memory and refreshes in the background, so it opens at once.
LicenceNone (about 7 days of audit history; 30 days with Microsoft Entra ID P1). PIM itself needs Microsoft Entra ID P2.
Report id (API and MCP)entra.security.role-assignments-outside-pim
ColumnKeyType
WhenDateDateTime
Assigned to / roleDisplayNameText
BySecondaryText
ResultCategoryStatus
All targetsDetailText
Logged byValueText

Licence: None (about 7 days of audit history; 30 days with Microsoft Entra ID P1). PIM itself needs Microsoft Entra ID P2.

Application permissions on the IntensiveReports app registration (all permissions):

PermissionAPIWhat it allowsNote
AuditLog.Read.AllMicrosoft GraphRead all audit log data
Data sources it reads
  • GET /v1.0/auditLogs/directoryAudits
GET /ir-api/v1/reports/entra.security.role-assignments-outside-pim?size=100

An AI assistant reads it with the MCP tool get_report and the id entra.security.role-assignments-outside-pim. The client needs the Read grant for Entra ID. See Using the API.