SlideShare a Scribd company logo
1 of 90
Dasith Wijesiriwardena
A Story of Identity,
Set Amongst The Clouds
About Me
1. Identity & Trust
> Identity, authentication and authorization
> Trust and claims based identity
> Parties involved
> What do they solve?
> Concepts and Acronyms
> Main Flows
3. OAuth and OpenID Connect
2. Tokens
> SAML and JWT
Definitions
Identity: Unique name of a person, device, or
combination of both.
Authentication: Process of verifying that identity.
Authorization: Function of specifying access
rights/privileges to resources.
Definitions
Access Token
An object which represents the right to
perform some operation.
Identity Token
An object that aids in proving the user's
identity and authenticating that user.
Traditional Approach
Credentials
Application
Lookup User Database
User / Browser / UI
Identity Islands
Pet Sitting Service
Rent A Car
Flight Bookings
@#*()!~<+|>
You have been pwned
Breach
Scenario: Renting a Car
Hi. I’m Dilbert. I like to
rent your finest car.
Hi Dilbert. My name is Amy.
Can you please provider a
driver’s license or passport?
Trust
Claims Based Identity
A claim is a statement that one subject, such as a
person or organization, makes about itself or
another subject. The subject making the claim or
claims is the provider.
- Wikipedia.org
Dilbert Adams
Drivers License as an Identity Token
Claims about the Subject
• Name
• Address
• Date of birth
• Photo
Issuer (Identity Provider)
• VicRoads
Validation
• Holographic Logo
• User
• Subject (Sub)
• Resource Owner (RO)
• Relying Party (RP)
• Client
• Audience (Aud)
• Resource
• Identity Provider (IdP)
• Authorization Server (AS)
• Issuing Authority (ISS)
• Token Issuer
• Security Token Service (STS)
• Login Server
So many names… Application
Modern Approach
Identity Provider
Trust
Credentials
Token
Token
Application
User / Browser / UI
Validation
Recap
• Authentication vs Authorization
• Claims based identity
• Parties involved
• Traditional and modern approaches
• Leveraging existing trust relationships
• Terms
• User, Subject, Resource Owner
• Relying Party, Client
• Id Provider, Auth Server, Token Issuer
Passwords
1. Password
2. Password
Access TokensVS
1. Password2. Token
3. Token
If token is a
reference token,
exchange it for
identity claims
from the IdP
4. Ref Token
5. Claims
Security Assertion Markup Language
Open standard for exchanging authentication and authorization data between
parties.
https://en.wikipedia.org/wiki/Security_Assertion_Markup_Language
Anatomy of a SAML Token
Assertion
Anatomy of a SAML Token
Anatomy of a SAML Token
Subject
Anatomy of a SAML Token
Conditions
Anatomy of a SAML Token
Auth Stmnt
Anatomy of a SAML Token
Attributes
JSON Web Tokens
Internet standard for creating JSON-based tokens
Header
Algorithm & Token Type
{
"alg": "HS256",
"typ": "JWT"
}
Payload
Data
{
"sub": "1234567890",
"name": "John Doe",
"iat": 1516239022
}
Signature
Verification
HMACSHA256(
base64UrlEncode(header) + "." +
base64UrlEncode(payload),
Client Secret
)
eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsImtpZCI6IjFMVE16YWtpaGlSbGFfOHoyQkVKVlhlV01xbyJ9.
eyJ2ZXIiOiIyLjAiLCJpc3MiOiJodHRwczovL2xvZ2luLm1pY3Jvc29mdG9ubGluZS5jb20vOTE4ODA0MG
QtNmM2Ny00YzViLWIxMTItMzZhMzA0YjY2ZGFkL3YyLjAiLCJzdWIiOiJBQUFBQUFBQUFBQUFBQUFB
QUFBQUFJa3pxRlZyU2FTYUZIeTc4MmJidGFRIiwiYXVkIjoiNmNiMDQwMTgtYTNmNS00NmE3LWI5O
TUtOTQwYzc4ZjVhZWYzIiwiZXhwIjoxNTM2MzYxNDExLCJpYXQiOjE1MzYyNzQ3MTEsIm5iZiI6MTUz
NjI3NDcxMSwibmFtZSI6IkFiZSBMaW5jb2xuIiwicHJlZmVycmVkX3VzZXJuYW1lIjoiQWJlTGlAbWljcm9
zb2Z0LmNvbSIsIm9pZCI6IjAwMDAwMDAwLTAwMDAtMDAwMC02NmYzLTMzMzJlY2E3ZWE4MSIsI
nRpZCI6IjMzMzgwNDBkLTZjNjctNGM1Yi1iMTEyLTM2YTMwNGI2NmRhZCIsIm5vbmNlIjoiMTIzNTIzIi
wiYWlvIjoiRGYyVVZYTDFpeCFsTUNXTVNPSkJjRmF0emNHZnZGR2hqS3Y4cTVnMHg3MzJkUjVNQjV
CaXN2R1FPN1lXQnlqZDhpUURMcSFlR2JJRGFreXA1bW5PcmNkcUhlWVNubHRlcFFtUnA2QUlaOGp
ZIn0=.
1AFWW-Ck5nROwSlltm7GzZvDwUkqvhSQpm55TQsmVo9Y59cLhRXpvB8n-
55HCr9Z6G_31_UbeUkoz612I2j_Sm9FFShSDDjoaLQr54CreGIJvjtmS3EkK9a7SJBbcpL1MpUtlfygow3
9tFjY7EVNW9plWUvRrTgVk7lYLprvfzw-CIqw3gHC-
T7IK_m_xkr08INERBtaecwhTeN4chPC4W3jdmw_lIxzC48YoQ0dB1L9-
ImX98Egypfrlbm0IBL5spFzL6JDZIRRJOu8vecJvj1mq-IUhGt0MacxX8jdxYLP-
KUu2d9MbNKpCKJuZ7p8gwTL5B7NlUdh_dmSviPWrw
Anatomy of a JWT
eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsImtpZCI6IjFMVE16YWtpaGlSbGFfOHoyQkVKVlhlV01xbyJ9.
eyJ2ZXIiOiIyLjAiLCJpc3MiOiJodHRwczovL2xvZ2luLm1pY3Jvc29mdG9ubGluZS5jb20vOTE4ODA0MG
QtNmM2Ny00YzViLWIxMTItMzZhMzA0YjY2ZGFkL3YyLjAiLCJzdWIiOiJBQUFBQUFBQUFBQUFBQUFB
QUFBQUFJa3pxRlZyU2FTYUZIeTc4MmJidGFRIiwiYXVkIjoiNmNiMDQwMTgtYTNmNS00NmE3LWI5O
TUtOTQwYzc4ZjVhZWYzIiwiZXhwIjoxNTM2MzYxNDExLCJpYXQiOjE1MzYyNzQ3MTEsIm5iZiI6MTUz
NjI3NDcxMSwibmFtZSI6IkFiZSBMaW5jb2xuIiwicHJlZmVycmVkX3VzZXJuYW1lIjoiQWJlTGlAbWljcm9
zb2Z0LmNvbSIsIm9pZCI6IjAwMDAwMDAwLTAwMDAtMDAwMC02NmYzLTMzMzJlY2E3ZWE4MSIsI
nRpZCI6IjMzMzgwNDBkLTZjNjctNGM1Yi1iMTEyLTM2YTMwNGI2NmRhZCIsIm5vbmNlIjoiMTIzNTIzIi
wiYWlvIjoiRGYyVVZYTDFpeCFsTUNXTVNPSkJjRmF0emNHZnZGR2hqS3Y4cTVnMHg3MzJkUjVNQjV
CaXN2R1FPN1lXQnlqZDhpUURMcSFlR2JJRGFreXA1bW5PcmNkcUhlWVNubHRlcFFtUnA2QUlaOGp
ZIn0=.
1AFWW-Ck5nROwSlltm7GzZvDwUkqvhSQpm55TQsmVo9Y59cLhRXpvB8n-
55HCr9Z6G_31_UbeUkoz612I2j_Sm9FFShSDDjoaLQr54CreGIJvjtmS3EkK9a7SJBbcpL1MpUtlfygow3
9tFjY7EVNW9plWUvRrTgVk7lYLprvfzw-CIqw3gHC-
T7IK_m_xkr08INERBtaecwhTeN4chPC4W3jdmw_lIxzC48YoQ0dB1L9-
ImX98Egypfrlbm0IBL5spFzL6JDZIRRJOu8vecJvj1mq-IUhGt0MacxX8jdxYLP-
KUu2d9MbNKpCKJuZ7p8gwTL5B7NlUdh_dmSviPWrw
Header
Anatomy of a JWT
eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsImtpZCI6IjFMVE16YWtpaGlSbGFfOHoyQkVKVlhlV01xbyJ9.
eyJ2ZXIiOiIyLjAiLCJpc3MiOiJodHRwczovL2xvZ2luLm1pY3Jvc29mdG9ubGluZS5jb20vOTE4ODA0MG
QtNmM2Ny00YzViLWIxMTItMzZhMzA0YjY2ZGFkL3YyLjAiLCJzdWIiOiJBQUFBQUFBQUFBQUFBQUFB
QUFBQUFJa3pxRlZyU2FTYUZIeTc4MmJidGFRIiwiYXVkIjoiNmNiMDQwMTgtYTNmNS00NmE3LWI5O
TUtOTQwYzc4ZjVhZWYzIiwiZXhwIjoxNTM2MzYxNDExLCJpYXQiOjE1MzYyNzQ3MTEsIm5iZiI6MTUz
NjI3NDcxMSwibmFtZSI6IkFiZSBMaW5jb2xuIiwicHJlZmVycmVkX3VzZXJuYW1lIjoiQWJlTGlAbWljcm9
zb2Z0LmNvbSIsIm9pZCI6IjAwMDAwMDAwLTAwMDAtMDAwMC02NmYzLTMzMzJlY2E3ZWE4MSIsI
nRpZCI6IjMzMzgwNDBkLTZjNjctNGM1Yi1iMTEyLTM2YTMwNGI2NmRhZCIsIm5vbmNlIjoiMTIzNTIzIi
wiYWlvIjoiRGYyVVZYTDFpeCFsTUNXTVNPSkJjRmF0emNHZnZGR2hqS3Y4cTVnMHg3MzJkUjVNQjV
CaXN2R1FPN1lXQnlqZDhpUURMcSFlR2JJRGFreXA1bW5PcmNkcUhlWVNubHRlcFFtUnA2QUlaOGp
ZIn0=.
1AFWW-Ck5nROwSlltm7GzZvDwUkqvhSQpm55TQsmVo9Y59cLhRXpvB8n-
55HCr9Z6G_31_UbeUkoz612I2j_Sm9FFShSDDjoaLQr54CreGIJvjtmS3EkK9a7SJBbcpL1MpUtlfygow3
9tFjY7EVNW9plWUvRrTgVk7lYLprvfzw-CIqw3gHC-
T7IK_m_xkr08INERBtaecwhTeN4chPC4W3jdmw_lIxzC48YoQ0dB1L9-
ImX98Egypfrlbm0IBL5spFzL6JDZIRRJOu8vecJvj1mq-IUhGt0MacxX8jdxYLP-
KUu2d9MbNKpCKJuZ7p8gwTL5B7NlUdh_dmSviPWrw
Payload
Anatomy of a JWT
eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsImtpZCI6IjFMVE16YWtpaGlSbGFfOHoyQkVKVlhlV01xbyJ9.
eyJ2ZXIiOiIyLjAiLCJpc3MiOiJodHRwczovL2xvZ2luLm1pY3Jvc29mdG9ubGluZS5jb20vOTE4ODA0MG
QtNmM2Ny00YzViLWIxMTItMzZhMzA0YjY2ZGFkL3YyLjAiLCJzdWIiOiJBQUFBQUFBQUFBQUFBQUFB
QUFBQUFJa3pxRlZyU2FTYUZIeTc4MmJidGFRIiwiYXVkIjoiNmNiMDQwMTgtYTNmNS00NmE3LWI5O
TUtOTQwYzc4ZjVhZWYzIiwiZXhwIjoxNTM2MzYxNDExLCJpYXQiOjE1MzYyNzQ3MTEsIm5iZiI6MTUz
NjI3NDcxMSwibmFtZSI6IkFiZSBMaW5jb2xuIiwicHJlZmVycmVkX3VzZXJuYW1lIjoiQWJlTGlAbWljcm9
zb2Z0LmNvbSIsIm9pZCI6IjAwMDAwMDAwLTAwMDAtMDAwMC02NmYzLTMzMzJlY2E3ZWE4MSIsI
nRpZCI6IjMzMzgwNDBkLTZjNjctNGM1Yi1iMTEyLTM2YTMwNGI2NmRhZCIsIm5vbmNlIjoiMTIzNTIzIi
wiYWlvIjoiRGYyVVZYTDFpeCFsTUNXTVNPSkJjRmF0emNHZnZGR2hqS3Y4cTVnMHg3MzJkUjVNQjV
CaXN2R1FPN1lXQnlqZDhpUURMcSFlR2JJRGFreXA1bW5PcmNkcUhlWVNubHRlcFFtUnA2QUlaOGp
ZIn0=.
1AFWW-Ck5nROwSlltm7GzZvDwUkqvhSQpm55TQsmVo9Y59cLhRXpvB8n-
55HCr9Z6G_31_UbeUkoz612I2j_Sm9FFShSDDjoaLQr54CreGIJvjtmS3EkK9a7SJBbcpL1MpUtlfygow3
9tFjY7EVNW9plWUvRrTgVk7lYLprvfzw-CIqw3gHC-
T7IK_m_xkr08INERBtaecwhTeN4chPC4W3jdmw_lIxzC48YoQ0dB1L9-
ImX98Egypfrlbm0IBL5spFzL6JDZIRRJOu8vecJvj1mq-IUhGt0MacxX8jdxYLP-
KUu2d9MbNKpCKJuZ7p8gwTL5B7NlUdh_dmSviPWrw
Anatomy of a JWT
Signature
Sign Function
Constructing a JWT
Header Payload SecretSignature =
Header Payload SignatureJWT =
base64ue base64ue
base64ue base64ue base64ue
Header
Payload
JSON Data=
= JSON Data
Sign Function
Constructing a JWT
Header Payload SecretSignature =
Header Payload SignatureJWT =
base64ue base64ue
base64ue base64ue base64ue
Header
Payload
JSON Data=
= JSON Data
base64ue base64ue
Header Payload
Header Payload
Sign Function
Constructing a JWT
Header Payload SecretSignature =
Header Payload SignatureJWT =
base64ue base64ue
base64ue base64ue base64ue
Header
Payload
JSON Data=
= JSON Data
Header Payload
Sign Function
Constructing a JWT
Header Payload SecretSignature =
Header Payload SignatureJWT =
base64ue base64ue
base64ue base64ue base64ue
Header
Payload
JSON Data=
= JSON Data
JWT
Sign Function
Verifying a JWT
Header Payload SecretSignature =
Header Payload Signature
==
base64ue base64ue
base64ue base64ue base64ue
Signature Signature
Is Valid?
JWT
Sign Function
Verifying a JWT
Header Payload SecretSignature =
Header Payload Signature
==
base64ue base64ue
base64ue base64ue base64ue
Signature Signature
Is Valid?
JWT
Sign Function
Verifying a JWT
Header Payload SecretSignature =
Header Payload Signature
==
base64ue base64ue
base64ue base64ue base64ue
Signature Signature
Is Valid?
JWT
Sign Function
Verifying a JWT
Header Payload SecretSignature =
Header Payload Signature
==
base64ue base64ue
base64ue base64ue base64ue
Signature Signature
Is Valid?
JWT and Drivers License
Dilbert Adams
JWT and Drivers License
Dilbert Adams
JWT and Drivers License
Dilbert Adams
JWT and Drivers License
Dilbert Adams
JWT and Drivers License
Dilbert Adams
JWT and Drivers License
Dilbert Adams
Recap
• Passwords vs Tokens
• Why tokens are preferred
• SAML (Security Assertion Markup Language)
• JWT (JSON Web Token)
• Header, Payload, Signature
• Constructing
• Verifying
OAuth 2.0
OAuth 2.0 is the industry-standard protocol for
authorization. It focuses on client developer simplicity
while providing specific authorization flows for web
applications, desktop applications, mobile phones, and
living room devices.
- OAuth.net
History of OAuth
2007
December
OAuth 1.0
Final Draft
2010
April
Standardized
via IETF
2012
October
OAuth 2.0
Implicit, Auth Code,
Resource Owner, Client
Credentials flows
Today
Device Code, Token
Exchange etc
Limitation of OAuth
• Only specifies a solution to authorization concerns
• No standard way of describing claims
Enter “OpenID Connect”
OpenID Connect
OpenID Connect is an interoperable authentication
protocol based on the OAuth 2.0 family of
specifications. It uses straightforward REST/JSON
message flows.
- OpenID.net
(Identity, Authentication) + OAuth 2.0 = OpenID Connect
OpenID Connect Concepts
Registration
Sign Up
Client / Relying PartySubject Issuer / IdP
 Store ClientId and Secret
 Pick correct flow for public vs
