JWT
JWT ユーティリティは JSON Web Token をデコードして検査し、秘密鍵なしで構造、クレーム、セキュリティ特性を確認できます。
ツールの使い方
- 入力フィールドに JWT を貼り付けます。標準のドット区切りの 3 部構成を受け付けます。
- ツールがヘッダーとペイロードを自動で分割し、Base64 デコードします。
- 下の 3 つの領域でデコード結果を確認します。
検査に鍵情報は必要ありません。署名検証は別の操作です。
デコード結果の領域
ヘッダー
アルゴリズム(alg)と鍵 ID(kid)を表示します。アルゴリズムに関する警告もここに表示されます。
| 条件 | 警告レベル |
|---|---|
alg: none | 緊急:トークンに署名がない |
alg: HS256 | 注意:共通鍵方式。弱い秘密値では総当たり攻撃が可能 |
alg: RS256 または ES256 | 警告なし |
ペイロード
すべてのクレームを値と推定型とともに表示します。デコードされる標準クレームは次のとおりです。
| クレーム | 意味 |
|---|---|
iss | 発行者 |
sub | 主体(通常はユーザー ID) |
aud | 想定される受信者 |
exp | 有効期限 |
nbf | 有効期間の開始時刻 |
iat | 発行時刻 |
jti | JWT ID(トークンの一意な識別子) |
カスタムクレームは標準クレームの下に表示されます。
有効期限の確認
トークンに exp クレームがある場合、現在時刻と比較して次のいずれかを表示します。
- 有効:トークンの期限は切れていません。
- 期限切れ:有効期限を過ぎています。期限切れからの経過時間も表示します。
- 有効期限なし:トークンに
expクレームがありません。
署名
Base64url エンコードされた署名をそのまま表示します。鍵を指定しない限り、検証は試みません。この領域は参照用であり、署名の存在を確認するためのものです。
確認すべき点
- 一部のライブラリは
alg: noneのトークンを検証なしで受け入れます。対象アプリケーションが受け入れるかテストしてください。 - 長期間有効なトークン(
expがiatの何日も、あるいは何年も先)は、アプリケーションがトークンをローテーションしていない可能性を示します。 - 暗号化されていないペイロードのクレームに保存された機密データ(個人識別情報、内部 ID、ロールのフラグ)は、トークンを持つ誰でも読み取れます。
jtiのないトークンは個別に失効させることができません。