暗号ツール·7 分

JWT トークンのデコード方法:開発者ガイド

JWT トークンをデコードしてヘッダー、ペイロード、クレームを検査する方法を学びます。無料ブラウザ内デコーダー付き。

JWT とは何か?なぜデコードするのか?

JSON Web Token (JWT) は、二者間でクレーム(claims)を伝送するためのコンパクトで URL セーフなトークン形式です。最も一般的にはクライアントとサーバー間で使用されます。JWT は 3 つの Base64URL エンコードされた部分をドットで区切った構造で、ヘッダー、ペイロード、署名から成ります。

JWT のデコードとは、ヘッダーとペイロードを読み取り、どのようなクレームが含まれているかを理解することです。認証フローのデバッグ、API レスポンスのトークン確認、あるいは「代わりにどんなデータが送られているのか」を理解するために不可欠です。重要なのは、デコードは署名を検証しないということです。検証には発行側の秘密鍵または公開鍵が必要です。

よくある用途

  • 認証フローのデバッグ:ログイン API が返すトークンを確認
  • クレームの監査:有効期限、発行者、対象、カスタムフィールドの確認
  • ローカル開発:localStorage や cookie に保存されたトークンを読む
  • 学習:モダン Web アプリの認証の仕組みを理解する
  • セキュリティレビュー:トークンにうっかり含まれた機密データを発見

方法 1:UtilBoxx の無料 JWT デコーダーを使う(推奨)

当社の JWT デコーダー は任意の JWT を解析し、ヘッダーとペイロードを読みやすい形式で表示し、タイムスタンプを人間の日付に変換します。手順は次のとおりです:

  1. utilboxx.com/ja/tools/crypto/jwt にアクセス
  2. 入力欄に JWT を貼り付け
  3. ヘッダーとペイロードが即座にデコード表示される
  4. 有効期限、発行時刻、その他のクレームを確認
  5. ワンクリックで任意のセクションをコピー

この方法の長所

  • 完全にブラウザ内で動作 — トークンは端末から出ない
  • JSON を自動的に整形して可読化
  • 期限切れ・期限間近のトークンをハイライト
  • モバイル対応でテキスト入力欄が大きめ
  • 100% 無料、登録不要、追跡なし

方法 2:jwt.io を使う

jwt.io(Auth0 提供)は人気の JWT プレイグラウンドです。トークンを貼り付けるとヘッダーとペイロードがデコードされ、秘密鍵を提供すれば署名の検証もできます。広く使われており、多くのライブラリのアルゴリズムに対応します。

方法 3:使い慣れた言語でデコードする

Node.js では `jsonwebtoken` ライブラリを使用:

```javascript const jwt = require('jsonwebtoken'); const decoded = jwt.decode('eyJhbGciOi...', { complete: true }); console.log(decoded.header); console.log(decoded.payload); ```

Python では `PyJWT` ライブラリを使用:

```python import jwt payload = jwt.decode("eyJhbGciOi...", options={"verify_signature": False}) print(payload) ```

`verify_signature: False` オプションは重要です — 署名を検証せずにデコードすることをライブラリに指示します。これは検査時にやりたいことです。

よくある質問

JWT をオンラインでデコードするのは安全ですか?

デコードは安全です。中身は秘密ではなく、Base64URL でエンコードされているだけです(暗号化ではない)。ただし、本番環境のトークンに機密データが含まれる可能性がある場合は、信頼できないサービスに貼り付けないでください。UtilBoxx のデコーダーはブラウザ内でローカルに動作するので、トークンは端末から出ません。

デコードした JWT は信頼できますか?

いいえ。デコードはクレームを表示するだけで、署名は検証しません。トークンはデコードできても正当であるとは限りません。クレームを信頼する前に、必ず発行者の秘密鍵または公開鍵で署名を検証してください。

デコードと検証の違いは?

デコードは内容を読みます。検証は暗号鍵を使ってトークンが信頼できる発行者によるもので、改竄されていないことを確認します。ローカル検査にはデコードで十分です。セキュリティ判断には検証が必要です。

JWT にはどんなクレームがよく含まれますか?

標準クレームには `iss`(発行者)、`sub`(サブジェクト)、`aud`(オーディエンス)、`exp`(有効期限)、`iat`(発行時刻)、`nbf`(発効時刻)があります。カスタムクレームは `role`、`email`、`user_id` などアプリごとに異なります。

結論

JWT のデコードは開発者の日常業務です。高速でプライベートなブラウザ内体験には UtilBoxx の JWT デコーダー をブックマークしておくと最も手軽です。