SlideShare a Scribd company logo
The Many
Layers Of OAuth
Danger Casey
API Problem Solver, GTM Guy, General Nuisance
danger@ngrok.com
May 2023
© ngrok. All rights reserved. Confidential Information of ngrok
01 Intro
02 OAuth Vocabulary
03 The Grant Types
04 Which one when?
05 The fun pain truth lies multitude of specs
06 Closing / Q&A
Agenda
01
Who am I?
© ngrok. All rights reserved. Confidential Information of ngrok
Who am I?
© ngrok. All rights reserved. Confidential Information of ngrok
Who am I?
https://www.youtube.com/@geekamongthetrees
02
OAuth Vocab
© ngrok. All rights reserved. Confidential Information of ngrok
© ngrok. All rights reserved. Confidential Information of ngrok
What is OAuth 2.0?
It’s unrelated to OAuth 1.0
© ngrok. All rights reserved. Confidential Information of ngrok
© ngrok. All rights reserved. Confidential Information of ngrok
What is OpenID Connect (OIDC)?
It’s unrelated to OpenID
© ngrok. All rights reserved. Confidential Information of ngrok
© ngrok. All rights reserved. Confidential Information of ngrok
Which is better: OAuth or OpenID Connect?
Trick question: OIDC is part of OAuth
© ngrok. All rights reserved. Confidential Information of ngrok
© ngrok. All rights reserved. Confidential Information of ngrok
Authentication
- vs -
Authorization
ITB_2023_The_Many_Layers_of_OAuth_Keith_Casey_.pdf
© ngrok. All rights reserved. Confidential Information of ngrok
- Resource Owner is you
- Grant Type (aka Flow) describes the use case
- Tokens represents the authorization, user or state
- Authorization Server (aka Auth Server) creates the tokens
- Scopes are the permissions you request from the Auth Server
- Claims are the fields & data returned from the Auth Server
- Resource Server is where you use the auth and id tokens
Key OAuth Terms
© ngrok. All rights reserved. Confidential Information of ngrok
- Resource Owner is you
- Grant Type how you get the tokens
- Tokens are the tokens
- Authorization Server creates the tokens
- Scopes how you request stuff in the token
- Claims the stuff in the token
- Resource Server where you use the token
Key OAuth Terms (simplified)
© ngrok. All rights reserved. Confidential Information of ngrok
Hotel Key Cards but for Apps
03
Grant Types
© ngrok. All rights reserved. Confidential Information of ngrok
- Authorization Code Flow
- Implicit Flow
- Resource Owner Password Flow
- Client Credentials Flow
Grant Types (aka OAuth flows)
© ngrok. All rights reserved. Confidential Information of ngrok
Authorization Code Flow
User Auth
Client Auth
© ngrok. All rights reserved. Confidential Information of ngrok
Implicit Flow
User Auth
No Client Auth!
© ngrok. All rights reserved. Confidential Information of ngrok
Resource Owner Password Flow
User Auth
No Client Auth!
Wait. What does that mean!?
The app has your creds!
© ngrok. All rights reserved. Confidential Information of ngrok
Client Credential Flow
Client Auth
No User Auth!?
04
Which should I use?
© ngrok. All rights reserved. Confidential Information of ngrok
Which do I use?
Wait. Where did
that come from?
© ngrok. All rights reserved. Confidential Information of ngrok
- Authorization Code Flow
- Implicit Flow
- Resource Owner Password Flow
- Client Credentials Flow
Grant Types (aka OAuth flows)
© ngrok. All rights reserved. Confidential Information of ngrok
- Authorization Code Flow
- Implicit Flow
- Resource Owner Password Flow
- Client Credentials Flow
Extensions
- Authorization Code Flow with PKCE
- SAML 2.0 Assertion Flow
- Device Grant Type
- Okta: Interaction Grant Type
Grant Types (aka OAuth flows)
© ngrok. All rights reserved. Confidential Information of ngrok
Authorization Code Flow with PKCE (RFC 7636)
User Auth
Client Auth
© ngrok. All rights reserved. Confidential Information of ngrok
SAML 2.0 Assertion Flow
Client Auth
No User Auth!?
© ngrok. All rights reserved. Confidential Information of ngrok
Which do I use?
© ngrok. All rights reserved. Confidential Information of ngrok
- Authorization Code Flow
- Implicit Flow - deprecated in favor of Auth Code+PKCE
- Resource Owner Password Flow - not recommended
- Client Credentials Flow
Extensions
- Authorization Code Flow with PKCE
- SAML 2.0 Assertion Flow
- Device Flow
- Okta: Interaction Grant Type
Grant Types (aka OAuth flows)
Specifications
05
© ngrok. All rights reserved. Confidential Information of ngrok
OAuth (RFC 6749)
© ngrok. All rights reserved. Confidential Information of ngrok
© ngrok. All rights reserved. Confidential Information of ngrok
Notice:
NOT authentication
© ngrok. All rights reserved. Confidential Information of ngrok
What about those tokens?
© ngrok. All rights reserved. Confidential Information of ngrok
© ngrok. All rights reserved. Confidential Information of ngrok
JWTs to the Rescue!
(JSON Web Tokens)
© ngrok. All rights reserved. Confidential Information of ngrok
© ngrok. All rights reserved. Confidential Information of ngrok
Ha.
You wish.
© ngrok. All rights reserved. Confidential Information of ngrok
JSON Web Token (RFC 7519)
© ngrok. All rights reserved. Confidential Information of ngrok
JSON Web Token (RFC 7519)
© ngrok. All rights reserved. Confidential Information of ngrok
JSON Web Token (RFC 7519)
© ngrok. All rights reserved. Confidential Information of ngrok
JSON Web Token (RFC 7519)
© ngrok. All rights reserved. Confidential Information of ngrok
© ngrok. All rights reserved. Confidential Information of ngrok
So then what do we do?
© ngrok. All rights reserved. Confidential Information of ngrok
© ngrok. All rights reserved. Confidential Information of ngrok
OpenID Connect FTW
© ngrok. All rights reserved. Confidential Information of ngrok
OpenID Connect
© ngrok. All rights reserved. Confidential Information of ngrok
OIDC: Opinionated Structure
● openid
● profile
● email
● address
● phone
● name
● given_name
● email
● street_address
● phone_number
And many more..
© ngrok. All rights reserved. Confidential Information of ngrok
● RFC 6749 OAuth Core
● RFC 7519 JSON Web Token
● RFC 7662 Token Introspection
● RFC 7009 Token Revocation
● OpenID Connect Specification
● RFC 8414 Authorization Server Metadata Discovery
More Pieces!
© ngrok. All rights reserved. Confidential Information of ngrok
● RFC 6749 OAuth Core
● RFC 7519 JSON Web Token
● RFC 7662 Token Introspection
● RFC 7009 Token Revocation
● OpenID Connect Specification
● RFC 8414 Authorization Server Metadata Discovery
More Pieces!
The second most
important RFC of all
06
Closing Thoughts
© ngrok. All rights reserved. Confidential Information of ngrok
© ngrok. All rights reserved. Confidential Information of ngrok
“We support OAuth”
is a meaningless statement
© ngrok. All rights reserved. Confidential Information of ngrok
© ngrok. All rights reserved. Confidential Information of ngrok
“We support OpenID Connect”
is useful (for SSO)
© ngrok. All rights reserved. Confidential Information of ngrok
© ngrok. All rights reserved. Confidential Information of ngrok
Figure out which combo of
specs you need & they have
*RFC 8414 is your best friend
© ngrok. All rights reserved. Confidential Information of ngrok
01 Intro
02 OAuth Vocabulary
03 The Grant Types
04 Which one when?
05 The fun pain truth lies multitude of specs
06 Closing / Q&A
Recap
Thank you
The Many
Layers Of OAuth
Danger Casey
API Problem Solver, GTM Guy, General Nuisance
danger@ngrok.com
May 2023

