~/talk

Building Clients for OpenID Connect/OAuth 2-based Systems

Talkat NDC London 2019 · 2019-01-30..02-01· [security, web-platform]
slides:none on file

Overview of concrete choices for client types: server apps use client credentials and proactive or reactive token caching; native apps use browser-based login, PKCE/code flow and secure keychain storage with refresh tokens; traditional code flow is vulnerable to code substitution so prefer hybrid flow with c_hash or PKCE; SPAs avoid implicit flow, favor code+PKCE but must harden against XSS via CSP and consider a back-end for front-end (BFF) proxy and same-site cookies for safer token handling.

AI-written summary · about

  1. 0:00Intro
  2. 1:57It's complicated!
  3. 3:03Objectives
  4. 4:06The Big Picture
  5. 6:00Client Credentials Flow
  6. 7:07Use Token
  7. 10:27Challenges for Clients
  8. 11:24User-Centric Clients
  9. 12:53Front-Channel: Authorization Code Flow Request
  10. 13:41Front-Channel: Authorization Code Flow Response
  11. 13:51Back-Channel: Retrieving Tokens
  12. 14:54Issues with Code Flow
  13. 16:15Hybrid Flow Request
  14. 16:42Hybrid Flow Response
  15. 21:32Issues with Hybrid Flow
  16. 23:54Public Clients
  17. 25:59Native/Mobile Applications
  18. 27:34Anti Pattern: Resource Owner Password Flow
  19. 29:36Using a browser for driving the authentication workflow
  20. 35:02Proof-Key for Code Exchange (PKCE)
  21. 36:10Client Libraries
  22. 36:36Browser-based Clients (aka SPAS)
  23. 38:55History (1)
  24. 42:47Problems with Implicit Flow
  25. 43:51Token Management for JS Apps
  26. 49:34Java Script Client Library
  27. 51:53The new kid on the block: SameSite Cookies
  28. 53:49"BFF" Architecture
~/search
type to search 6,249 conferences, 138,987 speakers and 185,172 talks
~/help
cmdctrl k
search every conference, speaker and series
/
focus the filter search
h
home
c
conferences
s
speakers
e
series
t
light / dark — the status bar button does the same
?
this help
esc
close this, then clear every filter — or just the search, while you are typing in it

Ignored while you are typing. Pages without a filter rail have no search to focus.