portfolios.tools

JWTデコーダーとクレーム確認ツール

3つの部分からなるコンパクトなJSON Web Tokenをデコードして、ヘッダーとクレームを確認し、時刻に関するクレームを現在の時計と比較します。デコードは署名を検証せず、信頼性も証明しません。

トークン入力

トークンはページのメモリー内だけに保持され、保存されません。ページ読み込み時に、以前の版がブラウザー保存領域に残したトークンを削除します。このツールはAPIへトークンを送信しません。

形式の確認には、実際のアカウントにアクセスできないテスト用トークンを使ってください。アカウントへのアクセスを許す可能性があるトークンを共有しないでください。

デコードしたトークン構造

ヘッダーとペイロードを確認するには、3つの部分からなるコンパクトJWTを貼り付けてください。

JWT確認ツールの仕組み

署名付きのコンパクトJWTは、ピリオドで区切られた3つのBase64url部分で構成されます。JSONヘッダー、クレームを含むJSONペイロード、署名部分です。このツールはヘッダーとペイロードをUTF 8のJSONオブジェクトとしてデコードします。署名、発行者、対象者、権限、認可は検証しません。

3つの部分からなるコンパクトトークンを入力してください。デコードしたヘッダーとペイロードは整形済みJSONで表示され、表にはiss、sub、aud、exp、iat、nbfなどの一般的なクレームが表示されます。このツールは5つの部分からなる暗号化形式に対応していません。保護ヘッダーはJSONとして読める場合がありますが、暗号化されたペイロードのクレームは復号しないと確認できません。

exp、iat、nbfのNumericDate値は、UTCエポックからの秒数として解釈され、小数秒も扱います。有効期限と有効開始時刻を表示中の時計と比較します。値がない場合と形式が不正な場合は別々に表示します。この比較でトークンやクレームが有効と確認されるわけではありません。

署名部分が存在すると表示されても、3番目の部分に文字があることを示すだけです。暗号学的な署名値、アルゴリズム、鍵、発行者は検証しません。発行元のサービスがトークンを検証するまで、デコードしたクレームを信頼しないでください。

手順

  1. 3つの部分からなるコンパクトJWTをトークン欄に貼り付けます。
  2. デコード済みのヘッダー、ペイロード、署名部分、表示されたクレームを確認します。
  3. expとnbfを表示中の時計と比較し、信頼する前に想定する鍵と規則でトークンを検証してください。

計算例

次の例のトークンを貼り付けます: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJodHRwczovL2lzc3Vlci5leGFtcGxlIiwic3ViIjoidXNlci0xMjMiLCJhdWQiOiJhcGkuZXhhbXBsZSIsImV4cCI6MTg5MzQ1NjAwMCwiaWF0IjoxODkzNDUyNDAwLCJuYmYiOjE4OTM0NTI0MDB9.c2ln. algはHS256、typはJWTのヘッダーと、発行者、主体、対象者、有効期限、発行時刻、有効開始時刻のクレームにデコードされます。

この例は3番目の部分が空でないため、署名の文字列が存在すると表示されます。署名自体は検証しません。expは2030年1月1日00:00 UTC、iatとnbfは2029年12月31日23:00 UTCに相当します。比較結果は現在の時計によって変わります。

この確認ツールを使う場面

開発や問題調査で、3つの部分からなるコンパクトトークンのJSONヘッダーとクレームを確認できます。

署名と認可は別の信頼できるサービスで検証してください。検証に成功するまで、デコード内容を信頼しないでください。

よくある誤解

読めるJSON、署名部分の存在、有効期限前のexpクレームを真正性の証明とみなさないでください。デコードと時刻比較は暗号学的検証ではありません。

iss、aud、sub、独自の権限がペイロードにあるだけで真実だと考えないでください。サービス側が署名を検証し、クレームと認可の規則を適用する必要があります。

JWTの構造と時刻クレーム

コンパクトJWT = Base64url(UTF8(JSONヘッダー)) . Base64url(UTF8(JSONペイロード)) . 署名部分

有効期限到達 = 現在のUTC時刻を秒で表した値 ≥ exp

有効開始時刻到達 = 現在のUTC時刻を秒で表した値 ≥ nbf

NumericDate = 1970 01 01 00:00:00 UTCからの秒数

このツールは3つの部分からなる署名付きコンパクト形式を確認します。パディングなしのBase64urlとUTF 8を厳密にデコードし、ヘッダーとペイロードがJSONオブジェクトであることを求めます。有効期限や開始時刻の結果は時計との比較であり、署名検証や認証判断ではありません。

対象範囲と制限

このページは3つの部分からなるコンパクトJWTを確認し、ヘッダーとペイロードをデコードします。署名、アルゴリズム、鍵を検証せず、発行者や対象者を確認せず、権限を評価せず、アプリがトークンを受け入れるべきか判断しません。5つの部分からなるJWEを復号せず、鍵の取得、発行者やトークンサービスへの接続もしません。対応する数値精度を超えるJSON数値は拒否され、表示日時の精度はミリ秒です。時刻クレームはブラウザーの時計と比較するため、サービス側の時計と異なる場合があります。トークンは保存されませんが、開いたページを見られる人は内容を確認できます。

用語

JWT
JSON Web Token。クレームを表す構造で、署名、改ざん防止、暗号化が施される場合があります。
クレーム
トークンのペイロードにある名前付きの値です。発行者、主体、対象者、時刻などを表します。
NumericDate
1970年1月1日00:00:00 UTCからの秒数です。小数秒も使えます。

よくある質問

デコードできたトークンは有効ですか。

いいえ。デコードで分かるのは読み取れる構造だけです。信頼できるサービスが発行したことや、内容が信頼できることは証明されません。

このツールは署名を検証しますか。

いいえ。3番目の部分に文字列があるかだけを表示します。検証には想定するアルゴリズムと発行者を信頼する鍵が必要です。

なぜ5つの部分からなるトークンに対応していないのですか。

5つの部分からなるコンパクトJWEでは、保護ヘッダーをJSONとして読める場合があります。暗号化されたペイロードのクレームは復号しないと確認できません。このツールは3つの部分からなるコンパクトJWTだけに対応します。

ここでexp、iat、nbfは何を意味しますか。

UTCエポックからの秒数で表すNumericDateクレームです。expとnbfを現在の時計と比較し、iatは日時として表示します。欠落や不正な値は別々に示します。この比較はトークンを検証しません。

署名部分があると何が分かりますか。

3番目の部分が空でないことだけです。署名のバイト列、アルゴリズム、鍵、発行者、対象者、権限は検証しません。

関連ツール

Base64ペイロードエンコーダーでは、個別のエンコード部分を確認できます。署名とクレーム要件は、IDプロバイダーまたはサービスの説明を参照してください。