Localiser les jeux de clés Web JSON

Utilisez ce point de terminaison de découverte pour configurer votre application ou API et localiser automatiquement le point de terminaison JWKS (jwks_uri), lequel contient l’ensemble des clés Web JSON utilisées pour signer tous les jetons Web JSON (JWT) émis par Auth0 avec l’algorithme de signature RS256. Le point de terminaison se trouve dans l’URL suivante :

https://{yourDomain}/.well-known/openid-configuration.

Lorsque vous validez un jeton Web JSON à l’aide d’un ensemble de clés Web JSON, vous devrez effectuer les étapes suivantes :

  1. Récupérer le point de terminaison de découverte d’Auth0 et filtrer les éventuelles clés de connexion (par ex., toutes les clés sans clé publique ou dotée d’une propriété kid).

  2. Récupérer la propriété kid dans l’en-tête du jeton Web JSON décodé.

  3. Chercher la clé avec la propriété kid correspondante dans votre ensemble de clés Web JSON filtré.

  4. Créer un certificat en utilisant la propriété x5c correspondante dans votre ensemble de clés Web JSON.

  5. Utiliser le certificat pour vérifier la signature du jeton Web JSON.

Vous trouverez un exemple qui utilise l’ensemble de clés Web JSON pour vérifier une signature de jeton Web JSON dans l’article Utiliser RS256 et l’ensemble de clés Web JSON (à l’aide de Node.js). Vous pouvez aussi consulter nos guides de démarrage rapide des API/serveurs dorsaux.

Pour en savoir plus à propos de la structure d’un jeton Web JSON, consultez l’article Structure d’un jeton Web JSON.

Une bonne pratique consiste à supposer que plusieurs clés de connexion peuvent être présentes dans votre JWKS. Cela peut sembler inutile puisque le point de terminaison Auth0 JWKS contient généralement une seule clé de connexion; cependant, plusieurs clés peuvent se trouver dans le JWKS lors de la rotation des certificats de signature.

Nous vous recommandons de mettre en cache vos clés de connexion afin d’améliorer les performances de l’application et d’éviter de vous heurter à des limites anti-attaques. Toutefois, si le décodage d’un jeton échoue, vous devez vous assurer d’invalider le cache et de récupérer de nouvelles clés de connexion avant de réessayer une dernière fois.

En savoir plus