SlideShare a Scribd company logo
@sambego
A Non-Dystopian
Look at Modern
Authentication
Devops Days Tel Aviv
@sambego
Sam Bellen
Developer Evangelist at Auth0
@sambego
@sambego
Authentication used
to be easy*
*Not really
@sambego
Requesting a webpage
@sambego
@sambego
@sambego
@sambego
Authenticating
@sambego
@sambego
{ username / password }
@sambego
{ username / password }
{ sid 123 }
@sambego
Requesting a page while
authenticated
@sambego
@sambego
{ sid 123 }
@sambego
{ HTML }
{ sid 123 }
@sambego
Modern authentication
is complex
@sambego
Grant types
@sambego
Auth flows
@sambego
Platforms
@sambego
4 types of authentication
@sambego
Web
@sambego
API
@sambego
SPA
@sambego
Native
@sambego
OAuth 2.0
@sambego
An open standard for access delegation,
commonly used as a way for Internet users
to grant websites or applications access to
their information on other websites but
without giving them the passwords.
OAuth 2.0
@sambego
An open standard for access delegation,
commonly used as a way for Internet users
to grant websites or applications access to
their information on other websites but
without giving them the passwords.
OAuth 2.0
@sambego
OAuth 2.0 Roles
@sambego
Resource owner
The entity that can grant access to a protected resource.
Typically this is the end-user.
@sambego
Resource server
The server hosting the protected resources. This is the API
you want to access.
@sambego
Client
The app requesting access to a protected resource on behalf
of the resource owner.
@sambego
Authorization server
The server that authenticates the resource owner,
and issues tokens.
@sambego
OAuth 2.0 Endpoints
@sambego
Authorization
Used to interact with the resource owner
and get the authorization to access the
protected resource.
@sambego
Token
Used by the application in order to get an
Access Token or a Refresh Token.
(Not used in Implicit Flow)
@sambego
Authorization code
vs
Access token
@sambego
Authorization code
vs
Access token
vs
Refresh token
@sambego
Authorization code
vs
Access token
vs
Refresh token
vs
ID token
@sambego
Authorization code
An opaque string, meant to be exchanged
with an Access Token at the token
endpoint.
@sambego
Acces token
An opaque string or JWT that denotes
who has authorized which permissions
(scopes) to which application.
@sambego
Refresh token
A special kind of token containing the
information required to obtain a new
Access token or ID token.
@sambego
ID Token
A JWT that contains user profile
information (name, email, etc.),
represented in the form of claims.
@sambego
OAuth 2.0 Flows
@sambego
Authorization Code
@sambego
Authorization Code with
Proof Key for Code Exchange
(PKCE)
@sambego
Implicit
@sambego
Client Credentials
@sambego
Authorization code flow
Web Application
Traditional
@sambego
Baseline
@sambego
@sambego
@sambego
{ HTML }
@sambego
Authentication
@sambego
@sambego
@sambego
/callback?code={123}
@sambego
/callback?code={123}
@sambego
/callback?code={123}
@sambego
/callback?code={123}
{tokens
}
@sambego
{ sid 123 }
/callback?code={123}
{tokens
}
@sambego
Authenticated
@sambego
@sambego
@sambego
{ HTML }
@sambego
User changes
@sambego
@sambego
@sambego
{change
passw
ord
}
@sambego
{ok
}
{change
passw
ord
}
@sambego
{ success }
{ok
}
{change
passw
ord
}
@sambego
Client credentials grant flow
Backend
API
@sambego
Baseline
@sambego
@sambego
{ JSON }
@sambego
{ JSON }
{ JSON }
@sambego
Authentication
@sambego
@sambego
@sambego
@sambego
Authenticated
@sambego
@sambego
{ JSON }
@sambego
{ JSON }
{ JSON }
@sambego
Refresh token
@sambego
@sambego
@sambego
@sambego
Getting a new access token
@sambego
@sambego
@sambego
@sambego
{ JSON }
@sambego
{ JSON }
{ JSON }
@sambego
Implicit grant flow
Single Page Application
SPA
@sambego
Baseline
@sambego
@sambego
@sambego
{ JSON }
@sambego
Authentication
@sambego
@sambego
@sambego
@sambego
Authenticated
@sambego
@sambego
{ JSON }
@sambego
{ JSON }
{ JSON }
@sambego
Silent authentication
@sambego
@sambego
@sambego
@sambego
@sambego
@sambego
{ JSON }
@sambego
{ JSON }
{ JSON }
@sambego
Next visit
@sambego
@sambego
ifram
e
@sambego
ifram
e
@sambego
ifram
e
@sambego
{ JSON }
ifram
e
@sambego
{ JSON }
{ JSON }
ifram
e
@sambego
Authorization Code with PKCE grant flow
Mobile, desktop
Native
@sambego
Baseline
@sambego
@sambego
@sambego
{ JSON }
@sambego
Authentication
@sambego
@sambego
{code_challenge
}
@sambego
code={123}
{code_challenge
}
@sambego
@sambego
{code={123}code_verifier}
@sambego
{code={123}code_verifier}
@sambego
{code={123}code_verifier}
@sambego
Authenticated
@sambego
@sambego
{ JSON }
@sambego
{ JSON }
{ JSON }
@sambego
Summary
@sambego
Summary
Modern authentication is complex.
@sambego
Summary
Modern authentication is complex.
OAuth 2.0 offers solutions / flows for most
use cases.
@sambego
Summary
Modern authentication is complex.
OAuth 2.0 offers solutions / flows for most
use cases.
@sambego
Summary
Modern authentication is complex.
OAuth 2.0 offers solutions / flows for most
use cases.
Implementing OAuth 2.0 can provide a
competitive advantage.
@sambego
Resources
OAuth 2.0 Official Website
https://oauth.net/2/
OAuth 2.0 Complete Guide
http://bit.ly/oauth-complete
OAuth 2.0 Scopes
http://bit.ly/oauth-scopes
@sambego
Thanks!
http://bit.ly/modern-auth-tel-aviv