More Related Content

PDF
OAuth and why you should use it
PPTX
An Authentication and Authorization Architecture for a Microservices World
PDF
ForgeRock Open banking - Meetup 28/06/2018
PPTX
Standard Based API Security, Access Control and AI Based Attack - API Days Pa...
PDF
CIS13: Bootcamp: Ping Identity OAuth and OpenID Connect In Action with PingFe...
PDF
CIS13: Introduction to OAuth 2.0
PDF
The OpenID Connect Protocol
PDF
Stateless authentication for microservices - Spring I/O 2015
OAuth and why you should use it
An Authentication and Authorization Architecture for a Microservices World
ForgeRock Open banking - Meetup 28/06/2018
Standard Based API Security, Access Control and AI Based Attack - API Days Pa...
CIS13: Bootcamp: Ping Identity OAuth and OpenID Connect In Action with PingFe...
CIS13: Introduction to OAuth 2.0
The OpenID Connect Protocol
Stateless authentication for microservices - Spring I/O 2015

Similar to ITB_2023_The_Many_Layers_of_OAuth_Keith_Casey_.pdf (20)

PDF
De la bonne utilisation de OAuth2
PDF
Introduction to SAML & OIDC
PDF
Consideration on Holder-of-Key Bound Token < from Financial-grade API (FAPI) ...
PDF
Stateless authentication for microservices - Greach 2015
PDF
Open APIs - Risks and Rewards (Øredev 2013)
PDF
Stateless authentication for microservices - GR8Conf 2015
PDF
OAuth FTW
PDF
How OAuth and portable data can revolutionize your web app - Chris Messina
PDF
Auth proxy pattern on Kubernetes
PDF
Secure your APIs using OAuth 2 and OpenID Connect
PDF
[WSO2 API Manager Community Call] Mastering JWTs with WSO2 API Manager
 
