Skip to content

PIM Role Settings Audit

The question it answers: Which privileged roles can be activated without MFA or approval, for long periods, or are assigned permanently?

Just-in-time access is only as strong as its activation rules. A privileged role that can be activated without MFA, without approval, for a whole working day or permanently assigned is standing access with extra steps. Standing vs JIT Admin Access shows who holds roles; this report shows whether the PIM settings behind them are weak.

Where in the appEntra ID › Identity Configuration › PIM Role Settings Audit
WorkloadEntra ID
KindFindings list · dashboard tile
DataRead from Microsoft 365 when someone first opens it, then kept for the report cache lifetime (Settings > Data & cache, 1 hour unless changed).
LicenceMicrosoft Entra ID P2 (Privileged Identity Management).
Report id (API and MCP)entra.configuration.pim-role-settings
ColumnKeyType
SeveritySeverityStatus
Role typeCategoryText
RoleSubjectLink
CheckSettingText
Activation controlsValueText
FindingFindingText
In use byDetailText
DateWhenDate
Max hoursNumberNumber

A findings list hides columns that no row fills. Severity is Critical, Serious, Warning, OK or Info; rows rated Critical, Serious or Warning need attention (Working with findings).

Licence: Microsoft Entra ID P2 (Privileged Identity Management).

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

PermissionAPIWhat it allowsNote
RoleManagementPolicy.Read.DirectoryMicrosoft GraphRead all policies for privileged role assignments of your company’s directory
RoleManagement.Read.DirectoryMicrosoft GraphRead all directory RBAC settings
Data sources it reads
  • GET /v1.0/policies/roleManagementPolicyAssignments?$filter=scopeId eq '/' and scopeType eq 'DirectoryRole'&$expand=policy($expand=rules)
  • GET /beta/roleManagement/directory/roleDefinitions (isPrivileged)
GET /ir-api/v1/reports/entra.configuration.pim-role-settings?size=100

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