Building Clients for OpenID Connect/OAuth 2-based Systems
summary
Recommends using client credentials for server-to-server calls and code flow with PKCE for native and browser apps, citing OAuth 2 best practices and the IETF/OWIN guidance that deprecates implicit flow. Suggests ASP.NET Core OpenID Connect handler and oidc-client-js support code+PKCE, store refresh tokens in device keychain or DPAPI, and manage token lifetime either proactively (cache with TTL) or reactively (refresh on 401). Warns hybrid flow protects against code substitution with c_hash but can leak identity data over the front channel.
AI-written summary · about
chapters (28)
- 0:00Intro
- 2:49Objectives
- 4:08It's complicated!
- 5:50The Big Picture
- 7:40Client Credentials Flow
- 8:30Use Token
- 11:08Challenges for Clients
- 13:52Front-Channel: Authorization Code Flow Request
- 14:45Front-Channel: Authorization Code Flow Response
- 15:01Back-Channel: Retrieving Tokens
- 16:28Issues with Code Flow
- 18:03Hybrid Flow Request
- 18:30Hybrid Flow Response
- 24:58Issues with Hybrid Flow
- 26:49Public Clients
- 28:45Native/Mobile Applications
- 30:20Anti Pattern: Resource Owner Password Flow
- 33:41Using a browser for driving the authentication workflow
- 42:56Client Libraries
- 43:11Browser-based Clients (aka SPAS)
- 44:34History (2)
- 46:22Implicit Flow Request
- 47:09Problems with Implicit Flow
- 49:04Token Management for JS Apps
- 53:25Java Script Client Library
- 53:56The new kid on the block: Same Site Cookies
- 56:32"BFF" Architecture
- 57:53Further Reading
related talks
57mBuilding Clients for OpenID Connect/OAuth 2-based Systems
01h 00mBuilding Clients for OpenID Connect/OAuth 2-based Systems
01h 01mBuilding Clients for OpenID Connect/OAuth 2-based Systems
01h 02mOpenID Connect & OAuth 2.0 – Security Best Practices
58mOAUTH, OPENID CONNECT & .NET – THE GOOD PARTS
59mOpenID Connect & OAuth 2.0 – Security Best Practices
01h 00mImplementing OpenID Connect and OAuth 2.0 – Tips from the Trenches
58mBuilding JavaScript and mobile/native Clients for Token-based Architectures
