Auth0 expose un endpoint JWKS pour chaque tenant, situé à
https://{yourDomain}/.well-known/jwks.json. Cet endpoint contient le JWK utilisé pour vérifier tous les JWT émis par Auth0 pour ce tenant.
Mettre en cache le JSON Web Key Set
- Ne pas épuiser les limites de débit de votre tenant avec des requêtes répétées.
- Améliorer les performances en évitant d’effectuer une requête réseau vers le point de terminaison JWKS à chaque validation de jeton.
- Améliorer la résilience afin que votre application puisse continuer à valider les jetons si le point de terminaison JWKS est brièvement indisponible.
kid est inconnu et la limitation de la fréquence de ces récupérations. Par exemple, nos Quickstarts utilisent des bibliothèques qui s’en chargent pour vous.
Pour éviter la charge liée au développement et à la maintenance, nous vous déconseillons d’implémenter vous-même la mise en cache. Toutefois, si votre cas d’utilisation l’exige, vous pouvez suivre ces directives :
- Mettez le JWKS en cache pendant 5 à 10 minutes afin d’éviter de le récupérer à chaque requête. Des intervalles plus longs réduisent davantage le nombre de requêtes et la latence.
- Lorsque vous effectuez la rotation des clés de signature, Auth0 signe les nouveaux jetons avec la nouvelle clé. Si vous recevez un jeton dont l’ID de clé (
kid) ne figure pas dans votre JWKS mis en cache, invalidez le cache et récupérez à nouveau le JWKS afin d’obtenir la nouvelle clé. L’actualisation lors de la réception d’unkidinconnu, plutôt qu’à l’expiration du cache, permet à votre application de prendre rapidement en compte les clés ayant fait l’objet d’une rotation. Ainsi, un intervalle de mise en cache plus long ne retarde pas la rotation. - Limitez la fréquence des nouvelles récupérations en cas d’absence dans le cache (par exemple, ne réessayez qu’une seule fois) afin qu’un lot de jetons signés avec des clés inconnues ne puisse pas déclencher un flot de requêtes vers le point de terminaison JWKS et épuiser vos limites de débit. Définissez votre intervalle de mise en cache selon la rapidité avec laquelle vous devez cesser d’accepter les jetons signés avec une clé révoquée manuellement.