OpenID Connect & OAuth 2.0 – Security Best Practices
summary
OAuth must drop risky flows: disable implicit & password grants and prefer authorization code + PKCE for all interactive clients. Require exact redirect URI matching and ban open redirects and third‑party code on callback pages; use state correlated to a signed cookie to prevent mix‑up attacks. For machine clients use sender‑constrained secrets (mutual TLS or signed client assertions). Treat browser tokens cautiously: consider same‑site cookies, short lifetimes, refresh‑token rotation, and adopt pushed authorization requests (PAR) where possible.
AI-written summary · about
chapters (28)
- 0:00Intro
- 4:06Some Context...
- 9:16Simplified
- 9:56Attack Model (1)
- 14:40Implicit Flow Request
- 15:06Implicit Flow Response
- 16:22No more Password Grant
- 17:49Grand Unification
- 18:34Machine to Machine
- 18:57Client Authentication
- 21:09Sender Constrained Access Tokens w/ MTLS
- 24:47Interactive Applications
- 26:36Redirect URI Validation Attacks
- 29:19Credential Leakage via Referrer Headers
- 29:58Authorization Code Injection
- 30:58Mitigation: Proof key for Code Exchange
- 33:09Countermeasures Summary
- 33:59Mix Up Attack (Variant 1)
- 38:46How does ASP.NET Core prevent Mix Up Attacks?
- 40:35Public Clients
- 41:49Anti Pattern: Native Login Dialogs
- 43:33Using a browser with Code Flow + PKCE
- 44:03Different Approaches
- 48:05Anti-Forgery Protection
- 51:58Refresh Token Storage in Browsers
- 53:01What's next?
- 55:18JWT Secured Authorization Requests (JAR)
- 56:17Pushed Authorization Requests (1)
related talks
53mOpenID Connect & OAuth 2.0 – Security Best Practices
01h 02mOpenID Connect & OAuth 2.0 – Security Best Practices
01h 05mCommon mistakes and misconceptions in Web App Security using OAuth 2.0 and OpenId Connect
01h 02mBuilding Clients for OpenID Connect/OAuth 2-based Systems
47mIntroduction to OAuth 2.0 and OpenID Connect
54mOAuth – the good Parts
46mOAuth2/OIDC best practices conjugated in present, past simple and future
58mOAUTH, OPENID CONNECT & .NET – THE GOOD PARTS
