Global Administrator Just Lost 19 Permissions in Entra ID — Here’s Why Your Identity Strategy Must Change Now + Video

Listen to this Post

Featured Image

Introduction:

Microsoft has quietly reshaped the Entra ID built-in role catalog, stripping 19 permissions from the Global Administrator role while creating dedicated roles for AI agent lifecycle management. This shift marks a fundamental change in how organizations must approach least privilege, as agentic identities become first-class citizens in the identity and access management landscape. If you have been over-assigning Global Administrator “to be safe,” some of that scope just moved — and you need to re-check your role assignments immediately.

Learning Objectives:

  • Understand the exact permissions removed from Global Administrator and where they migrated
  • Learn how to use Entra RoleLens to detect role changes and identify the minimum privilege role for any task
  • Implement a continuous monitoring strategy for Entra ID role catalog changes to maintain least privilege

You Should Know:

  1. The Great Permissions Migration: What Microsoft Actually Changed

Over the last few weeks, Microsoft has been reshaping the Entra built-in role catalog around one central theme: agent identities — the identities behind AI agents, including agent blueprints, agent users, and agentic principals. The changes are not cosmetic; they represent a fundamental re-architecting of how identity permissions are structured for the agentic AI era.

What changed in the role definitions:

| Role | Change | Details |

||–||

| Global Administrator | −19 / +2 | Nearly everything removed was agent lifecycle: agentUsers/create\|delete\|enable\|disable, `agentIdentityBlueprints/` |
| Agent ID Administrator | +6 | Picked up agent identity powers including deleted-item restore |
| Agent ID Developer | +1 | Added `agentIdentityBlueprints/createAsOwner` |
| Identity Governance Administrator | Now privileged | Reclassified as privileged — warrants PIM + access reviews |
| AI Reader | New built-in role | Joined the catalog, tweaked again on Jun 17 |

The 19 permissions removed from Global Administrator:

− microsoft.directory/agentIdentityBlueprints/allProperties/read
− microsoft.directory/agentIdentityBlueprints/verification/update
− microsoft.directory/agentUsers/assignLicense
− microsoft.directory/agentUsers/basic/update
− microsoft.directory/agentUsers/create
− microsoft.directory/agentUsers/delete
− microsoft.directory/agentUsers/disable
− microsoft.directory/agentUsers/enable
− microsoft.directory/agentUsers/invalidateAllRefreshTokens
− microsoft.directory/agentUsers/lifeCycleInfo/read
− microsoft.directory/agentUsers/lifeCycleInfo/update
− microsoft.directory/agentUsers/manager/update
− microsoft.directory/agentUsers/photo/update
− microsoft.directory/agentUsers/reprocessLicenseAssignment
− microsoft.directory/agentUsers/restore
− microsoft.directory/agentUsers/revokeSignInSessions
− microsoft.directory/agentUsers/sponsors/update
− microsoft.directory/agentUsers/usageLocation/update
− microsoft.directory/agentUsers/userPrincipalName/update

The 2 permissions added to Global Administrator:

+ microsoft.directory/agentIdentities/authentication/update
+ microsoft.directory/agentIdentityBlueprintPrincipals/authentication/update

The pattern is clear: Microsoft is pulling agent management OUT of the god-mode role and into dedicated, scoped roles. This is least privilege for the agentic era.

  1. Entra RoleLens: Your Early Warning System for Role Changes

The catch with these changes? None of this ships as a changelog you can subscribe to. The catalog just shifts — you only catch it if something diffs it daily. Enter Entra RoleLens, a free and open-source tool that tracks the built-in role catalog daily and shows exactly what changed.

What Entra RoleLens does:

  • Task → Role: Describe any Entra admin task in plain language — “reset a user’s MFA,” “read audit logs,” “manage Conditional Access policies” — and get back the minimum built-in role required
  • Role Diff: Select any two built-in roles and see every permission one has that the other lacks, side by side
  • What’s New Timeline: A live feed of what Microsoft changed in the role catalog — which permissions were added/removed, privilege reclassifications, and brand-1ew roles — each entry expandable to the exact permissions
  • Shadow Detection: Roles present in the Graph API but absent from public documentation are flagged as `isShadowRole: true` — catching unreleased Microsoft roles before announcement

How to use Entra RoleLens:

  1. Navigate to https://entrarolelens.aboutcloud.io
  2. Use the Task → Role mode: Type any Entra admin task in plain language
  3. Review the minimum built-in role returned, with a direct link to Microsoft’s source documentation
  4. Use Role Diff to compare any two roles and see unique permissions
  5. Check the What’s New panel to see recent catalog changes with green (added) and red (removed) indicators

The tool is refreshed nightly via a secure, passwordless OIDC pipeline, so every change Microsoft makes is detected and live by morning.

  1. How to Detect and Respond to Role Changes Using PowerShell and Graph API

