JWTトークンを簡単デコード|無料JWTデコーダーのご紹介

  • Webサービス
  • Web制作/システム開発

WebアプリケーションやAPI開発では、認証・認可の仕組みとしてJWTを扱う場面があります。

ログイン後のアクセストークン、API認証、外部サービス連携、OAuth / OpenID Connect関連の実装などで、JWT形式のトークンが使われることがあります。

JWTはコンパクトで扱いやすい一方、トークンの中身をそのまま見ても内容を把握しづらく、ヘッダー、ペイロード、署名を分解して確認する必要があります。

そこでメディアソート株式会社では、JWTトークンをブラウザ上で簡単にデコードできる無料ツール「JWTデコーダー」を公開しています。

JWTとは

JWTは、JSON Web Tokenの略です。

認証情報やユーザー情報などのクレームを、コンパクトなトークン形式でやり取りするために使われます。

JWTは主に、ヘッダー、ペイロード、署名の3つの部分で構成されています。

それぞれの要素がBase64URLエンコードされ、ドットで連結された形式になっています。

一般的には、次のような形式です。

xxxxx.yyyyy.zzzzz

1つ目がヘッダー、2つ目がペイロード、3つ目が署名です。

JWTデコーダーとは

JWTデコーダーは、JWTトークンを入力するだけで、ヘッダー、ペイロード、署名を分解して表示できる無料Webツールです。

トークンを貼り付けると、内容がリアルタイムでデコードされ、JSONとして確認できます。

また、標準クレームの日本語解説、有効期限チェック、署名検証にも対応しています。

API開発、認証処理のデバッグ、外部サービス連携、ログ調査、トークンの内容確認などに便利です。

ヘッダー・ペイロード・署名を可視化

JWTは、ヘッダー、ペイロード、署名の3つに分かれています。

ヘッダーには、トークンの種類や署名アルゴリズムなどの情報が含まれます。

ペイロードには、ユーザーID、発行者、有効期限、発行日時、権限情報など、トークンで扱うクレームが含まれます。

署名は、トークンが改ざんされていないかを確認するために使われます。

JWTデコーダーでは、これらを分解して表示できるため、トークンの構造を確認しやすくなります。

標準クレームを日本語で確認できる

JWTには、よく使われる標準クレームがあります。

たとえば、iss は発行者、sub は主体、aud は対象者、exp は有効期限、nbf は有効開始時刻、iat は発行時刻、jti はJWT IDを意味します。

JWTデコーダーでは、こうした標準クレームを日本語で確認できます。

英語の略称だけでは意味がわかりにくい場合でも、各クレームの役割を把握しやすくなります。

有効期限を確認できる

JWTで特に確認することが多いのが、有効期限です。

exp クレームには、トークンの有効期限がUnixタイムスタンプで入ることがあります。

そのままでは人間が日時として確認しづらいため、デバッグ時に不便です。

JWTデコーダーでは、タイムスタンプを読みやすい日時に変換して確認できます。

トークンがすでに期限切れになっているか、まだ有効かを確認しやすくなります。

署名検証にも対応

JWTは、デコードするだけであれば誰でも中身を確認できます。

ただし、デコードできることと、そのトークンが信頼できることは別です。

JWTを信頼するには、署名が正しいかどうかを確認する必要があります。

JWTデコーダーでは、シークレットキーや公開鍵を入力して署名検証を行えます。

HS256、HS384、HS512などのHMAC系アルゴリズム、RS256、RS384、RS512などのRSA系、PS256、PS384、PS512などのRSA-PSS系、ES256、ES384、ES512などのECDSA系に対応しています。

HS256とRS256の違い

JWTでよく使われる署名方式に、HS256とRS256があります。

HS256は、同じシークレットキーで署名と検証を行う方式です。

実装は比較的シンプルですが、検証する側にも同じシークレットキーを渡す必要があります。

RS256は、秘密鍵で署名し、公開鍵で検証する方式です。

検証側に秘密鍵を渡す必要がないため、複数サービス間でトークンを検証する構成に向いています。

JWTデコーダーでは、こうした署名方式に応じた検証が可能です。

alg: none には注意

JWTには、署名なしを示す alg: none という指定が存在します。

署名がないJWTは、改ざん検証ができないため、認証・認可用途で信頼してはいけません。

JWTデコーダーでは、alg: none のような注意が必要なトークンを確認しやすくなっています。

開発中の確認では便利な場合もありますが、本番環境では署名付きのJWTを適切に検証することが重要です。

ブラウザ内で処理されるため安心

JWTには、ユーザーID、メールアドレス、権限情報、有効期限など、認証に関わる情報が含まれている場合があります。

そのため、本番環境のJWTを外部サービスに貼り付けることは避けるべきです。

Mediassort ToolsのJWTデコーダーは、ブラウザ内で処理される設計です。

入力したトークンを外部サーバーに送信せず、利用者の端末上でデコード・確認できます。

ただし、JWTは機密情報を含む可能性があるため、扱う際は社内ルールやセキュリティ方針に従ってください。

使い方

使い方は簡単です。

まず、確認したいJWTトークンを入力欄に貼り付けます。

入力すると、ヘッダー、ペイロード、署名が自動で分解されます。

ペイロード内の標準クレームや有効期限を確認します。

署名検証を行う場合は、利用しているアルゴリズムに応じて、シークレットキーまたは公開鍵を入力します。

署名が有効かどうかを確認し、トークンの改ざん有無や設定内容を確認します。

こんな場面で便利です

JWTデコーダーは、次のような場面で便利です。

API認証で使っているJWTの中身を確認したいとき。

アクセストークンの有効期限を確認したいとき。

expiatisssubaud などのクレームを確認したいとき。

ログイン処理や認証処理のデバッグをしたいとき。

OAuth / OpenID Connect連携時のトークン内容を確認したいとき。

署名検証が失敗する原因を調べたいとき。

HS256、RS256、ES256などの署名方式を確認したいとき。

JWTの構造を学習・確認したいとき。

JSONフォーマッターとの併用もおすすめ

JWTのヘッダーやペイロードは、JSON形式のデータです。

JWTデコーダーで中身を確認したあと、必要に応じてJSONフォーマッターで整形・検証すると、データ構造をさらに確認しやすくなります。

Mediassort Toolsでは、JSONの整形・バリデーション・ミニファイに対応した「JSONフォーマッター」も公開しています。

APIレスポンスや認証関連のデバッグでは、JWTデコーダーとJSONフォーマッターをあわせて使うと便利です。

JWTデコーダーはこちら

メディアソート株式会社では、Web制作・開発に役立つ無料ツール集「Mediassort Tools」を公開しています。

JWTデコーダーでは、JWTトークンのデコード、ヘッダー・ペイロード・署名の分解表示、標準クレームの日本語解説、有効期限チェック、署名検証をブラウザ上で利用できます。

API開発、認証処理のデバッグ、トークン確認にぜひご活用ください。

JWTデコーダーはこちら
https://tools.mediassort.jp/tools/jwt-decoder/