confidential clients
 Construct a HTTP request
 Handle call-back
 Verify token and manage lifetime
 Allow client and user registration
 Discovery endpoint for meta data
“.well-known/openid-
configuration”
 Issuer, signing certificate
public key, supported claims,
scopes etc..
 Implement endpoints for Token,
Authorization and UserInfo
 Register and sign in to the IdP
 Inspect and grant consent to the
requested scopes
OpenID Connect Concepts
Registration
Sign Up
Client / Relying PartySubject Issuer / IdP
 Store ClientId and Secret
 Pick correct flow for public vs
confidential clients
 Construct a HTTP request
 Handle call-back
 Verify token and manage lifetime
 Allow client and user registration
 Discovery endpoint for meta data
“.well-known/openid-
configuration”
 Issuer, signing certificate
public key, supported claims,
scopes etc..
 Implement endpoints for Token,
Authorization and UserInfo
 Register and sign in to the IdP
 Inspect and grant consent to the
requested scopes
OpenID Connect Concepts
Registration
Sign Up
Client / Relying PartySubject Issuer / IdP
 Store ClientId and Secret
 Pick correct flow for public vs
confidential clients
 Construct a HTTP request
 Handle call-back
 Verify token and manage lifetime
 Allow client and user registration
 Discovery endpoint for meta data
