OAuth 2.1
What it is
OAuth 2.1 is not a new protocol but a cleanup: it folds OAuth 2.0, PKCE, and the OAuth Security Best Current Practice into one document and removes the parts that proved unsafe. The goal is that a developer who follows OAuth 2.1 gets a secure result by default, without having to read a dozen RFCs and errata.
What changes from OAuth 2.0
- PKCE is required for all authorization code flows, not just public clients.
- The implicit grant is removed. Tokens are no longer returned in the front channel.
- The resource owner password credentials grant is removed.
- Exact redirect URI matching is mandated.
- Refresh token handling is tightened, with rotation or sender-constraining for public clients.
How it works
The model is the same as OAuth 2.0: clients obtain scoped access tokens from an authorization server. In practice OAuth 2.1 means: use the authorization code flow with PKCE for anything with a user, the client credentials grant for machine-to-machine, and the device authorization grant for input-constrained devices.
Status
OAuth 2.1 is an active IETF draft. Most modern identity platforms already implement its recommendations, so adopting it today is mostly about avoiding the removed flows rather than waiting for a final RFC.
Pitfalls
- Legacy apps using the implicit or password grants need migration before they can claim OAuth 2.1 compliance.
- "OAuth 2.1 support" from a vendor usually means PKCE-by-default and dropped legacy grants; confirm the specifics.
Related
OAuth 2.0, OpenID Connect, and the guide OAuth vs OIDC.
Related on Start with Identity
- BlogConsentFix: hijacking Microsoft 365 through the OAuth consent flow
ConsentFix adapts the ClickFix pattern to identity. Instead of running a command on the victim's machine, it walks them through an OAuth consent flow and asks t
- CVEDrupal Simple OAuth/OIDC auth bypass via an alternate path
Drupal Simple OAuth / OIDC 6.0.0 through 6.0.6 allowed authentication to be skipped on an alternate path. Patched in 6.0.7.
- CVEDuende OAuth token management mixes tokens across requests
A race in Duende's .NET OAuth token-management package could attach client A's token to client B's request. Session mix-up, not a crypto break, but it is still
- RecipeImplement OAuth authorization code flow with PKCE
A step-by-step, framework-agnostic implementation of the OAuth 2.0/2.1 authorization code flow with PKCE: generating the verifier and challenge, building the au
- BlogMCP's 2026-07-28 spec hardens OAuth and adds enterprise-managed authorization
RFC 9207 issuer validation is now mandatory, dynamic client registration is deprecated in favour of client ID metadata documents, and an enterprise extension le
- BreachMidnight Blizzard vs Microsoft: a legacy test account and an over-permissioned OAuth app
How a Russia-linked group reached Microsoft corporate email by password-spraying a forgotten test tenant and abusing OAuth application permissions, a lesson in