JWT の署名を HMAC シークレット、公開 JWK、または JWKS で検証します。想定される発行者とオーディエンスも指定でき、デコードしただけでは信頼できないことを状態表示が明示します。
ブラウザ内でローカルに実行HS256/384/512 の場合は、生の共有シークレットを入力してください。非対称アルゴリズムの場合は、公開 JWK または JWKS JSON ドキュメントを貼り付けてください。
Decode or verify a compact JWT to inspect its protected header and payload.
JWT ペイロードは誰でもデコードできます。トークンは、意図したアルゴリズムとキーで署名検証が成功し、さらに発行者・オーディエンス・時刻・アプリケーションレベルのクレーム検証が完了した後にのみ信頼してください。
コンパクト JWT を貼り付けると、保護ヘッダーとペイロードを表示し、指定した鍵素材で署名を検証します。HS256/384/512 は生の共有シークレット、RS・PS・ES・EdDSA は公開 JWK または JWKS ドキュメントを使います。想定の発行者とオーディエンスも同じ実行で確認できます。
デコードは検証ではありません。このページはローカルでデコードし、その旨を明示します。署名と登録クレーム(exp、nbf、iss、aud)が通ったときだけ検証済みとして報告します。入力は送信されず、JWKS URL の取得も行わず、鍵素材は保存されません。
「トークンを検査」はペイロードを JWT デコーダーに通し、保護ヘッダーとペイロードを JSON で表示します。状態表示が警告のままなのは意図的です。トークンを持っている人は誰でも読めるため、デコードされたクレームは「そのトークンがそう名乗っている内容」の下見にすぎません。
署名アルゴリズムを宣言していないトークン(alg が none または欠落)も、ここではそのままデコードします。検査に署名は不要です。それを拒否するのは署名検証です。
共有シークレットの場合、トークン文字列そのものに対して署名を再計算して比較します。公開鍵の場合は対応する JWK を取り込んで使います。JWKS ドキュメントでは、トークンのヘッダーの kid と一致する鍵を探し、kid がない場合は先頭の鍵を使います。
登録クレームも同じ実行で確認します。exp と nbf は現在時刻と、iss は想定の発行者と、aud は想定のオーディエンスと(入力されている場合に)突き合わせます。状態表示は一般的なエラーではなく、最初に失敗した項目を示します(署名検証の失敗、exp / nbf の時刻確認、想定外または欠落した iss / aud 値)。
概要にはアルゴリズム、キー ID、発行者、オーディエンス、サブジェクト、有効期限が並びます。aud が配列の場合はカンマ区切りの一覧として表示されます。下のパネルはデコード済みトークンを整形した JSON で、protectedHeader と payload が 1 つの文書に入っています。
どちらのパネルも読み取り専用のテキストで、選択してコピーできます。検証に成功してもレイアウトは検査時と同じままで、クレームを信頼できるものにしているのが署名であることを隠しません。
処理はすべてタブ内で、jose ライブラリと Web Crypto API によって行われます。検査・検証の間にページはリクエストを出さず、JWKS URL を取得することもありません(ドキュメントは貼り付けます)。鍵素材はフォーム欄に留まります。
秘密鍵が存在するのはサンプルボタンだけで、それもページ外へ出ません。鍵ペアはブラウザ内で生成し、トークンもそこで署名し、欄に入るのは公開 JWK だけです。つまり鍵のローテーションはここでは手動で、更新した JWKS は貼り直す必要があります。