Aperçu
Concepts clés
- Découvrez les JSON Web Tokens (JWTs) qu’Auth0 utilise pour les jetons d’accès, d’ID, d’actualisation et de logout.
- Consultez les algorithmes de signature pour comprendre ce qu’est la signature d’un jeton.
- Validez les JWT pour vous assurer que personne ne les a altérés.
- Utilisez les Auth0 SDKs, le middleware ou l’une des bibliothèques tierces sur JWT.io pour valider les JWT.
Pour inspecter visuellement un JWT, rendez-vous sur JWT.io ou utilisez la JWT Debugger Chrome Extension).
Analyser et valider
- Utiliser un middleware existant pour votre framework web.
- Choisir une bibliothèque tierce sur JWT.io.
- Effectuer manuellement les vérifications décrites dans la spécification RFC 7519 > 7.2 Validating a JWT.
Middleware
Bibliothèques tierces
algorithms qui vous permet de personnaliser les algorithmes autorisés (assurez-vous d’interdire none), un argument secretOrPublicKey que vous renseignez avec le secret ou la clé publique RSA (selon l’algorithme de signature sélectionné), ainsi que d’autres arguments qui vous permettent de personnaliser la validation des claims. Si l’analyse échoue, la bibliothèque renvoie une erreur JsonWebTokenError accompagnée du message jwt malformed, après quoi vous devez rejeter la requête associée.
Recommandations générales pour l’utilisation de bibliothèques tierces :
- Pour obtenir les claims d’un JWT, utilisez la méthode
verify()pour valider les claims et la signature. Évitez d’utiliser la méthodedecode()pour valider un token, surtout s’il provient d’un . - Suivez attentivement toutes les instructions d’utilisation de la bibliothèque choisie. La bibliothèque pourrait s’appuyer sur des valeurs ou des paramètres par défaut susceptibles d’entraîner des risques de sécurité.
Effectuer manuellement les vérifications
Vérifier les jetons signés avec RS256
- Accédez à Dashboard > Applications.
- Allez à l’onglet Settings, puis ouvrez Advanced Settings.
- Allez à l’onglet Certificates, repérez le champ Signed Certificate et copiez la Public Key.
- Accédez au site Web JWT.io, repérez la liste déroulante Algorithm et sélectionnez RS256.
- Repérez la section Verify Signature et collez la Public Key que vous avez copiée précédemment à la place du contenu dans le champ qui commence par
-----BEGIN PUBLIC KEY-----.
https://{yourDomain}/.well-known/jwks.json