“.well-known/openid-
configuration”
 Issuer, signing certificate
public key, supported claims,
scopes etc..
 Implement endpoints for Token,
Authorization and UserInfo
 Register and sign in to the IdP
 Inspect and grant consent to the
requested scopes
OpenID Connect Concepts
Registration
Sign Up
Client / Relying PartySubject Issuer / IdP
 Store ClientId and Secret
 Pick correct flow for public vs
confidential clients
 Construct a HTTP request
 Handle call-back
 Verify token and manage lifetime
 Allow client and user registration
 Discovery endpoint for meta data
“.well-known/openid-
configuration”
 Issuer, signing certificate
public key, supported claims,
scopes etc..
 Implement endpoints for Token,
Authorization and UserInfo
 Register and sign in to the IdP
 Inspect and grant consent to the
requested scopes
OpenID Connect Discovery Endpoint Example
https://login.microsoftonline.com/common/v2.0/.well-known/openid-configuration
OpenID Connect Discovery Endpoint Example
https://login.microsoftonline.com/common/v2.0/.well-known/openid-configuration
OpenID Connect Discovery Endpoint Example
https://login.microsoftonline.com/common/v2.0/.well-known/openid-configuration
OpenID Connect Discovery Endpoint Example
https://login.microsoftonline.com/common/v2.0/.well-known/openid-configuration
OpenID Connect Discovery Endpoint Example
https://login.microsoftonline.com/common/v2.0/.well-known/openid-configuration
Token Types
Key representing access
to a resource. Can be
self contained or a
reference token.
access_token
Contains identity
information in the form
of a (self contained)
JWT.
id_token
A reference token that
can be used to obtain a
new access_token when
the current one is no
longer valid.
refresh_token
A reference token that
can be exchanged for
the access_token.
code (authorization code)
Endpoints
Authorization
Token
Userinfo
Performs the authorization and
returns a supported combination of
access_token, id_token ,
refresh_token, and/or code
Exchanges a reference token (code or
refresh_token) to an access_token,
id_token and/or refresh_token.
Exchange the access_token for a set
of claims about the identity of the
subject.
Application Types
Confidential Clients Public Clients Other
WebApp (running on backend) Single Page Apps (Javascript) Input Constrained Devices
WebApi
Native App Native App
Daemon Apps
Some OAuth 2.0 Flows
• Implicit grant
• Authorization code grant
• Hybrid flow
• Token Exchange (On-behalf-of)
• Client credentials grant
• Device code grant
• Resource owner password grant*
Implicit Grant Flow
https://docs.microsoft.com/en-us/azure/active-directory/develop/v2-oauth2-implicit-grant-flow
Implicit Grant Flow
https://docs.microsoft.com/en-us/azure/active-directory/develop/v2-oauth2-implicit-grant-flow
GET
https://idp.com/authorize?
client_id=my_client_id
&response_type=id_token
&redirect_uri=callback_url
&scope=openid&response_mode=fragment
&state=12345&nonce=678910
Implicit Grant Flow
https://docs.microsoft.com/en-us/azure/active-directory/develop/v2-oauth2-implicit-grant-flow
Implicit Grant Flow
https://docs.microsoft.com/en-us/azure/active-directory/develop/v2-oauth2-implicit-grant-flow
GET
https://localhost/myapp/#
access_token=jwt_here
&token_type=Bearer
&expires_in=3599
&scope=valid_scopes
&id_token=jwt_here
&state=12345
Implicit Grant Flow
https://docs.microsoft.com/en-us/azure/active-directory/develop/v2-oauth2-implicit-grant-flow
Authorization: Bearer access_token
Authorization Code Grant Flow
https://docs.microsoft.com/en-us/azure/active-directory/develop/v2-oauth2-auth-code-flow
Authorization Code Grant Flow
https://docs.microsoft.com/en-us/azure/active-directory/develop/v2-oauth2-auth-code-flow
GET
https://idp.com/authorize?
client_id=my_client_id
&response_type=code
&redirect_uri=callback_url
&scope=openid
&response_mode=query
&state=12345
&nonce=678910
Authorization Code Grant Flow
https://docs.microsoft.com/en-us/azure/active-directory/develop/v2-oauth2-auth-code-flow
Authorization Code Grant Flow
https://docs.microsoft.com/en-us/azure/active-directory/develop/v2-oauth2-auth-code-flow
GET
https://localhost/webapp?
code=reference_token_here
&state=12345
Authorization Code Grant Flow
https://docs.microsoft.com/en-us/azure/active-directory/develop/v2-oauth2-auth-code-flow
GET
https://idp.com/token?
client_id=my_client_id
&client_secret=some_secret
&grant_type=authorization_code
&code=reference_token_here
&redirect_uri=callback_url
Authorization Code Grant Flow
https://docs.microsoft.com/en-us/azure/active-directory/develop/v2-oauth2-auth-code-flow
{
"access_token": jwt_here
"token_type": "Bearer",
"expires_in": 3599,
"scope": consented scopes,
"refresh_token": ref_token
"id_token": jwt_here
}
Authorization Code Grant Flow
https://docs.microsoft.com/en-us/azure/active-directory/develop/v2-oauth2-auth-code-flow
Authorization: Bearer access_token
Hybrid Flow
• Same as the implicit flow
• With additional reference token (authorization code).
• Exchange it for an access token using the token endpoint.
https://YOUR_REDIRECT_URI
/#access_token=opaque_token
&expires_in=7200
&token_type=Bearer
&code=AUTHORIZATION_CODE
&id_token=jwt
Client Credentials Grant Flow
https://docs.microsoft.com/en-us/azure/active-directory/develop/v2-oauth2-client-creds-grant-flow
Credentials
Admin consent
required
Authorization
Server
Dilbert’s
Driving History
Token Exchange Flow
https://docs.microsoft.com/en-us/azure/active-directory/develop/v2-oauth2-on-behalf-of-flow
Authorization
Server
Device Code Grant Flow
https://docs.microsoft.com/en-us/azure/active-directory/develop/v2-oauth2-device-code
Device Code Grant Flow
https://docs.microsoft.com/en-us/azure/active-directory/develop/v2-oauth2-device-code
Device Code Grant Flow
https://docs.microsoft.com/en-us/azure/active-directory/develop/v2-oauth2-device-code
Device Code Grant Flow
https://docs.microsoft.com/en-us/azure/active-directory/develop/v2-oauth2-device-code
Device Code Grant Flow
https://docs.microsoft.com/en-us/azure/active-directory/develop/v2-oauth2-device-code
Device Code Grant Flow
https://docs.microsoft.com/en-us/azure/active-directory/develop/v2-oauth2-device-code
Resource Owner Password Grant Flow
https://docs.microsoft.com/en-us/azure/active-directory/develop/v2-oauth-ropc
Picking the right OAuth flow
Public
Client ?
Native or
SPA ?
Implicit
Auth Code +
PKCE
Has an
active user ?
Client Credentials
Input
Constrained
?
Legacy App
?Resource Owner
Password Cred…
Device Code
Auth Code
Yes
No
No
Yes
No
No
Yes
Yes
SPA Native
Recap
• OAuth
• What it solves
• OpenID Connect
• What it solves
• Concepts
• Endpoints
• Picking an appropriate OAuth flow
Want More?
• Protocol Reference: https://oauth.net
• Starter Kit: https://connect2id.com/learn
• Choosing Flows: https://auth0.com/docs/api-
auth/which-oauth-flow-to-use
• MS Identity Platform (Azure AD) Documentation
• IdentityServer: https://identityserver.io
• Rob Moore & Matt Davies : Modern Auth @ NDC 2016
Thank you!
@dasiths
dasith.me
COFFEE BY WIFI BY CHILDCARE BY

