- 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 généreront une signature différente à chaque fois.
- 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).