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:
issmust match the trusted issuer;audmust include your client_id.exp/iatenforce validity and freshness (allow small skew).nonceblocks replay; checkazpwith 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
- Structure et signature du jeton ID
- JWS et ensembles de JWK
- Révocation et introspection des jetons
- Valider les attributs standard des jetons ID