Skip to content
Article

OAuth permissions: who can silently open a door to your SaaS?

Attackers don't break SSO; a user grants an app full Drive access in one click. Why OAuth-consent attacks are 2026's quietest open door, and the weekly review list to run against it.

June 3, 2026
7 min read
OAuthSSPMIdentity

Since mid-2025, security headlines have echoed a single pattern: "the attacker didn't break SSO; the user clicked once and gave a harmless-looking app the keys." After Microsoft published a series of advisories on OAuth-consent attacks, SSPM (SaaS Security Posture Management) climbed rapidly on the Gartner Hype Cycle. The reason fits in one sentence: every SaaS tenant is full of OAuth apps that users approved on their own.

This piece explains why OAuth permission inventory has become non-negotiable for any modern SSPM tool, what "high-risk" scope classification looks like, and the weekly review list you should already be running.

Why OAuth consent is so critical

Microsoft 365, Google Workspace, Salesforce, Slack — on every modern SaaS platform, users can grant access to third-party apps straight from the browser. A typical "Sign in with Google" flow asks for things like:

  • Access to your email
  • Manage your calendar
  • Read/write your Drive files
  • List your contacts

These permissions persist after the user's session ends. The token is usually long-lived. The attack scenario is simple: the user grants permission to a harmless-looking AI summariser, which then quietly copies the entire Drive in the background. The SSO log is clean, no alert fires — because the action happened on behalf of the user.

Scope tiers: which permission is actually dangerous

Not all OAuth permissions are equal. Industry practice splits them into three categories:

High-risk (admin / write)

  • Mail.Send, Mail.ReadWrite — send and read mail on the user's behalf
  • Files.ReadWrite.All — read and write all files
  • Directory.ReadWrite.All — modify identity data
  • Sites.FullControl.All — full control over SharePoint

Medium-risk (broad read)

  • Files.Read.All — read all files
  • Calendars.Read — read calendar
  • Contacts.Read — read contacts

Low-risk (identity / profile)

  • User.Read, openid, profile — identity only

The point is: leaving an app a user gave a high-risk scope to unreviewed for weeks or months is leaving a door open. If an attacker compromises that single app, they inherit every one of those entitlements.

The four-tier OAuth scope risk pyramid. A single 'Authorize' click can span anything from a simple profile read to org-wide write — an SSPM inventory that fails to make that distinction is functionally blind.
The CenseCloud approach
We read real grants from Entra ID's oauth2PermissionGrants endpoint, classify scopes automatically as high / medium / low risk, and surface them on the risks page. A weekly review of unknown apps with high-risk scopes is a small habit with outsized impact.

The weekly OAuth review list

The minimum list an SSPM team should look at once a week:

  • Newly added apps. Third-party apps that registered in the tenant since last week.
  • Apps holding high-risk scopes. Anything with ReadWrite.All or FullControl.
  • Single-user consents with tenant-wide impact.
  • Unknown publishers. Anything not from Microsoft / Google / Atlassian / a known vendor — ad-hoc developer-name publishers especially.
  • Stale / unused consents. Apps that haven't shown activity for 60+ days but still hold an active grant.
The natural lifecycle of an OAuth grant: granted once, the user leaves, the token is rarely revoked. That long tail is invisible to SSO logs; CenseCloud surfaces the residue on a weekly cadence.

What this monitoring is NOT for

OAuth permission inventory is not a content-inspection tool. CenseCloud doesn't read application content or touch user data; it only answers "which app, which scope, granted by which user, when". As we say on the about page — we're not in the data path.

Conclusion: the quietest open door

OAuth permissions are the quietest security gap right now: the SSO log is clean, the AD account is normal, the app may even carry an "approved" badge. A behaviour that isn't an attack vector takes weeks to discover when it becomes one.

The fix is not a one-time setup, it's a continuous review rhythm. See the third-party risk solution or the platform architecture for how OAuth inventory works inside CenseCloud.

See how it works in your stack

Book a 30-minute walkthrough — your inventory, your spend, your team. No deck.