More Related Content

What's hot

Implementing OAuth with PHP
Implementing OAuth with PHPImplementing OAuth with PHP
Implementing OAuth with PHPLorna Mitchell
 
Implementing OAuth
Implementing OAuthImplementing OAuth
Implementing OAuthleahculver
 
OAuth 2.0 – A standard is coming of age by Uwe Friedrichsen
OAuth 2.0 – A standard is coming of age by Uwe FriedrichsenOAuth 2.0 – A standard is coming of age by Uwe Friedrichsen
OAuth 2.0 – A standard is coming of age by Uwe FriedrichsenCodemotion
 
OAuth and why you should use it
OAuth and why you should use itOAuth and why you should use it
OAuth and why you should use itSergey Podgornyy
 
What the Heck is OAuth and Open ID Connect? - UberConf 2017
What the Heck is OAuth and Open ID Connect? - UberConf 2017What the Heck is OAuth and Open ID Connect? - UberConf 2017
What the Heck is OAuth and Open ID Connect? - UberConf 2017Matt Raible
 
JWT Authentication with AngularJS
JWT Authentication with AngularJSJWT Authentication with AngularJS
JWT Authentication with AngularJSrobertjd
 
Digital Identity
Digital IdentityDigital Identity
Digital IdentityZendCon
 
