Identity · Runbook
Entra app consent baseline: users, admins and credentials
A baseline for Entra app consent: user consent, admin workflow, credential expiry, app management policies and owners, with portal paths and roles.
- Effort: Half a day
- Risk: Medium
- Rollback: Partial
- Reviewed: 22 Oct 2026
Applies to: Microsoft Entra
An Entra app consent baseline is five decisions: who can consent, who approves what users can’t, how long credentials live, who owns each app, and how you spot a bad grant. Microsoft recommends allowing user consent only for apps from verified publishers. Put an admin consent workflow in place before you tighten anything, so users have somewhere to go. Then review what is already granted, because tightening settings is not retroactive.
Checked on 2026-10-22 against these Microsoft pages:
- Configure how users consent to applications
- Manage app consent policies
- Configure the admin consent workflow
- Configure permission classifications
- Grant tenant-wide admin consent
- Review permissions granted to enterprise applications
- Configure restrictions on how applications can be configured
- Microsoft Entra application management policy API overview
- Recommendation to renew expiring application credentials
- Assign enterprise application owners
- Detect and remediate illicit consent grants
Menu labels differ between Learn pages (for example Entra ID > Enterprise apps and Identity > Applications > Enterprise apps). If a menu item isn’t where this post says, follow the linked Learn page for your tenant. Learn gives no rollout dates for the Microsoft-managed consent policy, so confirm any changes to it in your tenant’s Message Center.
What good looks like
Learn says all users can consent to apps by default, for permissions that don’t need administrator consent. A baseline narrows that and adds a route for everything else:
- User consent limited to verified publishers (or apps registered in your tenant) and low-impact permissions, or switched off.
- Admin consent workflow on, with named reviewers who hold the right roles.
- Permission classifications that say what “low impact” means for your organisation.
- Credential hygiene: expiry watched, lifetimes capped, secrets avoided in production.
- Owners on every app, two where possible.
- A weekly look at consent grants in the audit log.
Who is affected
- Anyone running a tenant with default consent settings. Learn describes user consent as allowed by default.
- Platform and identity teams who own app registrations and enterprise apps.
- Developers who register apps and hold secrets or certificates.
- Helpdesk and security staff who get asked “can I approve this app?”.
Why it matters
- Illicit consent grants are a real attack path. Learn describes an attacker registering an app and tricking users into consenting. It says password resets and MFA don’t remediate this, because the app is external to the organisation.
- Tenant-wide admin consent is sensitive. Learn’s examples of high-risk access include role management, full access to all mailboxes or all sites, and full user impersonation.
- Owners can be an escalation route. Learn notes an app may hold more permissions than its owner, so ownership can be an elevation of privilege.
Decisions to make first
1. Which user consent option? Learn’s admin centre options are: disable user consent; allow consent for verified-publisher or tenant-registered apps, for permissions you classify as low impact only; or allow consent to all apps. A custom app consent policy exists for advanced needs. There is also Let Microsoft manage your consent settings.
What the Microsoft-managed option means, per Learn:
- It uses the Microsoft-managed policy
microsoft-user-default-recommended. - It is the default for a new tenant.
- Its conditions update automatically.
- As currently documented (the page was updated on 2026-08-28), it excludes a long list of Graph delegated permissions from user consent. The list covers permissions in the Files, Sites, Mail, Calendars, Chat, OnlineMeetings and Tasks areas, plus People.Read, though that doesn’t mean every permission in each area is excluded. It also excludes the Exchange Online EAS, EWS, IMAP and POP AccessAsUser.All permissions. Read the full list on the Manage app consent policies page rather than assuming a permission is in or out.
- A second Microsoft-managed policy, enabled by default, lets users consent to specific mail permissions for named mail clients: Apple Mail, Spark, eM Client, Android-Samsung, Android-Mail and Thunderbird.
Because the conditions change automatically, the exact exclusion list can move under you. Re-read the Learn page, and check the Message Center, when you review.
The two built-in policies you may meet by name: microsoft-user-default-low allows consent only for verified-publisher or tenant-registered apps and only for low-impact permissions. microsoft-user-default-legacy allows consent to any permission not requiring admin consent, for any app.
2. Who approves? The admin consent workflow page says reviewers can view, block or deny requests, and that only Global Administrators can approve requests for Microsoft Graph application permissions (app roles). The grant tenant-wide admin consent page is a different page with a different purpose. It lists Privileged Role Administrator for granting consent to any permission on any API, and lists Cloud Application Administrator, AI Administrator and Application Administrator for everything except Graph app roles. Test in your tenant which roles can approve Graph app-role requests before you name reviewers. Being named a reviewer doesn’t grant privileges, so pick reviewers who already hold the right roles.
3. Secrets or certificates? Learn says client secrets are less secure than certificate or federated credentials and shouldn’t be used in production. It suggests certificates (managed via Azure Key Vault) or federated credentials instead.
Runbook
-
Record the current state
Check the current user consent option at Enterprise apps > Consent and permissions > User consent settings. Learn says configuring user consent needs the Privileged Role Administrator role, and that Global Administrator is only required when you use the Entra admin center. Screenshot the setting for your change record.
If you plan to change settings through Graph PowerShell, Learn says you need the Policy.ReadWrite.Authorization scope (Policy.Read.All to read), signed in as Privileged Role Administrator. Learn also says to retrieve the current
authorizationPolicybefore updating, so you don’t remove permission grant policies that are assigned (developer consent, for example). Learn’s example for the low-impact policy shows differing policy strings between its PowerShell and Graph samples, so check the exact string against what your tenant returns rather than copying one. -
Turn on the admin consent workflow first
Go to Enterprise apps > Consent and permissions > Admin consent settings. Learn says you must be a Global Administrator to turn the workflow on. Switch on Users can request admin consent to apps they are unable to consent to, add reviewers, and save. Learn says it can take up to an hour for the workflow to become enabled.
Check your reviewers. Learn says new reviewers can’t act on requests that existed or expired before they were added. Removed reviewers keep access to requests made while they were reviewers. Learn also points to the Update adminConsentRequestPolicy API in Microsoft Graph if you prefer to configure it that way.
-
Define low impact with permission classifications
Go to Enterprise apps > Consent and permissions > Permission classifications. Learn gives Cloud Application Administrator as the minimum role for the Graph PowerShell route, which needs the Policy.ReadWrite.PermissionGrant and Application.Read.All scopes.
Limits from Learn: only delegated permissions that don’t require admin consent can be classified. The Low classification is generally available. Medium and High are in preview. Microsoft’s own example classifies the basic sign-in set: openid, profile, email and offline_access. Start there and add by exception.
-
Set the user consent option
Back in User consent settings, choose the option from your decision above. For a restrictive setup, Learn recommends allowing user consent only for applications published by a verified publisher. Learn’s verified-publisher option also covers tenant-registered apps, and only for permissions you classify as low impact. If you disable user consent, Learn describes the Graph route as setting the default-user-role grant policies to only the
managePermissionGrantsForOwnedResource.*entries viaUpdate-MgPolicyAuthorizationPolicy. Check the exact values against the Learn page before running it.Learn says changes to user consent settings only affect future consent operations. Existing grants remain until revoked. Also, apps that require user assignment need administrator consent even if a user consent policy would allow it.
-
Review what is already granted
For each enterprise app, use the review view described on Learn’s page for reviewing permissions granted to enterprise applications. Confirm where that view sits in your tenant, as the menu label may vary. Learn says you need Cloud Application Administrator or Application Administrator. The Admin consent tab shows organisation-wide permissions. The User consent tab shows permissions for a specific user or group.
Learn’s limits:
- You can revoke admin-consented permissions in the portal. You can’t revoke permissions in the User consent tab using the portal. Use Graph or PowerShell.
- Revoking a grant doesn’t stop users re-consenting. Block user consent, or stop the app requesting permissions dynamically.
- Learn links a separate page for restoring revoked or deleted permissions.
For Graph, Learn lists
/servicePrincipals/{id}/oauth2PermissionGrantsto review delegated grants andDELETE /oAuth2PermissionGrants/{id}to remove one. For application permissions it uses/servicePrincipals/{id}/appRoleAssignments, with removal through theappRoleAssignedTopath. Learn also warns that a consent review isn’t complete on its own, because Entra roles, Exchange RBAC and Teams RSC can also grant access. -
Grant admin consent deliberately
Learn gives the portal path as Enterprise apps > All applications, select the app, then Security > Permissions > Grant admin consent. The alternative is App registrations > API permissions.
Roles, per Learn: Privileged Role Administrator for any permission on any API. Cloud Application Administrator, AI Administrator or Application Administrator for any API except Microsoft Graph app roles. A custom role with the grant-permissions permission also works.
Three things from Learn to hold in mind:
- Don’t grant consent if you don’t understand who controls the app and why it requests the permissions.
- Admin consent lets all users access the app by default. To restrict access, require user assignment.
- Granting tenant-wide consent may revoke permissions already granted tenant-wide for that app. Permissions granted programmatically have no review step and take effect immediately.
-
Watch credential expiry and rotate safely
In the Entra admin center go to Entra ID > Overview > Recommendations and open Renew expiring application credentials (Graph type
applicationCredentialExpiry). Learn documents signing in as at least Security Administrator. It flags credentials on an app registration that expire within the next 30 days.Licensing is unclear. The recommendation’s Graph sample lists
microsoftEntraWorkloadIdas the required licence, but the Learn text only says some recommendations might need P2 or other licences. Check the recommendations overview and your tenant’s licences before you rely on it. The Graph endpoint shown is beta.Learn’s rotation order: add the new credential, update the service, check the Key ID in the sign-in logs, then go back to App registrations > Certificates and Secrets and remove the old credential. For scripted rotation, Learn names the Graph methods addPassword, addKey, removePassword and removeKey.
Learn says client secret lifetime is limited to 24 months and a custom lifetime can’t exceed that. Microsoft recommends under 12 months.
-
Cap credentials with app management policies
Go to Enterprise apps > Application policies. Learn lists these portal settings: Block password addition, Restrict max password lifetime, Restrict max certificate lifetime, Block custom passwords and Block multitenant applications. For example, switch Block password addition to On, set Applies to to All applications, and save.
Facts from the Learn pages:
- The tenant default policy always exists and is disabled by default.
- An app that doesn’t meet a policy keeps working. Only the create or update operation that violates the policy is blocked, so existing secrets keep working.
- An app-level policy overrides the tenant default for the same restriction. Only one app management policy can be assigned per app.
- You can grant exceptions per app (All applications with exclusions, then Excluded apps) or per caller (Excluded callers). Caller exceptions use custom security attributes and need the Attribute Definition Administrator and Attribute Assignment Administrator roles as well.
- If policies were changed outside the admin center, the portal can disable editing until the restrictions are re-synchronised through Graph.
- The policy APIs on the configure page are Graph beta.
Roles: Microsoft’s pages disagree. The Graph overview says the least privileged roles are Application Administrator and Cloud Application Administrator. The configure page lists Security Administrator plus either of those, or Global Administrator alone. Use the stricter set unless you have tested the lighter one.
-
Put owners on apps
Learn recommends at least two owners per app, where possible, and using
serviceManagementReferenceto hold team contact information. To add an owner: Enterprise apps > All applications, select the app, Owners > Add. The minimum role is Cloud Application Administrator or Application Administrator.Use the admin centre for this. Learn says owners added through Graph or PowerShell can’t manage some enterprise app settings, such as attributes and claims, SAML certificate properties or token encryption. Also, if Restrict access to Microsoft Entra administration portal is set to Yes, non-admin owners can’t use the admin center to manage their apps. Groups can’t be owners.
For ownerless apps, Learn points to a Graph tutorial for listing ownerless applications (or those with a single owner). The portal can also filter enterprise apps by owner.
-
Review consent grants weekly
Learn says the best practice is a weekly review of consent grants. In the Defender portal, search the audit log for Consent to application activities and check whether IsAdminConsent is True. Learn says entries can take 30 minutes to 24 hours to appear.
If you find a suspicious grant
Learn’s remediation options are: remove the app from the user’s Applications page (Identity > Users > All users > the user > Applications > Remove), run Remove-MgOauth2PermissionGrant, run Remove-MgServicePrincipalAppRoleAssignment, or disable the account’s sign-in as a short-term measure. Learn says turning off integrated apps is drastic and not recommended.
Two cautions from the same page. Scoping an attack from the audit log needs mailbox auditing and activity auditing for admins and users to have been turned on before the attack. And the page lists Global Administrator as the documented permission while saying that role should be limited to emergency scenarios. It also points to the OAuth app investigation and policies in Defender for Cloud Apps as an alternative.
Agent identities and agent blueprints
This baseline doesn’t cover consent for agent identities or agent blueprints. For who can create agent blueprints, see restricting who can create Entra agent blueprints.
Related reading on CloudRunbook: Azure identity baseline for landing zones.
Checks
-
User consent settings show the option you chose, and the change record has the before and after.
-
The admin consent workflow is enabled (allow up to an hour after saving) and every reviewer holds the rights to grant consent.
-
Permission classifications list only what you intend to call low impact.
-
Existing grants have been reviewed on both the Admin consent and User consent tabs for the apps you care about.
-
Any revoked user-consented grant was removed through Graph or PowerShell, and re-consent is blocked or understood.
-
The Renew expiring application credentials recommendation is reviewed, and your licence position for it is confirmed.
-
App management policies show the restrictions you set, and a test app creation that breaks the rule is blocked.
-
Every app has an owner, two where possible, and ownerless apps are listed.
-
A weekly audit log search for Consent to application is in someone's calendar.
Rollback
- User consent setting: the before screenshot from the first runbook step is your record of what the setting was. Learn says changes only affect future consent operations, so grants made while the setting was loose remain until revoked.
- App management policies: reverse the restriction in Application policies. Learn says non-compliant apps keep working, and only the violating create or update is blocked.
- Custom consent policies: Learn says built-in policies can’t be edited and a deleted custom policy can’t be restored. Export the details before you delete one.
- Revoked permissions: Learn links a page on restoring revoked or deleted permissions. Read it before you bulk revoke.
Common pitfalls
- Assuming a setting change cleans up the past. It doesn’t. Existing grants stay until revoked.
- Revoking without blocking. Learn says revoking doesn’t stop users re-consenting.
- Reviewers without rights. Naming someone a reviewer doesn’t elevate their privileges. For Graph application permission requests, Learn’s workflow page says only Global Administrators can approve them. Check in your tenant which roles can approve before you name reviewers.
- Looking for user-consented grants in the portal to revoke. The portal can’t revoke them. Use Graph or PowerShell.
- Treating the Microsoft-managed policy as fixed. Its conditions update automatically and the documented exclusion list may change. Check the Message Center in your tenant.
- Copying one role list for app management policies. Microsoft’s two pages differ. Test what your admins can actually do.
- Owners added by script. They can’t manage some enterprise app settings. Add them in the admin centre.
- Secrets in production. Microsoft’s own guidance is to avoid them. Policy caps help, but certificates or federated credentials are the better answer.
- Stopping at consent. Entra roles, Exchange RBAC and Teams RSC can also grant access, so a consent review isn’t the whole picture.