Skip to content

OAuth Consent Grants

The question it answers: Which delegated permissions were consented to which applications, by whom, and which are tenant-wide or high impact?

Delegated permissions that have been consented to applications in this tenant - who granted them, to which application, and over which resource. Tenant-wide grants apply to every user at once. Source: Microsoft Graph oauth2PermissionGrants. How to read this: tenant-wide means an administrator consented on behalf of everyone. High impact flags scopes such as Mail.Read, Files.ReadWrite.All or Directory.ReadWrite.All. A grant being listed is not evidence of a problem - unexpected applications are.

Where in the appEntra ID › Security › OAuth Consent Grants
WorkloadEntra ID
KindTable
DataBuilt from the tenant data IntensiveReports keeps in memory and refreshes in the background, so it opens at once.
LicenceNo extra licence needed.
Report id (API and MCP)entra.security.oauth-consent-grants
ColumnKeyType
ApplicationClientDisplayNameLink
ResourceResourceDisplayNameText
StatusRiskStateStatus
ConsentConsentTypeText
ScopesScopeCountText
High-impact scopesHighImpactScopesStringText
All scopesScopesStringText
FilterKey (API)On when the page opens
Show only high-impact scopeshigh-impactNo
Show only tenant-wide grantstenant-wideNo

Licence: No extra licence needed.

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

PermissionAPIWhat it allowsNote
Directory.Read.AllMicrosoft GraphRead directory data
Application.Read.AllMicrosoft GraphRead all applications
Data sources it reads
  • GET /v1.0/oauth2PermissionGrants
GET /ir-api/v1/reports/entra.security.oauth-consent-grants?size=100
GET /ir-api/v1/reports/entra.security.oauth-consent-grants?filter=high-impact

An AI assistant reads it with the MCP tool get_report and the id entra.security.oauth-consent-grants. The client needs the Read grant for Entra ID. See Using the API.