JWTデコーダー
ヘッダー、ペイロード、クレームを確認するためにJSON Web Tokenをデコードおよび検査します。
JWTを貼り付けて内容をデコードしてください。
JWTデコーダー — JSON Web Tokenを無料でオンラインでデコードして検査
私たちの無料オンラインJWTデコーダーを使用すると、任意のJSON Web Tokenを貼り付けるだけで、直ちにヘッダー、ペイロード、署名のデコード済み情報を確認できます。コードを書かずに、発行者、対象者、有効期限、対象などのトークンクレームを検査できます。すべての処理はあなたのブラウザ内で行われます — トークンはサーバーに送信されることはありません。
JSON Web Token(JWT)とは?
JSON Web Token(JWT)は、JSONオブジェクトとして情報を安全に伝達するためのオープンスタンダード(RFC 7519)です。JWTは、ウェブアプリケーションでの認証および認可に広く使用されています。ウェブサイトにログインすると、サーバーは通常、ブラウザが後続のリクエストで自身のアイデンティティを証明するために使用するJWTを返します。
JWTはドットで区切られた3つの部分から構成されています:
- ヘッダー — トークンの種類と署名アルゴリズムを指定(例:
{"alg": "HS256", "typ": "JWT"}) - ペイロード — クレーム(通常はユーザーに関する情報や追加データ)を含む(例:
{"sub": "1234567890", "name": "John Doe", "iat": 1516239022}) - 署名 — トークンが改ざんされていないことを確認するために使用
各部分はBase64Urlエンコードされており、トークンはコンパクトでURLに安全です。典型的なJWTの例はeyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5cです。
このJWTデコーダーの使い方
- JWTを貼り付け — 入力フィールドにJWTを貼り付けます。トークンはドットで区切られた3つのBase64Urlエンコードされた部分からなる文字列である必要があります。
- デコード済みヘッダーを確認 — アルゴリズム、トークンタイプ、その他のメタデータは即座に表示されます。
- デコード済みペイロードを確認 — すべてのクレームが、人間にとって読みやすいタイムスタンプ付きで整形されたテーブルに表示されます。
- トークンの状態を確認 — ツールは
expクレームに基づいてトークンが期限切れかどうかを自動的にチェックします。 - 任意のセクションをコピー — ヘッダーまたはペイロードの隣にあるコピーボタンをクリックして、デコード済みJSONをコピーできます。
すべてのデコード処理はJavaScriptの組み込みatob関数を使用して、あなたのブラウザ内でローカルで行われます。ネットワーク経由でのデータ送信はありません。
主な機能
| 機能 | ベネフィット |
|---|---|
| 即時デコード | タイピング中にヘッダーとペイロードがデコードされる |
| フォーマットされたJSON出力 | 構文ハイライト付きで整形されたJSON |
| タイムスタンプ変換 | iat、exp、nbfクレームが人間にとって読みやすい日付として表示される |
| 有効期限チェック | expクレームに基づいて自動的に期限切れトークンを検出・強調 |
| クレームの説明 | sub、iss、audなどの一般的なクレームがラベル付けされる |
| クリップボードへのコピー | ヘッダーまたはペイロードのデコード済みJSONをワンクリックでコピー可能 |
| データ送信ゼロ | すべてのデコード処理がブラウザ内でローカルで行われる |
一般的なJWTクレーム参考
| クレーム | 名称 | 説明 |
|---|---|---|
iss |
発行者 | トークンを発行した主体を識別 |
sub |
対象者 | トークンの対象となる主体を識別 |
aud |
対象 | トークンが意図されている受信者を識別 |
exp |
有効期限 | トークンがもはや有効でなくなる日時 |
nbf |
有効開始時刻 | トークンが有効になる前の日時 |
iat |
発行時刻 | トークンが発行された日時 |
jti |
JWT ID | トークンの一意な識別子 |
name |
名前 | ユーザーのフルネーム |
email |
メールアドレス | ユーザーのメールアドレス |
role |
ロール | ユーザーのロールまたは権限レベル |
scope |
スコープ | 授与された権限またはスコープ |
URLにデータを含めたい場合は、URLエンコーダー/デコーダーをご利用ください。Base64エンコードが必要な場合は、Base64エンコーダー/デコーダーをご利用ください。
実際の使用ケース
認証問題のデバッグ
ユーザーが保護されたリソースにアクセスできないと報告された場合、最初のステップはそのユーザーのJWTを検査することです。トークンをデコードして、期限切れかどうか、subクレームが予期されるユーザーIDと一致しているか、roleクレームが必要な権限を含んでいるかを確認します。
API構築やテスト中のトークン内容の検証
APIを構築またはテストしている間、サーバーが正しいクレームを含むトークンを発行していることを頻繁に確認する必要があります。トークンをデコーダーに貼り付けて、テストスクリプトを書かずにペイロードを迅速に確認できます。
第三者トークンの検査
Google、GitHub、Auth0などのOAuthプロバイダと統合する際、認証フローからJWTを受け取ります。これらのトークンをデコードすることで、利用可能なクレームを理解し、ユーザーモデルにマッピングする方法を把握できます。
JWTの仕組みの学習
JWTに初めて触れる場合は、実際のトークンをデコードするのが最良の方法です。ヘッダー、ペイロード、署名の構造を理解し、アルゴリズムやセキュリティのベストプラクティスを学習できます。
セキュリティのベストプラクティス
- 機密情報の保存:JWTに機密情報(パスワード、クレジットカード情報など)を保存しないようにしてください。トークンは信頼できるネットワーク経由でしか送信しないでください。
- HTTPSの使用:トークンの送信中にHTTPSを使用して、通信を暗号化し、中間者による盗聴や改ざんを防ぎます。
- 有効期限の設定:トークンに有効期限を設定し、長期的な使用を避けてください。これにより、トークンが漏洩した場合のリスクを軽減できます。
- 署名の検証:受け取ったトークンの署名を検証し、改ざんされていないことを確認してください。署名は信頼できる秘密鍵を使用して生成される必要があります。
まとめ
このガイドでは、JWTデコーダーの使用方法とその機能について説明しました。JWTはセキュアな通信に非常に有用ですが、適切な使用方法とセキュリティ対策を講じることで、その利点を最大限に活用できます。上記のベストプラクティスに従い、安全なアプリケーション開発を行ってください。