PDF
Comment ça marche: OpenID Connect fournisseur d’identitĂ© universel de Google ...
PDF
Distributed Authorization with Open Policy Agent.pdf
PPTX
Configuring Single Sign-On (SSO) via Identity Management | MuleSoft Mysore Me...
PDF
apidays Helsinki & North 2023 - API authorization with Open Policy Agent, And...
PDF
Deep dive into the Open Banking payments flows
PDF
Who’s Knocking? Identity for APIs, Web and Mobile
PPTX
Leveraging open banking specifications for rigorous API security – What’s in...
PDF
CIS 2015 Extreme OpenID Connect - John Bradley
PPTX
OAuth2 Authorization Server Under the Hood
De la bonne utilisation de OAuth2
Introduction to SAML & OIDC
Consideration on Holder-of-Key Bound Token < from Financial-grade API (FAPI) ...
Stateless authentication for microservices - Greach 2015
Open APIs - Risks and Rewards (Øredev 2013)
Stateless authentication for microservices - GR8Conf 2015
OAuth FTW
How OAuth and portable data can revolutionize your web app - Chris Messina
Auth proxy pattern on Kubernetes
Secure your APIs using OAuth 2 and OpenID Connect
[WSO2 API Manager Community Call] Mastering JWTs with WSO2 API Manager
 
Comment ça marche: OpenID Connect fournisseur d’identitĂ© universel de Google ...
Distributed Authorization with Open Policy Agent.pdf
Configuring Single Sign-On (SSO) via Identity Management | MuleSoft Mysore Me...
apidays Helsinki & North 2023 - API authorization with Open Policy Agent, And...
Deep dive into the Open Banking payments flows
Who’s Knocking? Identity for APIs, Web and Mobile
Leveraging open banking specifications for rigorous API security – What’s in...
CIS 2015 Extreme OpenID Connect - John Bradley
OAuth2 Authorization Server Under the Hood

More from Ortus Solutions, Corp (20)

