JWT デコーダー / インスペクター / バリデーター
JWTトークンをデコード・検証 — ヘッダー、ペイロード、クレーム、HMAC署名。 すべてブラウザ内で処理されます
| クレーム | 値 | 意味 | Status |
|---|
RSAおよびEC署名検証
RSAおよびEC署名検証にはWeb Crypto APIを介した公開鍵のインポートが必要です。この機能は将来のアップデートで追加予定です。
HMACベースのトークン(HS256、HS384、HS512)については、HMACシークレットオプションで完全な署名検証が利用可能です。
RSAおよびEC署名検証
RSAおよびEC署名検証にはWeb Crypto APIを介した公開鍵のインポートが必要です。この機能は将来のアップデートで追加予定です。
HMACベースのトークン(HS256、HS384、HS512)については、HMACシークレットオプションで完全な署名検証が利用可能です。
JWTとは何ですか?
JSON Webトークン(JWT)は、当事者間で情報を安全に伝達するためのコンパクトでURLセーフなトークン形式です。ドットで区切られた3つのBase64URLエンコード部分で構成されます。
ヘッダー
ヘッダーには通常、署名アルゴリズム(alg)とトークンタイプ(typ)の2つのフィールドが含まれます。
ペイロード(クレーム)
ペイロードにはクレーム(ユーザーやメタデータに関する記述)が含まれます。標準クレームは以下の通りです:
| クレーム | Name | 説明 |
|---|---|---|
iss | 発行者 | トークンの発行者 |
sub | サブジェクト | トークンの対象者 |
aud | オーディエンス | トークンの意図された受信者 |
exp | 有効期限 | トークンの有効期限(Unix秒タイムスタンプ) |
nbf | 有効開始日時 | この時刻以前はトークンが無効 |
iat | 発行日時 | トークンの作成日時 |
jti | JWT ID | トークンの一意識別子 |
署名
署名はヘッダーとペイロードをエンコードし、ドットで結合した後、ヘッダーで指定されたアルゴリズムで署名して作成されます。
base64UrlEncode(header) + "." + base64UrlEncode(payload),
secret
)
よくある誤解
セキュリティのベストプラクティス
Tips
デコードは信頼を意味しない
誰でもJWTをデコードできます — Base64URLは暗号化ではありません。デコードは内容を明らかにしますが、署名検証のみがトークンの改ざんがないことを証明します。
使用前に有効期限を確認
exp(有効期限)クレームはUnix秒タイムスタンプです。トークンを信頼する前に、常に未来の日時であることを確認してください。このツールは時刻ステータスを即座に表示します。
alg: noneはセキュリティリスク
"none"アルゴリズムはトークンに署名がないことを意味します。本番環境でこれを受け入れると、攻撃者がトークンを偽造できます。サーバーでは必ずalg: noneを拒否してください。
JWTはデフォルトで暗号化されていない
標準JWT(JWS)は署名のみで暗号化されていません。ペイロードはトークンを持つ誰でも読めます。JWTペイロードにパスワード、クレジットカード番号、その他の機密情報を保存しないでください。
よくある使い方
APIデバッグ
APIレスポンスのアクセストークンを貼り付けて、クレームの確認、有効期限のチェック、発行者の検証をブラウザから離れずに素早く行えます。
認証フローテスト
OAuth2やOpenID Connectフローの各ステップでトークンをデコードし、正しいスコープ、オーディエンス、クレームが存在するか確認できます。
トークン有効期限モニタリング
トークンの有効期限を確認してセッションタイムアウトの問題をデバッグ。「14分後に期限切れ」のような人間が読める時間差を表示します。
CI/CDパイプライン検証
デプロイ前にサービス間トークンに期待されるクレームが含まれていることを確認。パイプラインログのトークンを貼り付けて検査できます。
セキュリティ監査
トークンの機密データ漏洩(ペイロード内のPII)、弱いアルゴリズム(alg: none)、セキュリティクレームの欠如(exp、aud、iss)を検査できます。