JWTデコーダー

JWT(JSON Web Token)を簡単にデコードします。

JWTトークンを入力

ヘッダー

読み取り専用

ペイロード

読み取り専用

JWTデコーダーとは?

JWTデコーダーは、JWT (JSON Web Token) を簡単にデコードおよび検証できる無料のオンラインツールです。このツールを使用することで、JWTトークンからヘッダーとペイロードの内容をリアルタイムで確認でき、セキュリティ検証やデバッグ作業を効率化します。

開発者やセキュリティエンジニア、システム管理者にとって、認証トークンの内容を迅速に確認したり、署名を検証したりする際に非常に便利です。JWTは現代のWebアプリケーションやAPIで広く使用されている認証メカニズムであり、このツールはその取り扱いをシンプルかつ効率的にします。

このツールが解決する課題

  • トークンの検証と解析: APIから受け取ったJWTの内容を素早く確認し、適切なデータが含まれているか検証
  • デバッグの効率化: 認証問題のトラブルシューティング時に、トークンの内容を即座に確認可能
  • 開発サイクルの迅速化: 開発やテスト段階でトークンの生成と検証を繰り返し行う際の作業効率向上
  • セキュリティ監査: トークンに含まれる権限やクレームが適切かどうかのセキュリティチェック
  • 教育目的: JWT構造の理解や学習のための視覚的ツールとして活用可能

使い方

  1. JWTトークンを入力: デコードおよび検証したいJWTトークンを入力フィールドに貼り付けます
  2. リアルタイムでデコード: トークンのヘッダーとペイロードが即座にデコードされ、JSONフォーマットで表示されます
  3. コピー機能の利用: デコードされた情報を必要に応じてクリップボードにコピー可能
  4. エラー確認: 無効なトークン形式の場合、エラーメッセージで問題点が表示されます

JWT構造の詳細解説

JWTは3つの部分から構成される文字列で、それぞれピリオド(.)で区切られています:

ヘッダー (Header)

トークンの種類と使用している署名アルゴリズムを示す部分です。通常、以下のような情報が含まれます:

{
  "alg": "HS256",
  "typ": "JWT"
}
  • alg: 署名に使用されるアルゴリズム(例:HS256、RS256、ES256など)
  • typ: トークンのタイプ(通常は「JWT」)

ペイロード (Payload)

トークンに含まれる実際のデータ(クレーム)を格納する部分です。クレームには以下の3種類があります:

  1. 登録済みクレーム: 標準化されたクレーム
    • iss (発行者)
    • sub (サブジェクト)
    • exp (有効期限)
    • iat (発行時刻)
    • nbf (有効開始時刻)
    • jti (JWT ID)
  2. 公開クレーム: カスタムクレームで、名前の衝突を避けるため命名規則に従うべきもの
  3. プライベートクレーム: 当事者間で合意された非公開のカスタムクレーム
{
  "sub": "1234567890",
  "name": "山田太郎",
  "admin": true,
  "iat": 1622600000,
  "exp": 1622603600
}

署名 (Signature)

ヘッダーとペイロードがエンコードされた後、指定された秘密鍵と共に署名アルゴリズムにかけられた結果です。これにより、トークンの完全性が保証されます。このツールでは署名の検証機能は提供していませんが、ヘッダーとペイロードの内容を確認できます。

使用例

例: ユーザー認証トークンの解析

APIから受け取ったJWTを解析して、含まれるユーザー情報や権限を確認する場合:

eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IuWxseeUsOWkqumDjiIsImFkbWluIjp0cnVlLCJpYXQiOjE1MTYyMzkwMjJ9.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c

このトークンをデコードすると、以下のような情報が表示されます:

ヘッダー:

{
  "alg": "HS256",
  "typ": "JWT"
}

ペイロード:

{
  "sub": "1234567890",
  "name": "山田太郎",
  "admin": true,
  "iat": 1516239022
}

セキュリティに関する注意点

  1. JWTの内容は秘密ではない: JWTはBase64エンコードされているだけで暗号化されていません。機密情報はペイロードに含めないでください。
  2. 署名の重要性: トークンの改ざんを防ぐため、適切な署名アルゴリズムと強力な秘密鍵の使用が不可欠です。
  3. 有効期限の設定: セキュリティリスクを軽減するため、適切な有効期限を設定しましょう。
  4. 公共の場でのデコード: 機密性の高いトークンを公共のオンラインツールでデコードする際は注意が必要です。このツールは全てクライアントサイドで処理され、データはサーバーに送信されません。

技術的背景

JWT(JSON Web Token)は、JSON形式の情報をコンパクトかつ自己完結型のトークンとして安全に転送するためのオープンスタンダード(RFC 7519)です。主にユーザー認証やアクセス制御、情報交換などに使用されます。

Base64URLエンコーディングを使用してヘッダーとペイロードをエンコードし、指定されたアルゴリズムで署名を生成します。これにより、情報の完全性を保証しながら、セキュアなクレーム転送が可能になります。

このツールは、JWT形式の文字列を解析し、含まれる情報を人間が読みやすい形式で表示するためのインターフェースを提供します。