Microsoft does not provide a native changelog subscription for role catalog changes. To detect changes programmatically, you need to compare the live Graph API against a known baseline. Here’s how:

Step 1: Export current role definitions using Microsoft Graph PowerShell

 Connect to Microsoft Graph with appropriate permissions
Connect-MgGraph -Scopes "RoleManagement.Read.All", "Directory.Read.All"

Get all directory role definitions
$roles = Get-MgDirectoryRoleTemplate | ForEach-Object {
$role = $_
$permissions = Invoke-MgGraphRequest -Method GET -Uri "https://graph.microsoft.com/v1.0/roleManagement/directory/roleDefinitions/$($role.Id)/permissions"
[bash]@{
RoleName = $role.DisplayName
RoleId = $role.Id
Permissions = $permissions.value
}
}

Export to JSON for baseline comparison
$roles | ConvertTo-Json -Depth 10 | Out-File ".\entra_roles_baseline_$(Get-Date -Format 'yyyyMMdd').json"

Step 2: Compare against previous baseline to detect changes

 Load previous baseline
$previous = Get-Content ".\entra_roles_baseline_YYYYMMDD.json" | ConvertFrom-Json

Load current state
$current = Get-Content ".\entra_roles_latest.json" | ConvertFrom-Json

Compare permissions per role
foreach ($role in $current) {
$prevRole = $previous | Where-Object { $<em>.RoleId -eq $role.RoleId }
if ($prevRole) {
$prevPerms = $prevRole.Permissions | ForEach-Object { $</em>.value }
$currentPerms = $role.Permissions | ForEach-Object { $_.value }

$added = Compare-Object -ReferenceObject $prevPerms -DifferenceObject $currentPerms | Where-Object { $<em>.SideIndicator -eq "=>" }
$removed = Compare-Object -ReferenceObject $prevPerms -DifferenceObject $currentPerms | Where-Object { $</em>.SideIndicator -eq "<=" }

if ($added -or $removed) {
Write-Host "Role $($role.RoleName) changed:" -ForegroundColor Yellow
$added | ForEach-Object { Write-Host " + $<em>" -ForegroundColor Green }
$removed | ForEach-Object { Write-Host " - $</em>" -ForegroundColor Red }
}
}
}

Step 3: Set up automated daily comparison using GitHub Actions or Azure Automation

Entra RoleLens already does this for you, but if you want to build your own, here’s a GitHub Actions workflow template:

name: Entra Role Catalog Monitor
on:
schedule:
- cron: '0 1   '  Daily at 1 AM UTC
workflow_dispatch:

jobs:
monitor:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Export roles
run: |
 PowerShell script to export roles
pwsh ./export_roles.ps1
- name: Compare with baseline
run: |
pwsh ./compare_roles.ps1
- name: Create issue if changes detected
if: failure()
uses: actions/github-script@v6
with:
script: |
github.rest.issues.create({
owner: context.repo.owner,
repo: context.repo.repo,
title: '⚠️ Entra Role Catalog Changes Detected',
body: 'Microsoft has changed the Entra ID role catalog. Review the workflow logs for details.'
})

4. Implementing Least Privilege for Agentic AI Identities

With the introduction of Agent ID Administrator and Agent ID Developer roles, organizations must rethink how they assign permissions to AI agents and service principals.

Best practices for agent identity management:

  • Never assign Global Administrator to AI agents: The permissions removed from GA were specifically agent lifecycle operations. Use Agent ID Administrator instead
  • Use Agent ID Developer for creation tasks: This role has `agentIdentityBlueprints/createAsOwner` — sufficient for developers building agent blueprints
  • Monitor deleted items restoration: Both new roles have permissions to restore deleted agent identities (deletedItems.agentIdentities/restore). Ensure this is audited
  • Review Identity Governance Administrator access: Now classified as privileged, this role warrants PIM, time-bound activation, and access reviews

Azure CLI commands for managing agent roles:

 List all directory role definitions
az ad role-definition list --query "[].{roleName:roleName, id:id}" --output table

Get specific role definition
az ad role-definition list --query "[?roleName=='Agent ID Administrator']" --output json

Assign Agent ID Administrator to a service principal
az ad role assignment create \
--role "Agent ID Administrator" \
--assignee-object-id <service-principal-object-id> \
--assignee-principal-type ServicePrincipal

Check assignments for Global Administrator
az ad role assignment list \
--role "Global Administrator" \
--query "[].{principalDisplayName:principalDisplayName, principalType:principalType}" \
--output table

5. Building a Continuous Compliance Monitoring Strategy

The Entra ID role catalog is now a moving target. Organizations must move from periodic reviews to continuous monitoring.

