概要
この JWT デコーダーは、JSON Web Token の内容をブラウザ内で直接確認するためのツールです。JWT や Bearer トークンを貼り付けると、ヘッダーとペイロードをデコードし、`iss`、`sub`、`aud`、`scope`、`iat`、`nbf`、`exp` などのクレームを読みやすく表示します。トークンが期限切れに見えるか、まだ有効前かも素早く確認できます。処理はすべてローカルで行われます。
使い方
入力欄に JWT もしくは Bearer トークンを貼り付けます。Bearer プレフィックスがある場合は自動で取り除かれ、トークンはピリオドで分割され、Base64URL 形式のヘッダーとペイロードが読みやすい JSON として表示されます。クレーム概要や時間クレームを確認し、必要に応じて結果をコピーまたはダウンロードしてください。このツールは署名検証を行わないため、内容確認用として利用してください。
特徴
- •ブラウザ内で JWT のヘッダーとペイロードをローカルにデコード
- •JWT 文字列と Bearer トークンの両方に対応
- •Header JSON と Payload JSON を見やすく表示
- •`iat`、`nbf`、`exp` の時間クレームを確認
- •アルゴリズム、issuer、subject、audience、scope、key ID を素早く把握
- •デコード結果をコピーまたは JSON としてダウンロード
- •期限切れや未有効に見えるトークンに警告表示
- •サーバー送信なし、署名検証なし
JWT デコーダーで分かること
JWT は通常、ヘッダー、ペイロード、署名の 3 つのセグメントで構成されます。ヘッダーにはアルゴリズムやキー ID などのメタデータが入り、ペイロードには API やアプリが利用するクレームが入ります。たとえば、トークンの発行元、対象となる audience、いつ受け入れるべきか、いつ拒否すべきかなどです。
デコードと検証は別物
JWT をデコードするというのは、Base64URL でエンコードされた JSON を読み取ることです。これはトークンが本物であること、改ざんされていないこと、信頼できることを証明しません。署名検証には正しい秘密鍵や公開鍵が必要であり、アプリケーションや認証基盤で別途行う必要があります。
exp、nbf、iat の見方
iat は発行時刻、nbf はそのトークンを受け入れてよい最も早い時刻、exp は期限切れの時刻を示すことが一般的です。通常は秒単位の Unix タイムスタンプです。認可の不具合を調べるときは、実際にアクセス制御を行っている端末やサーバーの時計と照らし合わせて確認してください。
よくある JWT のデバッグ場面
Bearer トークンがステージングで突然使えなくなったとき、API が 401 Unauthorized を返すとき、サービス間で audience が一致しないとき、あるいはモバイルアプリが更新後も古いトークンを使っているように見えるときに、このツールは役立ちます。署名鍵やセッション保存の調査に進む前に、まずトークン構造が正しいかを確かめる用途にも向いています。
JWT セグメント一覧
各セグメントは調査の目的が異なります。
| セグメント | 主な内容 | 実務上のメモ |
|---|---|---|
| Header | アルゴリズム、タイプ、キー ID | 署名方式やトークン形式の確認に便利 |
| Payload | iss、sub、aud、exp などのクレーム | 認可文脈や時間条件の確認に便利 |
| Signature | 暗号署名データ | 検証しない限り信頼性は保証されない |
よく使われる JWT クレーム
トークンが拒否されたときに特によく確認される項目です。
| Claim | 意味 | デバッグ時の確認ポイント |
|---|---|---|
| iss | 発行者 | 想定した認証プロバイダーから発行されたか確認 |
| sub | 主体 | ユーザー、アカウント、サービス主体を示すことが多い |
| aud | Audience | 受信側 API やリソースと一致する必要があることが多い |
| nbf | 有効開始時刻 | 未来の値だと即座に拒否される原因になる |
| exp | 有効期限 | 401 の典型的な原因のひとつ |
よくある質問
この JWT デコーダーは署名を検証しますか?
いいえ。トークン内の読み取れる JSON をデコードするだけです。署名検証は正しい鍵を使って別途行う必要があります。
トークンはサーバーに送信されますか?
送信されません。デコード処理はブラウザ内でローカルに実行されます。
デコードできるのに API で失敗するのはなぜですか?
署名検証、audience、issuer、有効期限、not-before、時刻ずれ、scope 不足など、デコード以外の条件で拒否されることがあります。
HTTP ヘッダーからコピーした Bearer トークンも使えますか?
はい。`Bearer ` で始まる場合はプレフィックスを自動で取り除いてからデコードします。
2 セグメントしかないトークンも読めますか?
未署名または非標準のトークンでは署名セグメントが省略されることがあります。内容確認はできますが、署名済み JWT として扱うべきではありません。