- 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 détient la clé privée utilisée pour générer la signature, et le consommateur du récupère une clé publique à partir des endpoints de métadonnées fournis par Auth0 et l’utilise pour valider la signature du JWT.
- HS256 (HMAC avec SHA-256) : 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 qu’elle est partagée entre les deux parties. Comme la même clé sert à la fois à générer la signature et à la valider, il faut veiller à ce qu’elle ne soit pas compromise. Cette clé privée (ou ce secret) est créée lorsque vous enregistrez votre application () 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 détient la clé privée utilisée pour générer la signature, et le consommateur du JWT récupère une clé publique à partir des endpoints de métadonnées fournis par Auth0 et l’utilise pour valider la signature du JWT. Contrairement à RS256, le même en-tête JWT et le même payload généreront une signature différente chaque fois.
- Avec RS256, vous avez l’assurance que seul le détenteur de la clé privée (Auth0) peut signer des jetons, tandis que n’importe qui peut vérifier la validité du jeton à l’aide de la clé publique.
- Avec RS256, si la clé privée est compromise, vous pouvez effectuer une rotation des clés sans avoir à redéployer votre application ou votre API avec le nouveau secret (ce que vous devriez faire si vous utilisiez HS256).
Si vous configurez l’authentification Private Key JWT avec une Enterprise connection Okta ou OpenID Connect (OIDC), vous devrez peut-être choisir des algorithmes de signature supplémentaires.