PDF
TheFutureIsDynamic-BoxLang witch Luis Majano.pdf
PDF
June Webinar: BoxLang-Dynamic-AWS-Lambda
PDF
BoxLang-Dynamic-AWS-Lambda by Luis Majano.pdf
PDF
What's-New-with-BoxLang-Brad Wood.pptx.pdf
PDF
Getting Started with BoxLang - CFCamp 2025.pdf
PDF
CFCamp2025 - Keynote Day 1 led by Luis Majano.pdf
PDF
What's New with BoxLang Led by Brad Wood.pdf
PDF
Vector Databases and the BoxLangCFML Developer.pdf
PDF
Using cbSSO in a ColdBox App Led by Jacob Beers.pdf
PDF
Use JSON to Slash Your Database Performance.pdf
PDF
Portable CI wGitLab and Github led by Gavin Pickin.pdf
PDF
Tame the Mesh An intro to cross-platform tracing and troubleshooting.pdf
PDF
Supercharging CommandBox with Let's Encrypt.pdf
PDF
Spice up your site with cool animations using GSAP..pdf
PDF
Passkeys and cbSecurity Led by Eric Peterson.pdf
PDF
Legacy Code Nightmares , Hellscapes, and Lessons Learned.pdf
PDF
Integrating the OpenAI API in Your Coldfusion Apps.pdf
PDF
Hidden Gems in FusionReactor for BoxLang, ACF, and Lucee Users.pdf
PDF
Geting-started with BoxLang Led By Raymon Camden.pdf
PDF
From Zero to CRUD with ORM - Led by Annette Liskey.pdf
TheFutureIsDynamic-BoxLang witch Luis Majano.pdf
June Webinar: BoxLang-Dynamic-AWS-Lambda
BoxLang-Dynamic-AWS-Lambda by Luis Majano.pdf
What's-New-with-BoxLang-Brad Wood.pptx.pdf
Getting Started with BoxLang - CFCamp 2025.pdf
CFCamp2025 - Keynote Day 1 led by Luis Majano.pdf
What's New with BoxLang Led by Brad Wood.pdf
Vector Databases and the BoxLangCFML Developer.pdf
Using cbSSO in a ColdBox App Led by Jacob Beers.pdf
Use JSON to Slash Your Database Performance.pdf
Portable CI wGitLab and Github led by Gavin Pickin.pdf
Tame the Mesh An intro to cross-platform tracing and troubleshooting.pdf
Supercharging CommandBox with Let's Encrypt.pdf
Spice up your site with cool animations using GSAP..pdf
Passkeys and cbSecurity Led by Eric Peterson.pdf
Legacy Code Nightmares , Hellscapes, and Lessons Learned.pdf
Integrating the OpenAI API in Your Coldfusion Apps.pdf
Hidden Gems in FusionReactor for BoxLang, ACF, and Lucee Users.pdf
Geting-started with BoxLang Led By Raymon Camden.pdf
From Zero to CRUD with ORM - Led by Annette Liskey.pdf

Recently uploaded (20)

PPTX
CHAPTER 2 - PM Management and IT Context
PDF
medical staffing services at VALiNTRY
PPTX
Transform Your Business with a Software ERP System
PPTX
history of c programming in notes for students .pptx
PDF
Odoo Companies in India – Driving Business Transformation.pdf
PPTX
assetexplorer- product-overview - presentation
PDF
EN-Survey-Report-SAP-LeanIX-EA-Insights-2025.pdf
PDF
PTS Company Brochure 2025 (1).pdf.......
PDF
Digital Systems & Binary Numbers (comprehensive )
PDF
wealthsignaloriginal-com-DS-text-... (1).pdf
PDF
T3DD25 TYPO3 Content Blocks - Deep Dive by André Kraus
PPTX
Embracing Complexity in Serverless! GOTO Serverless Bengaluru
PDF
Addressing The Cult of Project Management Tools-Why Disconnected Work is Hold...
PDF
Understanding Forklifts - TECH EHS Solution
PDF
SAP S4 Hana Brochure 3 (PTS SYSTEMS AND SOLUTIONS)
PDF
top salesforce developer skills in 2025.pdf
PDF
Adobe Premiere Pro 2025 (v24.5.0.057) Crack free
PDF
Why TechBuilder is the Future of Pickup and Delivery App Development (1).pdf
PDF
Designing Intelligence for the Shop Floor.pdf
PDF
Digital Strategies for Manufacturing Companies
CHAPTER 2 - PM Management and IT Context
medical staffing services at VALiNTRY
Transform Your Business with a Software ERP System
history of c programming in notes for students .pptx
Odoo Companies in India – Driving Business Transformation.pdf
assetexplorer- product-overview - presentation
EN-Survey-Report-SAP-LeanIX-EA-Insights-2025.pdf
PTS Company Brochure 2025 (1).pdf.......
Digital Systems & Binary Numbers (comprehensive )
wealthsignaloriginal-com-DS-text-... (1).pdf
T3DD25 TYPO3 Content Blocks - Deep Dive by André Kraus
Embracing Complexity in Serverless! GOTO Serverless Bengaluru
Addressing The Cult of Project Management Tools-Why Disconnected Work is Hold...
Understanding Forklifts - TECH EHS Solution
SAP S4 Hana Brochure 3 (PTS SYSTEMS AND SOLUTIONS)
top salesforce developer skills in 2025.pdf
Adobe Premiere Pro 2025 (v24.5.0.057) Crack free
Why TechBuilder is the Future of Pickup and Delivery App Development (1).pdf
Designing Intelligence for the Shop Floor.pdf
Digital Strategies for Manufacturing Companies

