Outil Développeur Gratuit

JWKS & JWT Signature Verifier

Collez une URL JWKS ou un JSON JWKS plus un JWT et obtenez un verdict de signature instantané. La vérification s'exécute entièrement dans votre navigateur avec l'API WebCrypto, donc rien ne quitte la page.

This free JWKS verifier checks whether a JWT was really signed by your fournisseur d'identité. It matches the token's kid against the keys in your JWKS, verifies the RS256/RS384/RS512 or ES256/ES384 signature with WebCrypto, and runs claim checks for exp, nbf, iat, iss, and aud. No token or key is ever uploaded, stored, or logged.

100% Côté Client WebCrypto Verification Aucune Inscription Requise
Keys & Token

La récupération se produit dans votre navigateur, donc le endpoint doit autoriser CORS. Le endpoint JWKS de Keycloak envoie des headers CORS, donc la récupération fonctionne. Si votre fournisseur le bloque, collez le JSON JWKS ci-dessous à la place.

or paste JWKS JSON
Verification Result

No token verified yet

Fournissez un JWKS et un JWT, puis cliquez sur Vérifier la Signature pour obtenir un verdict.

Now Do This in Production

Skycloak exécute Managed Keycloak avec rotation automatique des clés de signature et des endpoints JWKS toujours disponibles, donc la vérification comme celle-ci fonctionne simplement. Pas de charge opérationnelle.

Démarrer l'essai gratuit

What Is a JWKS?

A JSON Web Key Set (JWKS) is a JSON document that publishes the public keys an fournisseur d'identité uses to sign its tokens. Each entry in the keys array is a JSON Web Key (JWK) describing one key: its type (kty), intended use (use: "sig"), algorithm (alg), and a key ID (kid).

Keycloak sert son JWKS sur /realms/<realm>/protocol/openid-connect/certs, et tout client peut le récupérer pour vérifier les tokens sans jamais voir une clé privée. C'est tout l'intérêt : la clé de signature reste secrète sur le serveur, tandis que la clé de vérification est publique par conception.

Pour une procédure plus approfondie du format et du fonctionnement de la rotation, lisez notre guide sur understanding JWKS (JSON Web Key Sets).

How kid Matching Works

Chaque JWT signé porte un kid (ID de clé) dans son header. La vérification l'utilise comme une recherche :

  1. Lire le header : le vérificateur décode le header JWT et lit les valeurs kid et alg.
  2. Trouver la clé : il scanne le JWKS pour une clé dont le kid correspond, puis importe cette clé publique.
  3. Vérifier : il vérifie la signature sur le header et le payload avec cette clé. Toute autre clé dans l'ensemble est sans importance.

The kid is what makes key rotation seamless: an fournisseur d'identité can publish the new key alongside the old one, and tokens signed by either keep verifying until the old key is retired. This tool shows you the match status explicitly, and falls back to trying every signing key when the kid is missing or unmatched.

Why Signature Verification Matters

Decoding a JWT is not verification. Anyone can mint a token with any claims they like: admin: true, your user's email, a fresh expiry. The only thing that ties a token to your fournisseur d'identité is the signature, so a backend that trusts decoded claims without verifying them is effectively unauthenticated.

Si vous avez seulement besoin d'inspecter le contenu d'un token, notre JWT Token Analyzer fait cela. Cet outil va un pas plus loin et répond à la question qui compte en production : ce token a-t-il vraiment été signé par l'ensemble de clés en qui vous avez confiance ?

Dans vos propres services, effectuez cette vérification sur chaque requête avec une bibliothèque JWT appropriée. Notre guide sur vérifier un access token émis par Keycloak sur le backend parcourt le flux complet côté serveur, y compris la mise en cache JWKS et les vérifications de l'émetteur.

Common Verification Failures

Lorsqu'une vérification de signature échoue contre des clés que vous croyez correctes, c'est généralement l'un de ceux-ci :

  • non-correspondance kid après rotation : le realm a fait tourner sa clé de signature et le token a été émis par une clé qui n'est plus (ou pas encore) dans l'ensemble que vous avez récupéré.
  • Cache JWKS obsolète : votre backend a mis en cache le JWKS avant une rotation et n'a jamais refait la récupération. Vérifier contre un ensemble fraîchement récupéré ici mais échouer en production est le symptôme classique.
  • Wrong realm URL: fetching the JWKS from the master realm while the token was issued by another realm. Comparer the token's iss claim with the realm in your JWKS URL.
  • Décalage d'horloge : un token valide cryptographiquement mais rejeté sur exp ou nbf parce que l'émetteur et le vérificateur ne sont pas d'accord sur l'heure. Autorisez une petite fenêtre de décalage.

Frequently Asked Questions

Est-il sûr de coller un vrai JWT dans ce vérificateur ?

Oui. L'analyse, la récupération JWKS et la vérification de signature s'exécutent toutes dans votre navigateur avec l'API WebCrypto, donc le token et les clés ne sont jamais téléchargés, stockés ou enregistrés. Seules les clés publiques sont impliquées. Cela dit, traitez tout access token en direct comme un mot de passe et préférez les tokens de test à courte durée quand vous le pouvez.

Why does fetching my JWKS URL fail?

Parce que la requête provient de votre navigateur, le endpoint doit envoyer des headers CORS (Access-Control-Allow-Origin). Le endpoint JWKS de Keycloak le fait, donc récupérer les clés d'un realm Keycloak fonctionne directement. Si un autre fournisseur bloque les requêtes cross-origin, ouvrez l'URL JWKS directement, copiez le JSON et collez-le dans le champ JSON JWKS à la place.

Which algorithms does this verifier support?

RS256, RS384 et RS512 (RSA) plus ES256 et ES384 (ECDSA), qui couvrent les algorithmes asymétriques que Keycloak et la plupart des fournisseurs OIDC émettent par défaut. Les tokens avec alg "none" sont toujours rejetés. Les tokens de la famille HS256 ne sont pas supportés car ils sont signés avec un secret symétrique qui, par définition, n'apparaît jamais dans un JWKS.

Où trouver mon URL JWKS Keycloak ?

Il suit le modèle https://<host>/realms/<realm>/protocol/openid-connect/certs. Vous pouvez également le rechercher dans le document de découverte OIDC du realm sur /realms/<realm>/.well-known/openid-configuration sous le champ jwks_uri. Assurez-vous que le realm dans l'URL correspond au realm dans le claim iss de votre token.

© 2026 Skycloak. Tous droits réservés. Design par Yasser Soliman