- 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 rester 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 points de terminaison 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 rester 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 rester 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 points de terminaison de métadonnées fournis par Auth0 et l’utilise pour valider la signature du JWT. Contrairement à RS256, le même en-tête et le même payload JWT 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 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 effectuer une rotation des clés sans devoir 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 connexion d’entreprise Okta ou OpenID Connect (OIDC), vous devrez peut-être choisir des algorithmes de signature supplémentaires.