ITB_2023_The_Many_Layers_of_OAuth_Keith_Casey_.pdf

  • 1. The Many Layers Of OAuth Danger Casey API Problem Solver, GTM Guy, General Nuisance danger@ngrok.com May 2023
  • 2. © ngrok. All rights reserved. Confidential Information of ngrok 01 Intro 02 OAuth Vocabulary 03 The Grant Types 04 Which one when? 05 The fun pain truth lies multitude of specs 06 Closing / Q&A Agenda
  • 4. © ngrok. All rights reserved. Confidential Information of ngrok Who am I?
  • 5. © ngrok. All rights reserved. Confidential Information of ngrok Who am I? https://www.youtube.com/@geekamongthetrees
  • 7. © ngrok. All rights reserved. Confidential Information of ngrok © ngrok. All rights reserved. Confidential Information of ngrok What is OAuth 2.0? It’s unrelated to OAuth 1.0
  • 8. © ngrok. All rights reserved. Confidential Information of ngrok © ngrok. All rights reserved. Confidential Information of ngrok What is OpenID Connect (OIDC)? It’s unrelated to OpenID
  • 9. © ngrok. All rights reserved. Confidential Information of ngrok © ngrok. All rights reserved. Confidential Information of ngrok Which is better: OAuth or OpenID Connect? Trick question: OIDC is part of OAuth
  • 10. © ngrok. All rights reserved. Confidential Information of ngrok © ngrok. All rights reserved. Confidential Information of ngrok Authentication - vs - Authorization
  • 12. © ngrok. All rights reserved. Confidential Information of ngrok - Resource Owner is you - Grant Type (aka Flow) describes the use case - Tokens represents the authorization, user or state - Authorization Server (aka Auth Server) creates the tokens - Scopes are the permissions you request from the Auth Server - Claims are the fields & data returned from the Auth Server - Resource Server is where you use the auth and id tokens Key OAuth Terms
  • 13. © ngrok. All rights reserved. Confidential Information of ngrok - Resource Owner is you - Grant Type how you get the tokens - Tokens are the tokens - Authorization Server creates the tokens - Scopes how you request stuff in the token - Claims the stuff in the token - Resource Server where you use the token Key OAuth Terms (simplified)
  • 14. © ngrok. All rights reserved. Confidential Information of ngrok Hotel Key Cards but for Apps
  • 16. © ngrok. All rights reserved. Confidential Information of ngrok - Authorization Code Flow - Implicit Flow - Resource Owner Password Flow - Client Credentials Flow Grant Types (aka OAuth flows)
  • 17. © ngrok. All rights reserved. Confidential Information of ngrok Authorization Code Flow User Auth Client Auth
  • 18. © ngrok. All rights reserved. Confidential Information of ngrok Implicit Flow User Auth No Client Auth!
  • 19. © ngrok. All rights reserved. Confidential Information of ngrok Resource Owner Password Flow User Auth No Client Auth! Wait. What does that mean!? The app has your creds!
  • 20. © ngrok. All rights reserved. Confidential Information of ngrok Client Credential Flow Client Auth No User Auth!?
  • 22. © ngrok. All rights reserved. Confidential Information of ngrok Which do I use? Wait. Where did that come from?
  • 23. © ngrok. All rights reserved. Confidential Information of ngrok - Authorization Code Flow - Implicit Flow - Resource Owner Password Flow - Client Credentials Flow Grant Types (aka OAuth flows)
  • 24. © ngrok. All rights reserved. Confidential Information of ngrok - Authorization Code Flow - Implicit Flow - Resource Owner Password Flow - Client Credentials Flow Extensions - Authorization Code Flow with PKCE - SAML 2.0 Assertion Flow - Device Grant Type - Okta: Interaction Grant Type Grant Types (aka OAuth flows)
  • 25. © ngrok. All rights reserved. Confidential Information of ngrok Authorization Code Flow with PKCE (RFC 7636) User Auth Client Auth
  • 26. © ngrok. All rights reserved. Confidential Information of ngrok SAML 2.0 Assertion Flow Client Auth No User Auth!?
  • 27. © ngrok. All rights reserved. Confidential Information of ngrok Which do I use?
  • 28. © ngrok. All rights reserved. Confidential Information of ngrok - Authorization Code Flow - Implicit Flow - deprecated in favor of Auth Code+PKCE - Resource Owner Password Flow - not recommended - Client Credentials Flow Extensions - Authorization Code Flow with PKCE - SAML 2.0 Assertion Flow - Device Flow - Okta: Interaction Grant Type Grant Types (aka OAuth flows)
  • 30. © ngrok. All rights reserved. Confidential Information of ngrok OAuth (RFC 6749)
  • 31. © ngrok. All rights reserved. Confidential Information of ngrok © ngrok. All rights reserved. Confidential Information of ngrok Notice: NOT authentication
  • 32. © ngrok. All rights reserved. Confidential Information of ngrok What about those tokens?
  • 33. © ngrok. All rights reserved. Confidential Information of ngrok © ngrok. All rights reserved. Confidential Information of ngrok JWTs to the Rescue! (JSON Web Tokens)
  • 34. © ngrok. All rights reserved. Confidential Information of ngrok © ngrok. All rights reserved. Confidential Information of ngrok Ha. You wish.
  • 35. © ngrok. All rights reserved. Confidential Information of ngrok JSON Web Token (RFC 7519)
  • 36. © ngrok. All rights reserved. Confidential Information of ngrok JSON Web Token (RFC 7519)
  • 37. © ngrok. All rights reserved. Confidential Information of ngrok JSON Web Token (RFC 7519)
  • 38. © ngrok. All rights reserved. Confidential Information of ngrok JSON Web Token (RFC 7519)
  • 39. © ngrok. All rights reserved. Confidential Information of ngrok © ngrok. All rights reserved. Confidential Information of ngrok So then what do we do?
  • 40. © ngrok. All rights reserved. Confidential Information of ngrok © ngrok. All rights reserved. Confidential Information of ngrok OpenID Connect FTW
  • 41. © ngrok. All rights reserved. Confidential Information of ngrok OpenID Connect
  • 42. © ngrok. All rights reserved. Confidential Information of ngrok OIDC: Opinionated Structure ● openid ● profile ● email ● address ● phone ● name ● given_name ● email ● street_address ● phone_number And many more..
  • 43. © ngrok. All rights reserved. Confidential Information of ngrok ● RFC 6749 OAuth Core ● RFC 7519 JSON Web Token ● RFC 7662 Token Introspection ● RFC 7009 Token Revocation ● OpenID Connect Specification ● RFC 8414 Authorization Server Metadata Discovery More Pieces!
  • 44. © ngrok. All rights reserved. Confidential Information of ngrok ● RFC 6749 OAuth Core ● RFC 7519 JSON Web Token ● RFC 7662 Token Introspection ● RFC 7009 Token Revocation ● OpenID Connect Specification ● RFC 8414 Authorization Server Metadata Discovery More Pieces! The second most important RFC of all
  • 46. © ngrok. All rights reserved. Confidential Information of ngrok © ngrok. All rights reserved. Confidential Information of ngrok “We support OAuth” is a meaningless statement
  • 47. © ngrok. All rights reserved. Confidential Information of ngrok © ngrok. All rights reserved. Confidential Information of ngrok “We support OpenID Connect” is useful (for SSO)
  • 48. © ngrok. All rights reserved. Confidential Information of ngrok © ngrok. All rights reserved. Confidential Information of ngrok Figure out which combo of specs you need & they have *RFC 8414 is your best friend
  • 49. © ngrok. All rights reserved. Confidential Information of ngrok 01 Intro 02 OAuth Vocabulary 03 The Grant Types 04 Which one when? 05 The fun pain truth lies multitude of specs 06 Closing / Q&A Recap
  • 51. The Many Layers Of OAuth Danger Casey API Problem Solver, GTM Guy, General Nuisance danger@ngrok.com May 2023