This page discusses Entra ID application admin consent in the context of what the UW defines as risky permissions and its related practices.
Related pages you might be interested in:
Submit the Risky Entra ID Application Request form to request approval for an application that includes OAuth permissions requiring Admin consent.
Admin consent may be needed for one of three scenarios:
In general, our practices about approval of admin consent requests are the following:
If a 3rd party application does not have Microsoft publisher verification we are less inclined to grant admin consent. The Microsoft publisher verification program has information at https://learn.microsoft.com/en-us/entra/identity-platform/publisher-verification-overview, and most vendors go through this verification process to ensure customers trust their application. If a vendor isn't willing to go through this process, it is an indication that something is not right. The consent dialog will show "Unverified" if the application has no publisher verification.
3rd party applications which only have delegated permission scopes that are not of type admin, but require admin consent, are also a scenario for which we are generally unwilling to grant consent. This is a scenario where the request exceeds the business need. User consent would work fine for the delegated permission scopes, so the design of the application is such that it is forcing enterprises to accept the application for all users or not allow it for any users. There are exceptions to this general rule where a 3rd party application has publisher verification and there is a large UW user population that will be using the application.
| API & Permission Scope | Reason we won't grant | 
| MSGraph: Directory.Read.All | Grants access to all directory data regardless of its data classification. In specific, this grants access to Office 365 groups with hidden membership. | 
| MSGraph: Groups.Read.All | This grants access to Office 365 groups with hidden membership. | 
| MSGraph: GroupMember.Read.All | This grants access to Office 365 groups with hidden membership. | 
| MSGraph: Groups.ReadWrite.All | Inappropriate to grant write access to all groups. | 
| MSGraph: User.ReadWrite.All | Inappropriate to grant write access to all users. | 
| MSGraph: Member.Read.Hidden | This grants access to Office 365 groups with hidden membership. | 
| MSGraph: Files.Read.All | This grants read access to all Sharepoint Online and OneDrive for Business files. This is generally inappropriate. | 
| MSGraph: DeviceManagementServiceConfig.Read.All | This provides access to Intune service configuration. Intune at the UW is in containment and is planned to be centrally managed by UW-IT. | 
| Intune: update_device_attributes | Intune at the UW is in containment, and having the ability to update every Intune managed device is inappropriate. | 
| Intune: update_device_health | Intune at the UW is in containment, and having the ability to update every Intune managed device is inappropriate. | 
| Intune: manage_partner_compliance_policy | Intune at the UW is in containment and is planned to be centrally managed by UW-IT. If 3rd party partners need this permission it would be a planned part of a central service offering. | 
| Office 365 Management API: ActivityFeed.Read | This grants access to all Teams channels. This broad level of access is inappropriate. | 
| API & Permission Scope | Explanation | 
| 
 MSGraph: Mail.Read   | 
Inappropriate to grant read or write access to all user's mailboxes. Must use the approaches noted at Programmatic access to an Exchange Online mailbox - IT Connect (uw.edu) | 
| MSGraph: Sites.FullControl.All  MSGraph: Sites.Manage.All MSGraph: Sites.Read.All MSGraph: Sites.ReadWrite.All  | 
Inappropriate to grant read or write access to all Sharepoint Online sites. Must use the approaches noted at Programmatic access to a SharePoint Online site - IT Connect (uw.edu) | 
| MSGraph: User.Invite.All | This grants the ability to programmatically invite guest users. Any member user in our Entra tenant can interactively invite guest users. Programmatically inviting guest users is generally inappropriate, except as a centrally managed activity, since it adds the potential for significant risk to the institution given the larger scale that it enables. | 
We introduced the possibility of this scenario above. To review, some applications might involve only delegated permission scopes that are not of type admin, but still require admin consent. This is because Microsoft has decided that some permission scopes are generally dangerous to allow user consent, so has introduced this new behavior.
The set of permission scopes which have this behavior are:
| API & Permission Scope | Explanation | 
| 
 MSGraph: Files.Read.All (delegated)  | 
Microsoft introduced protections for Sharepoint Online and OneDrive for Business via MC1097272. | 
| 
 MSGraph: Calendars.?? (delegated)  | 
Microsoft will introduce protections for Exchange Online and Team via MC1163922 in late October. The specific permission scopes have not been documented by Microsoft at the time of this document's last update so the possible scope ranges are included. | 
For this scenario, we have several options for how to address the forced admin consent experience. The options are:
If you feel your application qualifies for one of the above solutions, you can request that we consider it.
The UW may further shift its user consent practices in the future to add additional options for this general scenario of forced admin consent. This topic is under discussion due to the significant changes Microsoft has made in how user consent operates.
UW-IT monitors the enterprise Entra ID tenant for Entra ID applications which have a set of permissions which we've determined are risky for the UW. When we detect an application with risky permissions, which hasn't been explicitly approved, we raise alerts that result in that application being disabled and put in a review process. If judged to be OK, the application is re-enabled, otherwise the application is deleted.
The permissions UW-IT currently considers risky are:
If you'd like UW-IT to consider adding additional permissions to what it considers risky, please send an email to help@uw.edu with "Entra ID risky permission request" in the subject line. The service manager and owner will consider your request. If they deny your request and you disagree, you have the right to escalate to the UW-IT Microsoft change advisory board. If they agree, we'll add your permissions to the set of risky permissions that we monitor for. All risky permissions that are monitored for will be documented here.
If you don't know the specific permission scopes but have gotten the admin consent error, please share the specific URL with us in your request. That URL should look something like this:
https://login.microsoftonline.com/{organization}/adminconsent?client_id={client-id}.
An example of an Entra ID application is the Microsoft Graph API. This Entra ID application identity is used by a RESTful web service interface by which you can query information about your Entra ID tenant. The Microsoft Graph API Entra ID application identity has 3 user permissions and 6 admin permissions. These are listed below to provide a concrete example of the kinds of permissions that an Entra ID application identity may provide--and that another Entra ID application identity may want to get access to. Admin permissions for Microsoft Graph API
User permissions for Microsoft Graph API
So if a given Entra ID application was added to the UW Entra ID tenant and required 'Member.Read.Hidden' or 'Directory.Read.All' we'd detect that and flag that Entra ID application as having a risky permission. It would be disabled and reviewed.