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.
At a glance
Section titled “At a glance”| Where in the app | Entra ID › Identity Configuration › PIM Role Settings Audit |
| Workload | Entra ID |
| Kind | Findings list · dashboard tile |
| Data | Read from Microsoft 365 when someone first opens it, then kept for the report cache lifetime (Settings > Data & cache, 1 hour unless changed). |
| Licence | Microsoft Entra ID P2 (Privileged Identity Management). |
| Report id (API and MCP) | entra.configuration.pim-role-settings |
Columns
Section titled “Columns”| Column | Key | Type |
|---|---|---|
| Severity | Severity | Status |
| Role type | Category | Text |
| Role | Subject | Link |
| Check | Setting | Text |
| Activation controls | Value | Text |
| Finding | Finding | Text |
| In use by | Detail | Text |
| Date | When | Date |
| Max hours | Number | Number |
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).
What it needs
Section titled “What it needs”Licence: Microsoft Entra ID P2 (Privileged Identity Management).
Application permissions on the IntensiveReports app registration (all permissions):
| Permission | API | What it allows | Note |
|---|---|---|---|
RoleManagementPolicy.Read.Directory | Microsoft Graph | Read all policies for privileged role assignments of your company’s directory | |
RoleManagement.Read.Directory | Microsoft Graph | Read 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)
Through the API and MCP
Section titled “Through the API and MCP”GET /ir-api/v1/reports/entra.configuration.pim-role-settings?size=100An 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.