このツールについて
認証付きの API 呼び出しが 401 や 403 で失敗したとき、最初に知りたいのはトークンの中身です。誰に、どのオーディエンス向けに、どのロールで発行されたのか、有効期限は切れていないか。このデコーダーはトークンを分割し、Base64URL のヘッダーとペイロードをデコードして、登録済みクレームを表示します。exp、iat、nbf は日時と相対時間に変換されます。alg "none"、埋め込まれた鍵、リモートの鍵 URL など、セキュリティテストの対象にすべき設定も警告します。署名は検証しません。検証には秘密鍵または公開鍵が必要で、デコードしたクレームだけでは何も証明できません。
使い方
- トークンを貼り付けます。Authorization ヘッダーからコピーした先頭の「Bearer 」は自動で除去されます。
- ステータスバナーで有効期限を確認し、ヘッダーとペイロードのパネルを読みます。
- クレーム表を使って、iss、aud、sub を API が期待する値と比較します。
- 警告があれば確認します。API に対して実行すべきネガティブテストのヒントになります。
JWT デコーダー のよくある質問
本番のトークンをここに貼り付けても安全ですか?
デコードはすべてブラウザ内で行われ、トークンがどこかに送信されることはありません。ただし、利便性のため「Clear」(クリア)をクリックするまでこのブラウザのローカルストレージに保存されます。有効なトークンはパスワードと同様に扱い、できるだけテスト環境のものを使い、終わったらクリアしてください。
ここでは有効と表示されるのに API に拒否されるのはなぜですか?
有効期限はチェック項目の 1 つにすぎません。サーバーは署名、発行者、オーディエンスに加え、場合によっては時刻のずれを考慮した not-before の時刻や、トークンが失効していないかも検証します。aud や iss の不一致は、環境をまたいだときに 401 が返るよくある原因です。
alg「none」や HS256 を見つけたら何をテストすべきですか?
alg を "none" にして署名を除いたトークンと、署名は元のままでペイロードを改変したトークンを送り直します。正しい API ならどちらも拒否するはずです。HS256 の場合は、秘密鍵が十分に長くランダムであることも確認してください。弱い HMAC の秘密鍵は、取得されたトークンからオフラインで総当たりされる可能性があります。