An Introduction to OAuth2
An Introduction to OAuth2An Introduction to OAuth2
An Introduction to OAuth2Aaron Parecki
 
Volume 2-issue-6-2125-2129
Volume 2-issue-6-2125-2129Volume 2-issue-6-2125-2129
Volume 2-issue-6-2125-2129Editor IJARCET
 
What the Heck is OAuth and OIDC - UberConf 2018
What the Heck is OAuth and OIDC - UberConf 2018What the Heck is OAuth and OIDC - UberConf 2018
What the Heck is OAuth and OIDC - UberConf 2018Matt Raible
 

What's hot (15)

Implementing OAuth with PHP
Implementing OAuth with PHPImplementing OAuth with PHP
Implementing OAuth with PHP
 
Implementing OAuth
Implementing OAuthImplementing OAuth
Implementing OAuth
 
OAuth Base Camp
OAuth Base CampOAuth Base Camp
OAuth Base Camp
 
OAuth 2.0 – A standard is coming of age by Uwe Friedrichsen
OAuth 2.0 – A standard is coming of age by Uwe FriedrichsenOAuth 2.0 – A standard is coming of age by Uwe Friedrichsen
OAuth 2.0 – A standard is coming of age by Uwe Friedrichsen
 
OAuth and why you should use it
OAuth and why you should use itOAuth and why you should use it
OAuth and why you should use it
 
