ガイド

JWTを検証せずにデコードして内容を確認する方法

JWTを3つの部分としてデコードし、ヘッダーとペイロードを確認できます。署名検証は任意で、実行する場合は秘密情報を指定します。

ツール JWTデコーダー

JWTを検証せずに内容を確認する

JWT形式のトークンを、署名の正しさを確認する前に内容確認したいときに使います。トークンを3つのピリオド区切り部分として読み取り、先頭2部分をデコードしてヘッダーとペイロードを確認できます。署名検証は初期状態では無効なので、まず構造や記載内容を点検する用途に向いています。

入力から署名検証までの手順

  1. JWT形式のトークン全体を入力欄に貼り付けます。前後が空白だけの入力は処理できないため、トークン本体が入っていることを確認してください。
  2. 実行します。トークンはピリオドで区切られた3部分である必要があります。1つ目と2つ目はBase64urlとしてデコードされた後、UTF-8のJSONとして読み取られます。3つ目は署名データとしてデコードされ、元の文字列も保持されます。
  3. 表示されたヘッダーとペイロードを確認します。値がオブジェクトの場合は、アルゴリズム、トークン種別、発行者、対象者、対象 audience、時刻に関する標準的なクレームなど、選択された情報を確認できます。
  4. 署名まで確認する必要がある場合だけ、検証を有効にして秘密情報を入力します。ヘッダーに記載されたアルゴリズムを使って検証され、署名が有効か無効かという結果が示されます。検証を有効にして秘密情報を指定しない場合は、検証されず問題として記録されます。

結果の読み方と確認できる範囲

成功した結果では、デコードされたヘッダー、ペイロード、署名データを分けて確認できます。ヘッダーやペイロードの内容を読めても、それは署名検証の結果を示すものではありません。検証を実行した場合は、秘密情報とヘッダーのアルゴリズムを使った検証結果を別に確認してください。

先頭2部分のBase64url、UTF-8、JSONのいずれかに問題があると、問題の内容が集められ、全体は失敗になります。3つ目の部分も空でないのに正しくデコードできなければ問題になります。したがって、表示された失敗は、入力の区切り数だけでなく各部分の形式も見直す手がかりになります。

使用例

受け取った3部分のJWTに含まれる発行者や対象者を先に確認し、必要になった段階で署名検証を追加します。

3部分のJWTを入力し、初期状態のまま実行してヘッダーとペイロードを確認します。署名も確認したい場合は、検証を有効にして秘密情報を指定します。

成功した結果として、ヘッダー、ペイロード、署名データが分けて表示されます。検証を有効にして秘密情報を指定した場合は、署名が有効か無効かという検証結果も確認できます。

制限事項

  • 3部分以外のトークンは対象外です。また、デコードの問題や検証に必要な秘密情報がない状態では、成功した検証結果は得られません。

よくある間違い

  • 入力が空白だけ、またはピリオドで区切られた部分が3つではないと失敗します。トークン全体を貼り付け、区切り数が3つの部分になっているか確認してから再実行してください。

よくある質問

どのようなトークンを入力できますか?

3つのピリオド区切り部分を持つトークンを入力すると、先頭2部分がデコードされ、ヘッダーとペイロードとして確認できます。3部分以外の形式は処理に失敗します。

署名検証は必須ですか?

初期状態では署名検証は無効です。署名を確認するときは検証を有効にし、秘密情報を指定してください。秘密情報なしで検証を有効にすると、検証は行われず問題として記録されます。

デコードに失敗したときは何を確認しますか?

先頭2部分のBase64url、UTF-8、JSONの読み取りに問題があると、問題が記録されて全体が失敗になります。3つ目も、空でない部分をデコードできない場合は問題になります。

ツール

JWTデコーダー