OAuth Scope Overreach
It Asked for Read Email. It Also Asked for Everything Else. You Clicked Accept.
7 min read · 3 June 2026 · Security
A professional services firm integrated a productivity analytics vendor's platform with Microsoft 365 to provide work pattern insights for their executive team. The integration requested OAuth permissions during setup: the IT administrator reviewed a permissions consent page listing access to user profiles, calendar read, mail read, files read, and Sites.ReadWrite.All , the last permission providing read and write access to all SharePoint sites in the tenant. The IT administrator approved the consent, understanding the need for calendar and mail access for work pattern analysis and not specifically questioning the SharePoint write permission, which was buried in a list of several permissions with short technical descriptions. Two years later, during a security review, the SharePoint write permission was identified and questioned. The vendor's support team explained it had been included in the standard integration scope 'for potential future features' and was not currently used by the analytics functionality. The permission had provided write access to all SharePoint sites in the tenant for two years for a feature that had never been built. The analytics integration was working correctly. The excess scope it had been granted was providing vendor application access to the firm's entire SharePoint environment for two years beyond any analytical necessity.
What is OAuth Scope Overreach, Really?
OAuth is an authorization framework that enables applications to obtain limited access to user accounts on third-party services , allowing a user to authorize an application to act on their behalf for specific purposes without sharing their credentials with the application. OAuth scopes define the specific permissions the application is requesting , the specific resources it can access and the operations it can perform. An application that requests the scopes it actually needs for its stated function implements OAuth correctly. An application that requests scopes beyond what its stated function requires , for future features, for operational convenience, or without deliberate scope definition , implements OAuth with scope overreach.
The scope accumulation pattern is the most common form of OAuth scope overreach in enterprise SaaS integrations. Vendors who build integrations with Microsoft 365, Google Workspace, Salesforce, and similar platforms often request broad scope sets that cover all the platform capabilities they might ever use across all their customers, rather than requesting the minimum scope required for the specific integration with the specific customer. This approach simplifies integration development , one permission set covers all possible integration scenarios , but it results in every customer's OAuth authorization providing the vendor application access to resources the integration never actually uses.
The consent fatigue problem amplifies scope overreach risk. Enterprise OAuth consent flows present a list of requested permissions to the administrator who approves the integration. When the list is long, technical, and presented at the point of integration setup when the administrator is focused on getting the integration working, individual permission scrutiny is limited. Permissions that appear in a list of ten or fifteen are reviewed less carefully than permissions presented individually. Vendors who request broad scope sets benefit from the consent fatigue that makes each individual permission less scrutinized than it would be if requested alone.
- Broad scope requests for potential future features , permissions included for features not yet built or not yet used in the specific integration
- One-size-fits-all scope sets , vendor applications requesting the same broad permission set for all customers regardless of the specific integration requirements
- Sensitive operation permissions beyond analytical needs , write permissions, delete permissions, or administrative permissions requested by applications that claim only read or analytical functions
- Consent fatigue exploitation , long permission lists that reduce scrutiny of individual permissions
- Scope not reviewed after grant , OAuth authorizations granted and never subsequently reviewed for continued appropriateness
Why this matters
OAuth scope overreach matters for TPRM because OAuth authorizations granted to vendor applications persist , often for years , and the scope they provide continues to be available to the vendor application regardless of whether the features that might use that scope are ever built or used. An OAuth authorization with Sites.ReadWrite.All provides write access to all SharePoint sites for the lifetime of the authorization, including the two years during which the feature requiring that access was never deployed.
The supply chain attack scenario makes scope overreach particularly consequential. When a vendor application is compromised , through a vulnerability in the application's own code or infrastructure , the attacker gains access to the OAuth tokens the application holds for its customers. The access those tokens provide is determined by the OAuth scope the customer granted. A vendor application compromised with customer OAuth tokens scoped to mail read provides the attacker with access to customer email. The same compromise with tokens scoped to Sites.ReadWrite.All provides write access to the customer's entire SharePoint environment.
For TPRM practitioners, the OAuth scope assessment requires reviewing the specific permissions granted to vendor applications , not just confirming that OAuth is used , and challenging whether each scope is necessary for the vendor's stated function with the customer's specific integration.
Where most teams get this wrong
The most consistent failure is accepting OAuth as an authorization mechanism without reviewing the scope of the authorization. OAuth provides a secure mechanism for delegated access. The scope of that delegation is what determines the access the vendor application holds. Confirming OAuth integration without reviewing the scope confirms the mechanism without governing the access.
- Confirming OAuth mechanism without reviewing scope
- No scope necessity assessment , each requested permission not evaluated against stated function
- Write and administrative permissions not challenged in read-focused integrations
- No post-grant scope review , OAuth authorizations granted and never revisited
- No scope minimization requirement , accepting vendor's standard scope request without challenging excess permissions
What good looks like
Mature OAuth governance programs review each requested scope against the vendor's stated integration function, challenge permissions that exceed the minimum required, negotiate minimum necessary scope where vendor platforms support custom scope sets, and periodically review existing OAuth authorizations for continued appropriateness and minimum scope.
- Scope necessity review for each OAuth authorization , each requested permission evaluated against the vendor's specific function
- Challenge of write and administrative permissions for read-focused integrations
- Minimum necessary scope negotiation , requesting vendor to reduce scope set to the minimum required for the specific integration
- Periodic OAuth authorization review , existing authorizations reviewed for continued appropriateness and scope minimization
- OAuth authorization inventory , all active OAuth authorizations to vendor applications documented with scope and last review date
Tooling
OAuth Authorization Management , Microsoft Entra ID App Registrations, Google Workspace Admin, Okta
Enterprise identity platform admin consoles provide OAuth authorization inventories , listing all applications with authorized access, the scopes they hold, and the date of authorization. Microsoft Entra ID's Enterprise Applications view shows all OAuth authorizations in the tenant with the permissions each application holds. Regular review of this inventory against the current integration requirements surfaces excess scope that accumulated at consent and has never been revisited. For TPRM practitioners, asking whether the vendor's customers can review and modify the OAuth scope without reinstalling the integration provides a specific scope management capability question.
SaaS Security Posture Management , Obsidian Security, AppOmni, Grip Security
SaaS security platforms specifically analyze OAuth authorizations across connected SaaS applications , identifying applications with excessive scope, detecting new OAuth authorizations, and alerting on scope changes. For TPRM practitioners, asking whether the customer organization uses SSPM to monitor OAuth authorizations to vendor applications provides a detection capability question for scope governance.
Governance challenges
The governance challenge with OAuth scope overreach is the enterprise application sprawl problem. Organizations with dozens or hundreds of SaaS integrations may have granted OAuth authorizations to vendor applications across many different admin consoles , Microsoft 365, Google Workspace, Salesforce, Slack, and others. No single tool provides visibility across all of them, and periodic scope review requires examining each platform's OAuth authorization inventory separately.
- Review OAuth scope for all vendor integrations , each requested permission against stated function
- Challenge write and administrative permissions in read integrations
- Maintain OAuth authorization inventory , all active authorizations with scope documentation
- Periodic scope review , existing authorizations reviewed for minimum necessary scope
- Add scope minimization requirement to integration onboarding checklist
If you are a small team
Open the enterprise applications section of your organization's Microsoft 365 admin center and review the permissions granted to the five highest-risk vendor applications. For each permission listed, ask whether it is required for the integration's stated function. Any write permission for a read-only integration and any administrative permission for an analytical integration should be challenged. That thirty-minute review will surface scope overreach that has been in place since the integration was set up and has never been questioned.
- Review Microsoft 365 and Google Workspace OAuth authorization inventories for vendor applications
- Challenge write and administrative permissions for read-only integration use cases
- Maintain an OAuth authorization inventory with scope and review date
- Add scope minimization review to integration setup checklist
What to require
Ask directly:
"For each permission in your standard OAuth scope request for our Microsoft 365/Google Workspace integration, can you explain specifically what feature or function in your platform requires that permission , and which permissions could be removed without affecting the current functionality we use?"
"Do you offer a minimum necessary OAuth scope configuration for customers who want to limit permissions to the specific features they use , or does your integration require the full standard scope set regardless of which features are enabled?"
Expect as evidence
- Per-permission justification , each scope tied to a specific feature
- Minimum necessary scope option , whether reduced scope configurations are available
- Unused permission identification , permissions currently not exercised by active features
- Scope review process , how customers can request scope reduction
A vendor who responds to the permission justification question with 'our standard integration requires these permissions to function' should be asked which specific features require each specific permission. 'Requires these permissions' describes the current scope configuration. The question is whether each permission is required for the features the customer has enabled, not whether the current configuration works.
How to evidence it
- OAuth scope review records for vendor integrations
- Per-permission necessity documentation
- Minimum scope negotiation records where applicable
- Periodic scope review records
Key Takeaway
OAuth grants access through scopes. Each scope is a specific permission. The aggregate of all granted scopes is the access the vendor application holds. An OAuth authorization is not a yes-or-no decision , it is a specific permission set decision, and each permission in that set requires individual justification. The vendor application that asked for read mail, read calendar, read files, and write to all SharePoint sites asked for four different things. Three of them may be necessary. One may have been included for a feature that was never built. Accepting the consent dialog approved all four. Reviewing the scope means asking about each one. The framework is OAuth. The governance is the scope review.
Speak to It™
The term you nodded along to, explained in ninety seconds, so you can speak to it professionally. It is how most readers find these articles.
Join the Association