Demystifying OAuth 2.0
Demystifying OAuth 2.0Demystifying OAuth 2.0
Demystifying OAuth 2.0
 
What the Heck is OAuth and Open ID Connect? - UberConf 2017
What the Heck is OAuth and Open ID Connect? - UberConf 2017What the Heck is OAuth and Open ID Connect? - UberConf 2017
What the Heck is OAuth and Open ID Connect? - UberConf 2017
 
OAuth 2.0
OAuth 2.0OAuth 2.0
OAuth 2.0
 
JWT Authentication with AngularJS
JWT Authentication with AngularJSJWT Authentication with AngularJS
JWT Authentication with AngularJS
 
Rich Authorization Requests
Rich Authorization RequestsRich Authorization Requests
Rich Authorization Requests
 
Digital Identity
Digital IdentityDigital Identity
Digital Identity
 
An Introduction to OAuth2
An Introduction to OAuth2An Introduction to OAuth2
An Introduction to OAuth2
 
Pushed Authorization Requests
Pushed Authorization RequestsPushed Authorization Requests
Pushed Authorization Requests
 
Volume 2-issue-6-2125-2129
Volume 2-issue-6-2125-2129Volume 2-issue-6-2125-2129
Volume 2-issue-6-2125-2129
 
What the Heck is OAuth and OIDC - UberConf 2018
What the Heck is OAuth and OIDC - UberConf 2018What the Heck is OAuth and OIDC - UberConf 2018
What the Heck is OAuth and OIDC - UberConf 2018
 

Similar to DDD Melbourne 2019 : Modern Authentication 101

REST Service Authetication with TLS & JWTs
REST Service Authetication with TLS & JWTsREST Service Authetication with TLS & JWTs
REST Service Authetication with TLS & JWTsJon Todd
 
Identity, Security and XML Web Services
Identity, Security and XML Web ServicesIdentity, Security and XML Web Services
Identity, Security and XML Web ServicesJorgen Thelin
 
Getting Started With WebAuthn
Getting Started With WebAuthnGetting Started With WebAuthn
Getting Started With WebAuthnFIDO Alliance
 
GPSTEC323-SaaS and OpenID Connect The Secret Sauce Multi-Tenant Identity and ...
GPSTEC323-SaaS and OpenID Connect The Secret Sauce Multi-Tenant Identity and ...GPSTEC323-SaaS and OpenID Connect The Secret Sauce Multi-Tenant Identity and ...
GPSTEC323-SaaS and OpenID Connect The Secret Sauce Multi-Tenant Identity and ...Amazon Web Services
 
api-security-Jan23.pptxsdfffffffffffffffffffffffffffff
api-security-Jan23.pptxsdfffffffffffffffffffffffffffffapi-security-Jan23.pptxsdfffffffffffffffffffffffffffff
api-security-Jan23.pptxsdfffffffffffffffffffffffffffffDucAnhLe56
 
SharePoint, ADFS and Claims Auth
SharePoint, ADFS and Claims AuthSharePoint, ADFS and Claims Auth
SharePoint, ADFS and Claims AuthKashif Imran
 
