Introduction to OpenID Connect and OAuth
Introduction to OpenID Connect and OAuth
OpenID Connect is the de facto standard we should use for handling authentication and authorization in modern applications. However, it can still be very complex and confusing with all the various concepts, including scopes, claims, flows, resources, and tokens.
This course includes many hands-on exercises that will help you understand how the protocol works under the hood.
Topics Covered
In this course, we will cover the following:
- Introduction
Authentication vs. Authorization
- Our challenges
- OAuth versions
OAuth vs. OpenID Connect
- Token Service
Authorization Server
- Relying party
- Token types
- Bearer tokens
Server implementations
Identity architecture
- Service endpoints
The discovery document
- Implicit flow
How does this flow work
Why it is no longer a recommended flow
- JWT tokens
- ID token
- Access tokens
- JSON Web Tokens
- JWT access tokens
- Claims and scopes
- What are claims?
- Claim types
- Scopes
- User consent
- Securing the token
- Unsecure tokens
- Signed tokens
Signature algorithms
- Private/public keys
- Encrypted tokens
Validating the tokens
- State and nonce
Authorization Code Flow
Public vs. private clients
Front vs. back-channel
Authenticating the user
The authorization code
- Getting the tokens
- Refresh tokens
One-time refresh tokens
Using the refresh token
- Token introspection
Client Credentials flow
Machine-to-machine communication
Getting the access token
Using the access token
Proof Key for Code Exchange (PKCE)
Single sign-on and sign-out
Backend For Frontend (BFF)
Introduction to the pattern
Why we should not handle tokens in the browser
- OAuth 2.1
Prerequisites
It would be best if you had a good understanding of the following:
The HTTP(s) protocol (including methods, headers, and cookies &)
How the web and APIs work in general
Some experience in developing backend web solutions
Target Audience
This course is designed for both new and experienced developers and architects seeking to understand the fundamentals of application security using OAuth2 and OpenID Connect. With a focus on the core standards and protocols rather than a specific implementation or programming language, it's the perfect fit regardless of whether you use Duende IdentityServer, Entra ID (AzureAD), KeyCloak, or any other authorization service.
Learning Objectives
In this course, you will learn the following:
Authentication vs. authorization
How OAuth 2.x and OpenID Connect work
Fundamental concepts
How a client authenticates against an authorization server
How to retrieve and consume JWT tokens
How OpenID Connect fits into your architecture
How the tokens are secured and managed
