Algorithmes de signature
Les algorithmes de signature sont des algorithmes utilisés pour signer les jetons émis pour votre application ou votre API. Une signature est incluse dans un Jeton Web JSON (JWT) et sert à vérifier que l’expéditeur du jeton est bien celui qu’il prétend être et à s’assurer que le message n’a pas été modifié en cours de route.
Vous pouvez choisir parmi les algorithmes de signature suivants :
RS256 (Signature RSA avec SHA-256): Algorithme asymétrique, ce qui signifie qu’il y a deux clés : une clé publique et une clé privée qui doit être gardée secrète. Auth0 possède la clé privée utilisée pour générer la signature, et le consommateur du Jeton Web JSON récupère une clé publique à partir des points de terminaison des métadonnées fournis par Auth0 et l’utilise pour valider la signature du Jeton Web JSON.
HS256 (HMAC avec SHA-256): Un algorithme symétrique, ce qui signifie qu’il n’y a qu’une seule clé privée qui doit être gardée secrète et qui est partagée entre les deux parties. Étant donné que la même clé est utilisée à la fois pour générer la signature et pour la valider, il convient de veiller à ce que la clé ne soit pas compromise. Cette clé privée (ou secret) est créée lorsque vous enregistrez votre application (secret client) ou votre API (secret de signature) et que vous choisissez l’algorithme de signature HS256.
PS256 (Signature RSA avec SHA-256): Algorithme asymétrique, ce qui signifie qu’il y a deux clés : une clé publique et une clé privée qui doit être gardée secrète. Auth0 possède la clé privée utilisée pour générer la signature, et le consommateur du Jeton Web JSON récupère une clé publique à partir des points de terminaison des métadonnées fournis par Auth0 et l’utilise pour valider la signature du Jeton Web JSON. Contrairement à RS256, le même en-tête et la même charge utile JWT généreront une signature différente à chaque fois.
La pratique la plus sûre, et notre recommandation, est d’utiliser RS256 pour les raisons suivantes :
Avec RS256, vous êtes sûr que seul le détenteur de la clé privée (Auth0) peut signer les jetons, tandis que n’importe qui peut vérifier si le jeton est valide à l’aide de la clé publique.
Avec RS256, si la clé privée est compromise, vous pouvez mettre en œuvre la rotation des clés sans avoir à redéployer votre application ou votre API avec le nouveau secret (ce que vous devrez faire si vous utilisiez HS256).
Pour obtenir de l’aide en cas de problème, consultez Résolution des erreurs de jeton non valide.