CIS14: Working with OAuth and OpenID Connect
CIS14: Working with OAuth and OpenID ConnectCIS14: Working with OAuth and OpenID Connect
CIS14: Working with OAuth and OpenID ConnectCloudIDSummit
 
Security and information assurance
Security and information assuranceSecurity and information assurance
Security and information assurancebdemchak
 
Claim Based Authentication in SharePoint 2010 for Community Day 2011
Claim Based Authentication in SharePoint 2010 for Community Day 2011Claim Based Authentication in SharePoint 2010 for Community Day 2011
Claim Based Authentication in SharePoint 2010 for Community Day 2011Joris Poelmans
 
Authentication and Authorization Architecture in the MEAN Stack
Authentication and Authorization Architecture in the MEAN StackAuthentication and Authorization Architecture in the MEAN Stack
Authentication and Authorization Architecture in the MEAN StackFITC
 
What the Heck is OAuth and OpenID Connect? Connect.Tech 2017
What the Heck is OAuth and OpenID Connect? Connect.Tech 2017What the Heck is OAuth and OpenID Connect? Connect.Tech 2017
What the Heck is OAuth and OpenID Connect? Connect.Tech 2017Matt Raible
 
What the Heck is OAuth and OpenID Connect - RWX 2017
What the Heck is OAuth and OpenID Connect - RWX 2017What the Heck is OAuth and OpenID Connect - RWX 2017
What the Heck is OAuth and OpenID Connect - RWX 2017Matt Raible
 
What the Heck is OAuth and OpenID Connect - DOSUG 2018
What the Heck is OAuth and OpenID Connect - DOSUG 2018What the Heck is OAuth and OpenID Connect - DOSUG 2018
What the Heck is OAuth and OpenID Connect - DOSUG 2018Matt Raible
 
Identity Proofing to provision accurately
Identity Proofing to provision accuratelyIdentity Proofing to provision accurately
Identity Proofing to provision accuratelyDavid Kelts, CIPT
 
Making Sense of API Access Control
Making Sense of API Access ControlMaking Sense of API Access Control
Making Sense of API Access ControlCA API Management
 
Single SignOn with Federation using Claims
Single SignOn with Federation using ClaimsSingle SignOn with Federation using Claims
Single SignOn with Federation using ClaimsVolkan Uzun
 
RPで受け入れる認証器を選択する ~Idance lesson 2~
RPで受け入れる認証器を選択する ~Idance lesson 2~RPで受け入れる認証器を選択する ~Idance lesson 2~
RPで受け入れる認証器を選択する ~Idance lesson 2~5 6
 
ID連携入門 (実習編) - Security Camp 2016
ID連携入門 (実習編) - Security Camp 2016ID連携入門 (実習編) - Security Camp 2016
ID連携入門 (実習編) - Security Camp 2016Nov Matake
 
AWS IoT Deep Dive - AWS IoT Web Day
AWS IoT Deep Dive - AWS IoT Web DayAWS IoT Deep Dive - AWS IoT Web Day
AWS IoT Deep Dive - AWS IoT Web DayAWS Germany
 

Similar to DDD Melbourne 2019 : Modern Authentication 101 (20)

REST Service Authetication with TLS & JWTs
REST Service Authetication with TLS & JWTsREST Service Authetication with TLS & JWTs
REST Service Authetication with TLS & JWTs
 
Identity, Security and XML Web Services
Identity, Security and XML Web ServicesIdentity, Security and XML Web Services
Identity, Security and XML Web Services
 
Getting Started With WebAuthn
Getting Started With WebAuthnGetting Started With WebAuthn
Getting Started With WebAuthn
 
GPSTEC323-SaaS and OpenID Connect The Secret Sauce Multi-Tenant Identity and ...
GPSTEC323-SaaS and OpenID Connect The Secret Sauce Multi-Tenant Identity and ...GPSTEC323-SaaS and OpenID Connect The Secret Sauce Multi-Tenant Identity and ...
GPSTEC323-SaaS and OpenID Connect The Secret Sauce Multi-Tenant Identity and ...
 
api-security-Jan23.pptxsdfffffffffffffffffffffffffffff
api-security-Jan23.pptxsdfffffffffffffffffffffffffffffapi-security-Jan23.pptxsdfffffffffffffffffffffffffffff
api-security-Jan23.pptxsdfffffffffffffffffffffffffffff
 
OAuth 2
OAuth 2OAuth 2
OAuth 2
 
SharePoint, ADFS and Claims Auth
SharePoint, ADFS and Claims AuthSharePoint, ADFS and Claims Auth
SharePoint, ADFS and Claims Auth
 
CIS14: Working with OAuth and OpenID Connect
CIS14: Working with OAuth and OpenID ConnectCIS14: Working with OAuth and OpenID Connect
CIS14: Working with OAuth and OpenID Connect
 
Security and information assurance
Security and information assuranceSecurity and information assurance
Security and information assurance
 
Claim Based Authentication in SharePoint 2010 for Community Day 2011
Claim Based Authentication in SharePoint 2010 for Community Day 2011Claim Based Authentication in SharePoint 2010 for Community Day 2011
Claim Based Authentication in SharePoint 2010 for Community Day 2011
 
Authentication and Authorization Architecture in the MEAN Stack
Authentication and Authorization Architecture in the MEAN StackAuthentication and Authorization Architecture in the MEAN Stack
Authentication and Authorization Architecture in the MEAN Stack
 