Step 1: Baseline your current role assignments

 Export all role assignments
Get-MgDirectoryRole | ForEach-Object {
$role = $_
Get-MgDirectoryRoleMember -DirectoryRoleId $role.Id | ForEach-Object {
[bash]@{
RoleName = $role.DisplayName
MemberId = $<em>.Id
MemberType = $</em>.AdditionalProperties.'@odata.type'
}
}
} | Export-Csv ".\role_assignments_baseline.csv" -1oTypeInformation

Step 2: Set up PIM activation alerts for privileged roles

 Get PIM activation requests (requires PIM module)
Get-MgPrivilegedRoleAssignmentRequest -Filter "status eq 'Approved'" | 
Where-Object { $_.CreatedDateTime -gt (Get-Date).AddDays(-7) } |
Select-Object RoleId, PrincipalId, CreatedDateTime, ApprovalState

Step 3: Automate access reviews for newly privileged roles

When Identity Governance Administrator was reclassified as privileged, it became a candidate for PIM and access reviews. Use Microsoft Graph to automate:

 Python script using Microsoft Graph SDK
from msgraph import GraphServiceClient
from azure.identity import ClientSecretCredential

credential = ClientSecretCredential(
tenant_id="your-tenant-id",
client_id="your-client-id",
client_secret="your-client-secret"
)
client = GraphServiceClient(credential)

Get all privileged roles
roles = client.role_management.directory.role_definitions.get()
for role in roles.value:
if role.is_privileged:
print(f"Privileged role: {role.display_name}")
 Trigger access review for this role

What Undercode Say:

  • The Global Administrator role is being systematically dismantled — not through reduction of its capabilities, but through the creation of dedicated roles. This is the beginning of the end for “god-mode” administration in Entra ID.
  • Agentic AI is driving identity architecture — Microsoft is treating AI agents as first-class identity objects with their own lifecycle, separate from human users. This sets a precedent for how other cloud providers will handle AI identity.
  • The “What’s New” panel in Entra RoleLens is now essential — without a daily diff, you will miss critical changes. Microsoft does not publish changelogs for role catalog updates, making this tool indispensable for identity security teams.
  • Shadow role detection is a game-changer — catching unreleased Microsoft roles before they are documented gives organizations a proactive advantage in preparing for identity changes.
  • Least privilege is no longer a principle; it’s a continuous process — with the role catalog changing without notice, organizations must adopt automated monitoring and alerting to maintain a secure posture.

Analysis:

The removal of 19 permissions from Global Administrator represents a significant shift in Microsoft’s identity strategy. By extracting agent lifecycle management into dedicated roles, Microsoft is acknowledging that AI agents will operate at scale and require granular permission controls. This change also reduces the attack surface of the Global Administrator role — if an attacker compromises a GA account, they no longer automatically gain control over agent identities. However, organizations that have been relying on Global Administrator as a “catch-all” role will need to audit their assignments and redistribute permissions. The introduction of Agent ID Administrator and Agent ID Developer roles suggests that Microsoft expects organizations to have dedicated identity teams for AI agents, similar to how service principal management is often separated from user identity management.

Prediction:

+1 Organizations that adopt Entra RoleLens and automated role monitoring will have a significant security advantage, catching role changes before they become operational risks.

+1 The Agent ID Administrator and Developer roles will become the new standard for AI agent management, with Microsoft expanding these roles to include more granular permissions as agentic AI capabilities grow.

-1 Organizations that fail to audit their Global Administrator assignments will experience privilege creep, as the removed permissions are now scattered across multiple roles that may be over-assigned.

+1 Shadow role detection will become a standard feature in identity security tools, as Microsoft accelerates the pace of role catalog changes without documentation.

-1 The lack of a native changelog subscription from Microsoft will continue to be a blind spot for organizations until they implement daily diffs using tools like Entra RoleLens.

▶️ Related Video (72% Match):

🎯Let’s Practice For Free:

🎓 Live Courses & Certifications:

Join Undercode Academy for Verified Certifications

🚀 Request a Custom Project:

Secure, high-velocity infrastructure and disruptive technological engineering. Contact our engineering team for high-tier development and proprietary systems:
[email protected]
💎 Smart Architecture | 🛡️ Secure by Design | ⭐ Trusted by Thousands

IT/Security Reporter URL:

Reported By: Https: – Hackers Feeds
Extra Hub: Undercode MoN
Basic Verification: Pass ✅

🔐JOIN OUR CYBER WORLD [ CVE News • HackMonitor • UndercodeNews ]

💬 Whatsapp | 💬 Telegram

📢 Follow UndercodeTesting & Stay Tuned:

𝕏 formerly Twitter 🐦 | @ Threads | 🔗 Linkedin | 🦋BlueSky