๐Ÿ” Recipe ยท Entra ID & Identity

Troubleshoot Admin Consent Failures for Delegated Graph API Permissions

Diagnose why users with User Administrator role cannot grant admin consent, and assign the correct least-privilege role to enable consent for delegated Graph API scopes like User.Read.All

Complexity

Intermediate

Impact

security + access-management + least-privilege + troubleshooting

Context

Why This Matters

A common source of confusion in Microsoft Entra ID is when a user with the User Administrator role attempts to grant admin consent for a Graph API permission (such as User.Read.All) and is blocked with a consent error. Many admins assume that because User Administrator can manage users and groups, it also covers application consent โ€” but this is not the case.

Admin consent for application permissions is controlled by a separate set of roles: Global Administrator, Privileged Role Administrator, Cloud Application Administrator, and Application Administrator. If a user holds only User Administrator, they will fail to consent for any Graph scope that requires admin approval.

Run this recipe when:

  • A delegated admin reports they cannot approve consent prompts for internal tools (Dex CoAdmin, Power Platform connectors, custom apps)
  • You need to enable a non-Global-Admin to grant consent on behalf of the tenant
  • You want to verify your tenant's consent policy and identify which roles are assignable
  • You are rolling out least-privilege admin delegation and need to split user management from app management

Expected Outcomes

After completing this recipe you will have:

  • A clear diagnosis of why a given user cannot grant admin consent (role gap, tenant consent policy restriction, or missing service principal)
  • The correct least-privilege role assigned to the affected user โ€” typically Cloud Application Administrator โ€” so they can grant consent without becoming a Global Admin
  • Verified the tenant's authorization policy and permission grant policies
  • A repeatable script to audit and remediate similar cases across multiple users
  • Documentation of the role assignment for audit/compliance evidence

Risks & Considerations

Security and compliance considerations

  • Cloud Application Administrator is privileged. It can grant consent to almost any Graph API permission (except RoleManagement.* and app role assignments requiring Privileged Role Administrator). Treat holders as Tier 1 admins: enforce MFA, Conditional Access, and PIM where possible.
  • Do NOT default to Global Administrator. Granting Global Admin just to enable consent violates least-privilege. Always prefer Cloud Application Administrator or Application Administrator.
  • Admin Consent Workflow is a safer alternative for large tenants: leave regular users with User Administrator and route consent requests to a reviewer queue instead of granting them consent rights directly.
  • Tenant consent policy may still block the action even after role assignment. If ManagePermissionGrantsForSelf.* policies are restrictive, or if the app is flagged as risky, the consent will still fail โ€” you must also verify the permission grant policy.
  • Do not confuse delegated and application permissions. User.Read.All as delegated requires admin consent because it reads across the directory. The fix is role-based; the symptom looks identical to an app-permission consent failure.
  • Log all role assignments in your change management system; Entra audit logs retain them but correlation with tickets speeds incident review.

Required Permissions

PermissionWhy It's Needed
RoleManagement.ReadWrite.DirectoryRequired to read role definitions and assign directory roles like Cloud Application Administrator.
Directory.Read.AllRequired to look up the target user and verify their current role memberships.
Policy.Read.AllRequired to inspect the tenant authorizationPolicy and permissionGrantPolicies to rule out tenant-level blocks.
Application.Read.AllRequired to enumerate service principals and confirm the target app (e.g. Dex CoAdmin) is registered in the tenant.

The fastest way to get this done โ€” just ask Dex. Copy the prompt below and paste it into your Dex conversation.

For IT Admins

Paste into Dex CoAdmin

{user} has the User Administrator role but cannot grant admin consent for Graph permissions like User.Read.All. Investigate why, and if the issue is a role gap, assign the least-privilege role that allows them to consent (Cloud Application Administrator). Verify the fix.
Try in Dex CoAdmin

For End Users

How an employee would ask Dex for help

When I try to approve a permission request for our internal app, the Approve button is greyed out or I get an error saying admin approval is required. Can you fix my account so I can consent?
Try in Dex Playground