image de chargement
Back to glossary

OpenID Connect (OIDC)

Modern authentication protocol built on OAuth 2.0, enabling applications to verify user identity through a trusted third-party provider.

Updated on January 12, 2026

OpenID Connect (OIDC) is an identity layer built on top of the OAuth 2.0 protocol, designed to standardize user authentication across web and mobile applications. Unlike OAuth 2.0 which only handles authorization, OIDC adds an authentication dimension by providing verifiable information about user identity. This technology enables Single Sign-On (SSO) and eliminates the need to manage multiple passwords, while offering enhanced security through cryptographic tokens.

Technical Fundamentals

  • Extension of OAuth 2.0 adding a signed JWT ID Token containing user identity information
  • Three main flows: Authorization Code Flow (most secure), Implicit Flow (deprecated), and Hybrid Flow
  • UserInfo endpoint usage to retrieve additional claims (attributes) about the authenticated user
  • Support for automatic discovery via JSON metadata exposed by identity providers

Strategic Benefits

  • Simplified user experience with Single Sign-On (SSO) across multiple applications
  • Reduced security risks by delegating authentication to specialized providers (Google, Microsoft, Auth0)
  • Interoperable standardization allowing identity provider changes without major refactoring
  • Simplified compliance with regulations (GDPR, SOC2) through centralized identity management
  • Reduced development and maintenance costs related to password and session management

Authentication Flow Example

auth-service.ts
import { AuthorizationCode } from 'simple-oauth2';

// OIDC client configuration
const config = {
  client: {
    id: process.env.OIDC_CLIENT_ID,
    secret: process.env.OIDC_CLIENT_SECRET
  },
  auth: {
    tokenHost: 'https://accounts.provider.com',
    authorizePath: '/oauth2/authorize',
    tokenPath: '/oauth2/token'
  }
};

const client = new AuthorizationCode(config);

// Generate authentication URL
const authorizationUri = client.authorizeURL({
  redirect_uri: 'https://myapp.com/callback',
  scope: 'openid profile email',
  state: generateRandomState() // CSRF protection
});

// Handle callback after authentication
async function handleCallback(code: string) {
  const tokenParams = {
    code,
    redirect_uri: 'https://myapp.com/callback'
  };
  
  // Exchange code for tokens
  const accessToken = await client.getToken(tokenParams);
  
  // Decode ID Token (JWT)
  const idToken = decodeJWT(accessToken.token.id_token);
  
  // Extract user information
  const userInfo = {
    sub: idToken.sub,        // Unique identifier
    email: idToken.email,
    name: idToken.name,
    email_verified: idToken.email_verified
  };
  
  return userInfo;
}

Implementation in Your Infrastructure

  1. Choose a certified identity provider (Auth0, Okta, Keycloak, Google Identity) based on your scalability and compliance needs
  2. Register your application with the provider to obtain client_id, client_secret and configure authorized redirect URIs
  3. Implement Authorization Code flow with PKCE (Proof Key for Code Exchange) for public applications and SPAs
  4. Systematically validate ID Tokens: verify JWT signature, issuer (iss), audience (aud) and expiration (exp)
  5. Store tokens securely (HttpOnly cookies for refresh tokens, never in localStorage)
  6. Configure server-side session management with refresh token rotation and appropriate timeouts
  7. Implement a logout strategy including token revocation and provider-side session cleanup

Security Best Practice

Always use Authorization Code flow with PKCE for frontend applications (SPA, mobile). Never expose client_secret on the client side. For backend applications, prefer using client certificates rather than shared secrets for maximum security. Also implement 'nonce' claim validation to prevent replay attacks.

Ecosystem and Tools

  • Identity Providers: Auth0, Okta, Keycloak, Google Identity Platform, Azure AD, AWS Cognito
  • Client Libraries: oidc-client-ts, Passport.js (Node), Spring Security (Java), NextAuth.js (React/Next)
  • Testing Tools: oidcdebugger.com, jwt.io for token decoding, Postman to simulate OAuth flows
  • Self-hosted Solutions: Keycloak, Ory Hydra, IdentityServer (C#) to maintain full control over your data

OpenID Connect represents today's de facto standard for modern authentication, adopted by the largest technology platforms. Its implementation not only significantly reduces development costs and security risks, but also radically improves user experience by eliminating friction related to managing multiple credentials. For enterprises, OIDC also facilitates regulatory compliance and paves the way for zero-trust architectures and decentralized identity strategies.

Related terms

Themoneyisalreadyonthetable.

In 1 hour, discover exactly how much you're losing and how to recover it.