0Pricing
OAuth2 & OpenID Connect Deep Dive · Leçon

Valider les attributs standard des jetons ID

Découvrez les étapes obligatoires de validation des attributs iss, aud, exp, iat et nonce d’un jeton ID OpenID Connect.

Valider les attributs standard des jetons ID est une leçon OAuth2 & OpenID Connect Deep Dive gratuite sur CoddyKit. Ceci est la leçon 4 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage OAuth2 & OpenID Connect Deep Dive, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours OAuth2 & OpenID Connect Deep Dive comprend 4 leçons au total.

Certaines parties de cette leçon n'ont pas encore été traduites et s'affichent en anglais.

Signature Is Not Enough

Verifying an ID token's signature proves it came from the provider, but you must also validate its claims to ensure it was meant for you, right now, and is still valid. A valid signature on a token meant for another app is still dangerous.

Validate iss (Issuer)

The iss claim must exactly equal the issuer identifier of your trusted provider, as published in its discovery document. Reject anything else.

if (claims.iss !== 'https://op.example.com') reject();

Validate aud (Audience)

The aud claim must contain your client_id. If aud is an array with multiple values, an azp (authorized party) claim must be present and equal your client_id.

const auds = Array.isArray(claims.aud) ? claims.aud : [claims.aud];
if (!auds.includes(MY_CLIENT_ID)) reject();

Validate exp (Expiration)

The exp claim is a Unix timestamp. The current time must be before exp. Reject expired tokens; allow a small clock skew (a few minutes) at most.

const now = Math.floor(Date.now() / 1000);
if (now >= claims.exp) reject('expired');

Validate iat (Issued At)

The iat claim says when the token was issued. You can reject tokens that are unreasonably old, and use iat to enforce freshness policies.

if (now - claims.iat > MAX_AGE_SECONDS) reject('too old');

Validate nonce

If you sent a nonce in the authentication request, the token's nonce must equal the value you stored. This blocks replay.

if (claims.nonce !== session.nonce) reject('nonce mismatch');

Check azp When Present

The azp (authorized party) claim identifies which client the token was issued to when there are multiple audiences. If present, it must match your client_id.

auth_time and max_age

If you requested max_age or auth_time is essential, verify the auth_time claim shows the user authenticated recently enough; otherwise force re-authentication.

Order of Operations

A safe sequence:

  • Decode and verify the signature (correct alg + key).
  • Validate iss, aud/azp.
  • Validate exp, iat (and auth_time if needed).
  • Validate nonce.

Only after all pass do you trust the identity.

A Combined Check

Bringing the claim validations together:

function validateClaims(c, cfg, now) {
  if (c.iss !== cfg.issuer) throw 'bad iss';
  const auds = [].concat(c.aud);
  if (!auds.includes(cfg.clientId)) throw 'bad aud';
  if (now >= c.exp) throw 'expired';
  if (c.nonce !== cfg.nonce) throw 'bad nonce';
  return true;
}

Use a Vetted Library

Hand-rolling JWT validation invites subtle bugs (alg confusion, skew handling). Prefer a well-maintained OIDC/JWT library and only configure the policy; let it enforce signature and claim checks.

Quick Check

Check your claim-validation knowledge.

Recap

Validating ID token claims goes beyond the signature:

  • iss must match the trusted issuer; aud must include your client_id.
  • exp/iat enforce validity and freshness (allow small skew).
  • nonce blocks replay; check azp with multiple audiences.
  • Prefer a vetted library over hand-rolled checks.

Questions Fréquemment Posées

La leçon « Valider les attributs standard des jetons ID » est-elle gratuite ?

Oui — le texte complet de « Valider les attributs standard des jetons ID » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours OAuth2 & OpenID Connect Deep Dive, passe à CoddyKit PRO. Le cours OAuth2 & OpenID Connect Deep Dive comprend 4 leçons au total.

Qu'est-ce que j'apprendrai dans « Valider les attributs standard des jetons ID » ?

Découvrez les étapes obligatoires de validation des attributs iss, aud, exp, iat et nonce d’un jeton ID OpenID Connect. Tu pratiques OAuth2 & OpenID Connect Deep Dive avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.

Dois-je avoir de l'expérience pour commencer OAuth2 & OpenID Connect Deep Dive ?

Aucune expérience préalable n'est requise. OAuth2 & OpenID Connect Deep Dive sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 4 sur 4.

Combien de temps prend la leçon « Valider les attributs standard des jetons ID » ?

La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.

Peux-tu écrire et exécuter du code dans cette leçon OAuth2 & OpenID Connect Deep Dive ?

Oui. Chaque leçon OAuth2 & OpenID Connect Deep Dive inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.

Toutes les leçons de ce cours

  1. Structure et signature du jeton ID
  2. JWS et ensembles de JWK
  3. Révocation et introspection des jetons
  4. Valider les attributs standard des jetons ID
← Retour à OAuth2 & OpenID Connect Deep Dive