OpenID Connect
OpenID Connect is an authentication protocol built on OAuth 2.0. It lets an application rely on an identity provider for sign-in and receive a verifiable identity result without handling the user's password.
itIdentity, access, and cryptography | OpenSkills.info
Intro
OpenID Connect
OpenID Connect, commonly shortened to OIDC, is an authentication protocol built on the OAuth 2.0 framework. OAuth 2.0 delegates access to protected resources. OIDC adds a standard identity layer so an application can verify that a user authenticated and receive claims about that user.
The protocol separates the application from the system that performs authentication. The application is the Relying Party, or RP. The authentication service is the OpenID Provider, or OP. The person signing in is the End-User. The RP redirects the user's browser to the OP, receives a short-lived response, and validates an ID Token before creating its own application session.
This separation supports single sign-on and external identity. A web application, native application, or browser-based application can accept an established provider without collecting the user's provider password. The RP still owns its local account mapping, application session, and authorization decisions.
The protocol path
OIDC uses OAuth endpoints and adds identity-specific messages and validation rules. A common authorization code flow follows this path:
- The RP discovers or configures the OP's issuer, authorization endpoint, token endpoint, and signing-key location.
- The RP registers a client identifier, redirect URI, and other client metadata with the OP.
- The RP creates an authentication request. The request includes
scope=openid, the client identifier, redirect URI, response type, and request-correlation values. - The browser goes to the OP's authorization endpoint. The OP authenticates the user and may request consent.
- The OP redirects the browser to the RP's exact registered redirect URI with an authorization code and the returned
statevalue. - The RP checks
state, then exchanges the code at the token endpoint. PKCE adds a verifier that binds this exchange to the client that started it. - The OP returns an ID Token and, when requested, an access token. A refresh token may also be returned.
- The RP validates the ID Token before treating the result as authentication.
- The RP maps the issuer and subject to a local account, then creates its own session and applies local authorization policy.
The authorization code keeps tokens out of the browser redirect. Current OAuth security guidance recommends the code flow and PKCE for browser-based and native clients. Native applications use an external user agent, normally the system browser, instead of an embedded login view.
Discovery and registration
Continue the course
This section is part of the paid course.
See pricing to subscribe, or log in if you already have access.
Where this skill leads
Relevant careers
See how this topic contributes to broader role-level skill maps.
Sources
- https://openid.net/developers/how-connect-works/
Supports
- OpenID Connect purpose, roles, abstract flow, ID Token, access token, UserInfo, and ecosystem placement
- Reference-link rationale and novice orientation
- https://openid.net/specs/openid-connect-core-1_0.html
Supports
- OIDC identity layer, terminology, flows, requests, tokens, claims, UserInfo, validation, security, privacy, and stable issuer-subject identifiers
- All quiz answers concerning OIDC semantics and ID Token validation
- Intro, slides, cheatsheet, video script, and infographic factual content
- https://openid.net/specs/openid-connect-discovery-1_0.html
Supports
- Well-known configuration path, issuer matching, provider metadata, endpoint discovery, and JSON Web Key Set location
- Discovery and signing-key rotation guidance, quiz answer, and reference rationale
- https://openid.net/specs/openid-connect-registration-1_0.html
Supports
- Dynamic client registration endpoint, request, response, client metadata, redirect URIs, and credentials
- Reference-link rationale
- https://www.rfc-editor.org/rfc/rfc6749.html
Supports
- OAuth roles, endpoints, authorization code exchange, access and refresh tokens, client types, and October 2012 publication
- OpenID Connect's OAuth foundation and timeline milestone
- https://www.rfc-editor.org/rfc/rfc7636.html
Supports
- PKCE verifier, challenge, S256 method, authorization request, token exchange, and code interception defense
- Quiz answer about code binding
- https://www.rfc-editor.org/rfc/rfc9700.html
Supports
- Current authorization code, PKCE, redirect URI, issuer, audience, and flow-selection security guidance
- Reference-link rationale and recommendation against implicit flow for new designs
- https://www.rfc-editor.org/rfc/rfc8252.html
Supports
- Native app use of external user agents, redirect URI choices, public clients, and PKCE
- Reference-link rationale
- https://www.rfc-editor.org/rfc/rfc7519.html
Supports
- JSON Web Token structure and registered issuer, subject, audience, expiration, not-before, and issued-at claims
- https://www.rfc-editor.org/rfc/rfc7517.html
Supports
- JSON Web Key and JSON Web Key Set representation used for provider signing keys
- https://openid.net/specs/openid-connect-session-1_0.html
Supports
- Separation of RP and OP sessions and session-management behavior
- Quiz answer about local RP sessions
- https://openid.net/specs/openid-connect-rpinitiated-1_0.html
Supports
- RP-Initiated Logout endpoint metadata, ID Token hint, and post-logout redirect validation
- Reference-link rationale and logout comparison
- https://openid.net/specs/openid-connect-frontchannel-1_0.html
Supports
- Browser-mediated logout notification between OP and RPs
- https://openid.net/specs/openid-connect-backchannel-1_0.html
Supports
- Direct OP-to-RP logout notifications and logout-token validation
- https://openid.net/developers/certified-openid-connect-implementations/
Supports
- Published certified provider and relying-party implementations
- Reference-link rationale about conformance evidence
- https://openid.net/certification/
Supports
- Conformance testing and self-certification process
- Reference-link rationale
- https://github.com/sindresorhus/awesome
Supports
- Discovery of the dedicated Awesome OpenID Connect list
- https://github.com/cerberauth/awesome-openid-connect
Supports
- Discovery of Spring Security, oidc-client-ts, mod_auth_openidc, OAuth Tools, the conformance suite, go-oidc, and provider ecosystem entries
- https://docs.spring.io/spring-security/reference/servlet/oauth2/login/index.html
Supports
- Spring Security authorization code login, OIDC provider integration, client configuration, user mapping, and logout
- Awesome Links rationale
- https://authts.github.io/oidc-client-ts/
Supports
- TypeScript browser OIDC client requests, callbacks, sessions, and token management
- Awesome Links rationale
- https://www.mod-auth-openidc.org/
Supports
- Apache HTTP Server OpenID Certified RP and reverse-proxy integration
- Awesome Links rationale
- https://oauth.tools/about
Supports
- Interactive OAuth and OIDC message inspection, discovery, UserInfo, token decoding, validation, and flow testing
- Awesome Links rationale
- https://gitlab.com/openid/conformance-suite
Supports
- Provider and relying-party conformance test implementation
- Awesome Links rationale
- https://pkg.go.dev/github.com/coreos/go-oidc/v3/oidc
Supports
- Go provider discovery and ID Token verifier behavior
- Awesome Links rationale
- https://openid.net/specs/openid-connect-standard-1_0-01.html
Supports
- First OpenID Connect Standard draft date and initial authorization code and implicit bindings
- Timeline milestone
- https://openid.net/openid-connect-implementers-drafts-approved/
Supports
- February 2012 approval of OpenID Connect Implementer's Drafts
- Timeline milestone
- https://openid.net/wordpress-content/uploads/2020/09/openidconnectintroduction23-oct-18-181108204717.pdf
Supports
- February 2014 final approval, November 2014 errata, April 2015 provider certification, and December 2016 RP certification milestones
- Timeline milestones and protocol development arc
- https://openid.net/openid-connect-certification-program/
Supports
- April 2015 certification launch, initial provider participants, and conformance purpose
- Timeline milestone
- https://openid.net/certification/what-is-self-certification-faq/
Supports
- Provider certification general availability in 2016 and RP certification general availability in August 2017
- Timeline milestone
- https://openid.net/fapi-1-0-part-1-and-part-2-are-now-final-specifications/
Supports
- March 2021 FAPI 1.0 finalization and its security-profile role
- Timeline milestone
- https://openid.net/the-openid-connect-logout-specifications-are-now-final-specifications/
Supports
- September 2022 finalization of Session Management, Front-Channel, Back-Channel, and RP-Initiated Logout
- Timeline milestone
- https://openid.net/second-errata-set-for-openid-connect-specifications-approved/
Supports
- December 2023 second errata set for Core, Discovery, and Dynamic Registration and first Back-Channel Logout errata
- Timeline milestone
- https://auth0.com/docs/authenticate/protocols/openid-connect-protocol
Supports
- Auth0 OIDC provider endpoints, ID Tokens, claims, and application integration
- Landscape placement for Auth0
- https://auth0.com/pricing
Supports
- Auth0 proprietary hosted service with free and paid plans
- Landscape pricing classification
- https://developer.okta.com/docs/concepts/oauth-openid/
Supports
- Okta issuers, authorization servers, OIDC endpoints, metadata, keys, scopes, claims, and tokens
- Landscape placement for Okta
- https://developer.okta.com/signup/
Supports
- Okta developer service availability alongside commercial plans
- Landscape pricing classification
- https://learn.microsoft.com/en-us/entra/identity-platform/v2-protocols-oidc
Supports
- Microsoft identity platform OIDC discovery, app registration, authorization code, ID Token, claims, and logout behavior
- Landscape placement for Microsoft Entra ID
- https://www.microsoft.com/en-us/security/business/microsoft-entra-pricing
Supports
- Microsoft Entra free and paid service tiers
- Landscape pricing classification
- https://docs.aws.amazon.com/cognito/latest/developerguide/authorization-endpoint.html
Supports
- Cognito authorization endpoint, app clients, callback URLs, scopes, code flow, and PKCE
- Landscape placement for Amazon Cognito
- https://aws.amazon.com/cognito/pricing/
Supports
- Amazon Cognito free allowance and usage-based paid service
- Landscape pricing classification
- https://developers.google.com/identity/openid-connect/openid-connect
Supports
- Google OIDC discovery, authorization code flow, ID Tokens, claims, and validation
- Landscape placement and free protocol service classification for Google Identity
- https://www.keycloak.org/securing-apps/oidc-layers
Supports
- Keycloak OIDC endpoints, discovery, certificates, authorization, token, UserInfo, and logout layers
- Landscape placement and open-source classification for Keycloak
- https://www.ory.sh/docs/oauth2-oidc/
Supports
- Hydra OAuth and OIDC endpoints and separation of login and consent applications
- Landscape placement and open-source classification for Ory Hydra
- https://fusionauth.io/docs/lifecycle/authenticate-users/oauth/endpoints
Supports
- FusionAuth OIDC discovery, authorization, token, UserInfo, keys, and logout endpoints
- Landscape placement for FusionAuth
- https://fusionauth.io/pricing
Supports
- FusionAuth community and paid editions
- Landscape licensing and pricing classification
- https://curity.io/product/identity-server/
Supports
- Curity deployable OAuth and OpenID Connect identity server for API architectures
- Landscape placement and proprietary paid classification
- https://www.pingidentity.com/en/resources/identity-fundamentals/authentication-authorization-standards/openid-connect.html
Supports
- Ping Identity OpenID Connect provider and enterprise federation context
- Landscape placement and proprietary paid classification
