Skip to main content

OIDC learning guide

Learn OIDC from the authorization request to token validation.

Trace Authorization Code with PKCE in plain language, with the claims, endpoints, and official references needed to verify an implementation.

OIDC flow at a glance
  1. Authorization requestActor: RPDirection: RP to OP through the browserChannel: front-channelPurpose: Requests authentication with redirect, scope, state, nonce, and PKCE parameters.
  2. Authentication and consentActor: OPDirection: Browser and OPChannel: front-channelPurpose: Authenticates the end user and applies the requested interaction and consent policy.
  3. Authorization code responseActor: OPDirection: OP to RP through the browserChannel: front-channelPurpose: Returns the authorization code and correlation state to the registered redirect URI.
  4. Token request and responseActor: RPDirection: RP to OP and backChannel: back-channelPurpose: Redeems the code with the PKCE verifier and receives tokens directly from the token endpoint.
  5. ID Token validationActor: RPDirection: At the RPChannel: back-channelPurpose: Verifies signature, issuer, audience, time, subject, and nonce before creating a session.

Current guide

OIDC learning paths

Browse every chapter, or choose a goal to follow a shorter ordered route.

Learning mode
Guided paths
Protocol foundationsCore lesson2 min readStart here · 1 of 9
Reference only

Roles and terminology

OIDC names the identity participants precisely: an End-User authenticates at an OpenID Provider, and a Relying Party consumes the result.

What it is

An OpenID Provider (OP) is an OAuth 2.0 Authorization Server that can authenticate an End-User and return Claims. A Relying Party (RP) is the OAuth 2.0 Client that requests that authentication.

Why it matters

Clear role names prevent a common design error: treating an ID Token as an access token, or treating an RP as the resource server that ultimately accepts an access token.

How it works

  1. The End-User starts sign-in at the RP in the RP-initiated flow covered deeply by this guide.
  2. The RP sends an Authentication Request through the browser to the OP's Authorization Endpoint.
  3. The OP authenticates the End-User and, after the code exchange, issues an ID Token to the RP.
  4. A resource server is a separate OAuth role that accepts an access token for an API; it does not consume the ID Token as proof of API authorization.

Options available

  • An Authorization Server that implements OIDC is also called an OpenID Provider.
  • An OAuth Client using OIDC is also called a Relying Party.
  • The same deployed system can host several roles, but each protocol message still has one intended issuer, audience, and recipient context.
What the official specification says

OIDC Core Sections 1.2 and 1.3 define the capitalized roles and the abstract exchange. Keep those definitions intact when mapping them to product-specific names.

Security and interoperability notes

  • Decide which component validates each token before implementation; sending a valid token to the wrong kind of recipient is still a protocol error.
  • Do not infer authorization from the fact that the OP authenticated the End-User.

Workbench support

Reference only

Guided exercises cover selected common flows. This topic remains available as a specification reference.

Official sources and further reading

  • OpenID Connect Core 1.0 incorporating errata set 2

    OpenID Foundation · Final · Version 1.0, errata set 2

    • Sections 1.2 and 1.3

      Normative source

      Defines the End-User, OpenID Provider, Relying Party, ID Token, and abstract OIDC exchange.

    Read the official specification (opens in a new tab)