JWTデバッガーは、JSON Web Token(JWT)をデコードして検査します。ヘッダー、ペイロード、署名をパースし、クレームの表示や有効期限のチェックが可能です。認証トラブルのデバッグ、OAuth/OIDCトークンの検査、外部ツールを使わずにJWTの内容を確認するのに最適です。
JWT(JSON Web Token)は、OAuth、OIDC、セッショントークン、独自の API 認証など、現代の API における認証トークンの主流フォーマットです。しかし JWT はそのままでは意味不明な文字列にしか見えません——ドットで連結された3つの Base64URL エンコード文字列です。JWT Debugger はこの文字列をヘッダー、ペイロード、署名の3つの部分に分解し、それぞれをデコードして、JSON の内容をシンタックスハイライト付きで表示します。
ペイロードは iss(発行者)、sub(サブジェクト)、exp(有効期限)、iat(発行日時)、nbf(有効開始日時)、aud(対象者)、jti(トークン ID)といった既知のクレームとして解析されます。有効期限は Unix タイムスタンプから人が読める形式に変換され、有効・期限切れ・まだ有効でない、のいずれかとして表示されます。このツールは署名の検証は行いません——それにはシークレットキーが必要であり、クライアントサイドのツールの範囲を超えるためです——ただし、トークンに何が含まれているかを正確に示すため、認証まわりの問題を素早くデバッグできます。
ヘッダーのアルゴリズムフィールド(alg)は明示的に表示され、トークンが「none」アルゴリズムを使用している場合には警告も出されます。これは、サーバーが未署名トークンを拒否しない場合に署名検証を完全にバイパスできてしまう、よく知られた JWT の脆弱性です。HMAC 系のアルゴリズム(HS256、HS384、HS512)と RSA/ECDSA 系のアルゴリズム(RS256、ES256)はどちらも識別・ラベル付けされるため、その API が共有シークレット方式と公開鍵方式のどちらの署名方式を使っているかがすぐに分かります。実際のトークンの多くはロールやテナント ID のようなアプリケーション固有のデータを含んでいるため、標準外のカスタムクレームも省略せずすべて表示されます。
JWTをドットで分割し、ヘッダー、ペイロード、署名の各セグメントをBase64URLデコードします。それぞれ個別に、構文ハイライト付きで表示されます。
アルゴリズム(HS256、RS256、ES256)とトークンタイプを表示します。サービスがどの署名方式を使用しているかを素早く確認できます。
JSONペイロードをパースし、色分けされたキー、文字列、数値、真偽値でレンダリングします。すべてのクレームを一目で確認できます。
exp(有効期限)、iat(発行時刻)、nbf(開始時刻)をチェックします。トークンが有効か、期限切れか、あるいはまだ有効化されていないかを人間が読みやすい形式で表示します。
登録済みクレーム(iss、sub、aud、exp、iat、nbf、jti)を認識し、その意味を素早く参照できる注釈を提供します。
生のトークンがセグメントごとに異なる色で表示されるため、ヘッダー、ペイロード、署名を視覚的に区別できます。
APIが401 Unauthorizedを返した場合、トークンを貼り付けて、期限切れ、形式異常、または発行者が異なっていないかを確認します。
OAuth/OIDCフローから返されたアクセストークンやIDトークンをデコードして、付与されたスコープ、ユーザーID、有効期限を確認します。
必要なクレーム(ロール、権限、テナントIDなど)がトークンに含まれているかを、バックエンドに渡す前に確認します。
バックエンドサービスで生成されたトークンをデコードし、ペイロードがサービス側で意図した内容と一致しているか検証します。
セキュリティレビューの際、localStorageやcookieに保存されたトークンをデコードして、クライアント側でどのような機密データが露出しているかを評価します。
DevSuite ProのドックでJWTアイコンをクリックします。トークン入力フィールドと3つのデコードペインを備えたパネルが開きます。
APIレスポンス、Authorizationヘッダー、cookie、localStorageなどのJWTを貼り付けます。「Bearer 」プレフィックスの有無にかかわらず動作します。
ヘッダーペインにはアルゴリズムとタイプが表示されます。バックエンドが期待する方式(多くの場合HS256やRS256)が使われているか確認してください。
ペイロードペインにはすべてのクレームが構文ハイライト付きで表示されます。標準クレーム(iss、sub、expなど)は、その用途を示すフラグが立てられます。
ステータスバッジには「有効」「期限切れ」「開始前」と表示されます。期限切れの場合、それが認証エラーの原因である可能性が高いです。