More Related Content

PPTX
Papers Please! A Non-Dystopian Look at Modern Authentication - Sam Bellen - D...
PPTX
Mobile web with jQuery Mobile
PPT
Vb.Net Web Forms
PPTX
Building a Personal Assistant App SMX November 2019
PPTX
Php Form
PDF
Demystifying OAuth 2.0
PPTX
Intro to OAuth2 and OpenID Connect
PDF
Full stack security
Papers Please! A Non-Dystopian Look at Modern Authentication - Sam Bellen - D...
Mobile web with jQuery Mobile
Vb.Net Web Forms
Building a Personal Assistant App SMX November 2019
Php Form
Demystifying OAuth 2.0
Intro to OAuth2 and OpenID Connect
Full stack security

Similar to A non dystopian look at modern authentication - Devops Days Tel Aviv (20)

PPTX
OAuth 2
PDF
Access Management for Cloud and Mobile
PDF
OAuth 2.0 and OpenID Connect
PDF
CIS14: Working with OAuth and OpenID Connect
PPTX
Devteach 2017 OAuth and Open id connect demystified
PDF
JDD2015: Security in the era of modern applications and services - Bolesław D...
PPTX
Ladies Be Architects - Study Group III: OAuth 2.0 (Ep 1)
PDF
OAuth2
PPTX
Y U No OAuth, Using Common Patterns to Secure Your Web Applications
PDF
[4developers2016] - Security in the era of modern applications and services (...
PPTX
Y U No OAuth?!?
PDF
OAuth 2.0 Misconceptions
PPTX
Wso2 is integration with .net core
PPTX
OAuth - Don’t Throw the Baby Out with the Bathwater
PDF
2019 - Nova Code Camp - AuthZ fundamentals with ASP.NET Core
PDF
I Don't Care About Security (And Neither Should You)
PDF
OAuth and why you should use it
PPTX
An introduction to OAuth 2
PDF
RFC6749 et alia 20130504
PDF
Stateless Auth using OAUTH2 & JWT
OAuth 2
Access Management for Cloud and Mobile
OAuth 2.0 and OpenID Connect
CIS14: Working with OAuth and OpenID Connect
Devteach 2017 OAuth and Open id connect demystified
JDD2015: Security in the era of modern applications and services - Bolesław D...
Ladies Be Architects - Study Group III: OAuth 2.0 (Ep 1)
OAuth2
Y U No OAuth, Using Common Patterns to Secure Your Web Applications
[4developers2016] - Security in the era of modern applications and services (...
Y U No OAuth?!?
OAuth 2.0 Misconceptions
Wso2 is integration with .net core
OAuth - Don’t Throw the Baby Out with the Bathwater
2019 - Nova Code Camp - AuthZ fundamentals with ASP.NET Core
I Don't Care About Security (And Neither Should You)
OAuth and why you should use it
An introduction to OAuth 2
RFC6749 et alia 20130504
Stateless Auth using OAUTH2 & JWT
Ad

Recently uploaded (20)

PPTX
artificialintelligenceai1-copy-210604123353.pptx
PPT
Ethics in Information System - Management Information System
PDF
FINAL CALL-6th International Conference on Networks & IOT (NeTIOT 2025)
PDF
Containerization lab dddddddddddddddmanual.pdf
PPTX
Introduction to cybersecurity and digital nettiquette
PDF
Exploring VPS Hosting Trends for SMBs in 2025
PPTX
The-Importance-of-School-Sanitation.pptx
PDF
Introduction to the IoT system, how the IoT system works
PDF
The Evolution of Traditional to New Media .pdf
PPT
FIRE PREVENTION AND CONTROL PLAN- LUS.FM.MQ.OM.UTM.PLN.00014.ppt
PPT
12 Things That Make People Trust a Website Instantly
DOC
Rose毕业证学历认证,利物浦约翰摩尔斯大学毕业证国外本科毕业证
PPTX
E -tech empowerment technologies PowerPoint
PPTX
Cyber Hygine IN organizations in MSME or
PPT
415456121-Jiwratrwecdtwfdsfwgdwedvwe dbwsdjsadca-EVN.ppt
PDF
Slides PDF: The World Game (s) Eco Economic Epochs.pdf
PDF
Session 1 (Week 1)fghjmgfdsfgthyjkhfdsadfghjkhgfdsa
PDF
Alethe Consulting Corporate Profile and Solution Aproach
PPTX
Mathew Digital SEO Checklist Guidlines 2025
PPTX
Reading as a good Form of Recreation
artificialintelligenceai1-copy-210604123353.pptx
Ethics in Information System - Management Information System
FINAL CALL-6th International Conference on Networks & IOT (NeTIOT 2025)
Containerization lab dddddddddddddddmanual.pdf
Introduction to cybersecurity and digital nettiquette
Exploring VPS Hosting Trends for SMBs in 2025
The-Importance-of-School-Sanitation.pptx
Introduction to the IoT system, how the IoT system works
The Evolution of Traditional to New Media .pdf
FIRE PREVENTION AND CONTROL PLAN- LUS.FM.MQ.OM.UTM.PLN.00014.ppt
12 Things That Make People Trust a Website Instantly
Rose毕业证学历认证,利物浦约翰摩尔斯大学毕业证国外本科毕业证
E -tech empowerment technologies PowerPoint
Cyber Hygine IN organizations in MSME or
415456121-Jiwratrwecdtwfdsfwgdwedvwe dbwsdjsadca-EVN.ppt
Slides PDF: The World Game (s) Eco Economic Epochs.pdf
Session 1 (Week 1)fghjmgfdsfgthyjkhfdsadfghjkhgfdsa
Alethe Consulting Corporate Profile and Solution Aproach
Mathew Digital SEO Checklist Guidlines 2025
Reading as a good Form of Recreation
Ad

A non dystopian look at modern authentication - Devops Days Tel Aviv