What the Heck is OAuth and OpenID Connect? Connect.Tech 2017
What the Heck is OAuth and OpenID Connect? Connect.Tech 2017What the Heck is OAuth and OpenID Connect? Connect.Tech 2017
What the Heck is OAuth and OpenID Connect? Connect.Tech 2017
 
What the Heck is OAuth and OpenID Connect - RWX 2017
What the Heck is OAuth and OpenID Connect - RWX 2017What the Heck is OAuth and OpenID Connect - RWX 2017
What the Heck is OAuth and OpenID Connect - RWX 2017
 
What the Heck is OAuth and OpenID Connect - DOSUG 2018
What the Heck is OAuth and OpenID Connect - DOSUG 2018What the Heck is OAuth and OpenID Connect - DOSUG 2018
What the Heck is OAuth and OpenID Connect - DOSUG 2018
 
Identity Proofing to provision accurately
Identity Proofing to provision accuratelyIdentity Proofing to provision accurately
Identity Proofing to provision accurately
 
Making Sense of API Access Control
Making Sense of API Access ControlMaking Sense of API Access Control
Making Sense of API Access Control
 
Single SignOn with Federation using Claims
Single SignOn with Federation using ClaimsSingle SignOn with Federation using Claims
Single SignOn with Federation using Claims
 
RPで受け入れる認証器を選択する ~Idance lesson 2~
RPで受け入れる認証器を選択する ~Idance lesson 2~RPで受け入れる認証器を選択する ~Idance lesson 2~
RPで受け入れる認証器を選択する ~Idance lesson 2~
 
ID連携入門 (実習編) - Security Camp 2016
ID連携入門 (実習編) - Security Camp 2016ID連携入門 (実習編) - Security Camp 2016
ID連携入門 (実習編) - Security Camp 2016
 
AWS IoT Deep Dive - AWS IoT Web Day
AWS IoT Deep Dive - AWS IoT Web DayAWS IoT Deep Dive - AWS IoT Web Day
AWS IoT Deep Dive - AWS IoT Web Day
 

Recently uploaded

SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsMiki Katsuragi
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfPrecisely
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo DayH2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo DaySri Ambati
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostZilliz
 

Recently uploaded (20)

SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo DayH2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
 

DDD Melbourne 2019 : Modern Authentication 101

Editor's Notes

  1. Cons of this approach Have to lookup database each time or save state about session Non standard ways of storing passwords Password management
  2. Malicious actor Weakest link exposes everything
  3. Existing trust relationship
  4. They are what the subject is or is not. It is up to the application receiving the incoming claim to map the is/is not claims to the may/may not rules of the application.
  5. Pros No credentials are given to the application Standardized way of storing credentials and managing passwords by well known IdPs.
  6. Utilize existing trust relationships Self contained token: Drivers License Reference Token: Visa application number Story about 3 store and pin
  7. Why protocols are important Why SAML was popular (Swiss army knife)
  8. Why protocols are important Why SAML was popular (Swiss army knife)
  9. Why JWT are more modern Light weight Self contained Verifiable
  10. HS256 Symmetric (Shared secret) RS256 Asymmetric key (certificate key pair)
  11. HS256 Symmetric (Shared secret) RS256 Asymmetric key (certificate key pair)
  12. HS256 Symmetric (Shared secret) RS256 Asymmetric key (certificate key pair)
  13. HS256 Symmetric (Shared secret) RS256 Asymmetric key (certificate key pair) Wax seal
  14. HS256 Symmetric (Shared secret) RS256 Asymmetric key (certificate key pair)
  15. HS256 Symmetric (Shared secret) RS256 Asymmetric key (certificate key pair)
  16. HS256 Symmetric (Shared secret) RS256 Asymmetric key (certificate key pair)
  17. HS256 Symmetric (Shared secret) RS256 Asymmetric key (certificate key pair)
  18. HS256 Symmetric (Shared secret) RS256 Asymmetric key (certificate key pair)
  19. HS256 Symmetric (Shared secret) RS256 Asymmetric key (certificate key pair)
  20. HS256 Symmetric (Shared secret) RS256 Asymmetric key (certificate key pair)
  21. HS256 Symmetric (Shared secret) RS256 Asymmetric key (certificate key pair)
  22. OAuth began in November 2006 when Blaine Cook was developing the Twitter OpenID implementation The OAuth 1.0 protocol was published as RFC 5849, in April 2010. The OAuth 2.0 framework was published as RFC 6749, in October 2012.
  23. OAuth began in November 2006 when Blaine Cook was developing the Twitter OpenID implementation The OAuth 1.0 protocol was published as RFC 5849, in April 2010. The OAuth 2.0 framework was published as RFC 6749, in October 2012.
  24. OpenID Connect specifications were launched on 2014. Google, Microsoft, PingIdentity and PayPal
  25. ClientId upon registration
  26. ClientId upon registration
  27. ClientId upon registration
  28. ClientId upon registration
  29. Admin must consent to client application scopes Non interactive flow
  30. Butler example Delegation JWT Bearer Authorization Grant (RFC 7523) Token Exchange Flow Application needs to request scopes for API A and B up front
  31. Input constrained devices
  32. Input constrained devices
  33. Input constrained devices
  34. Input constrained devices
  35. Input constrained devices
  36. Input constrained devices
  37. Convert legacy applications to use OAuth
  38. Proof key for code exchange
  39. Sponsors