JSON Web Token (JWT) デコーダ完全ガイド
安全なクライアントサイドJWTデコーダへようこそ。この無料オンラインツールは、現代の認証システムを扱う開発者、セキュリティ専門家、または個人にとって不可欠なユーティリティです。JWT(JSON Web Token)を即座にデコードし、クリーンで人間が読みやすい形式で内容を検査できます。テキストエリアにトークンを貼り付けるだけで、ツールがヘッダーとペイロードを解析し、フォーマットされたJSONとして表示します。
このオンラインJWTデコーダの最も重要な特徴は、そのセキュリティです。すべてのデコードと処理は、ブラウザ内で100%行われます。トークンが当社のサーバーに送信されることはありません。このクライアントサイドのアプローチにより、認証トークン、APIキー、プライベートなユーザーデータなどの機密情報が完全に非公開に保たれます。自信を持ってJWTトークンをデバッグできます。
JSON Web Token (JWT) とは何ですか?
JSON Web Token (JWT) は、RFC 7519で定義された、URLセーフでコンパクトなオープン標準であり、当事者間で情報をJSONオブジェクトとして安全に送信するために使用されます。この情報はデジタル署名されているため、検証可能で信頼できます。JWTはステートレスで自己完結型です。つまり、ユーザーの認証に必要なすべての情報がトークン自体に含まれています。これにより、現代のウェブおよびモバイルアプリケーション、特に認証や情報交換の処理に非常に人気のある選択肢となっています。
JWTは、ドット(.)で区切られた3つのパート構造ですぐに識別できます:header.payload.signature。
JWTの3つのパートの解説
当社のJWTデコーダを使用すると、トークンの最初の2つのパートのデコードされたバージョンを確認できます。
1. ヘッダー (メタデータ)
トークンの最初のパートはJWTヘッダーです。これはBase64UrlエンコードされたJSONオブジェクトです。通常、2つのキーと値のペアで構成されます:
- typ (Type): トークンのタイプを宣言します。ほとんどの場合「JWT」です。
- alg (Algorithm): 署名を作成するために使用された署名アルゴリズムを指定します。一般的なアルゴリズムには、HS256(SHA-256を使用したHMAC、共通鍵アルゴリズム)やRS256(SHA-256を使用したRSA、公開鍵アルゴリズム)があります。
2. ペイロード (クレーム)
トークンの2つ目のパートはJWTペイロードです。このパートもBase64UrlエンコードされたJSONオブジェクトであり、「クレーム(claims)」が含まれています。クレームとは、エンティティ(通常はユーザー)に関する記述と追加データのことです。クレームには3つのタイプがあります:
- 登録済みクレーム:相互運用性を確保するためにJWT標準で推奨されている、事前定義された一連のクレームです。一般的な登録済みクレームには、iss(発行者)、sub(主体)、aud(対象者)、exp(有効期限)、nbf(開始時刻)、iat(発行時刻)、jti(JWT ID)があります。:
- 公開クレーム:JWTを使用する側(GoogleやMicrosoftなど)によって定義されるクレームで、通常はIANA JSON Web Token Registryに登録されています。:
- プライベートクレーム:それを使用することに合意した当事者間で情報を共有するために作成されたカスタムクレームです。例えば、ペイロードに {"role": "admin"} や {"username"
当社のJWTクレームビューアを使用すると、これらすべてのクレームをひと目で簡単に検査できます。
3. 署名
トークンの3つ目のパートはJWT署名です。これは、エンコードされたヘッダー、エンコードされたペイロード、秘密鍵(または公開鍵アルゴリズム用の秘密鍵)を取得し、指定されたアルゴリズム(alg)を実行することによって作成されます。
署名の目的は、トークンの信頼性を検証することです。トークンが輸送中に改ざんされていないことを保証します。攻撃者がペイロード内の1文字でも変更すると、署名は無効になります。これが、このツールが署名を検証しない、また検証できない理由です。検証には秘密鍵が必要であり、秘密鍵をオンラインツールに共有したり貼り付けたりしてはいけません。
このJWTデコーダツールの使い方
- トークンをコピーする:アプリケーション、ブラウザのローカルストレージ、またはAPIレスポンスから完全なJWT文字列(3つのパートすべて)をコピーします。
- トークンを貼り付ける:ページ上部のテキストエリアにトークンを貼り付けます。「サンプルを読み込む」ボタンを使用して、有効なトークンを確認することもできます。
- 「トークンをデコード」をクリック:ツールが即座にトークンを解析します。
- 結果を確認する:ヘッダーとペイロードが下の2つの独立した、わかりやすくフォーマットされたJSONボックスに表示され、すべてのクレームとメタデータを簡単に読み取ることができます。
- クリア:「クリア」ボタンをクリックして最初からやり直します。
一般的なデバッグシナリオ
JWTデコーダは主にデバッグツールです。解決できる一般的な問題は以下の通りです:
- 「トークンの期限切れ」エラー:トークンを貼り付けて、expクレームを確認します。このUnixタイムスタンプを現在の時刻と比較して、トークンが本当に期限切れかどうかを確認します。
- 権限拒否:ペイロードをデコードして、role、scopes、またはその他のカスタムクレームをチェックし、ユーザーが正しい権限を持っているか確認します。
- ユーザーが見つからない:sub(主体)クレームを検査して、正しいユーザーIDがバックエンドに送信されていることを確認します。
- このアプリに対してトークンが無効:aud(対象者)およびiss(発行者)クレームをチェックして、サーバーが期待しているものと一致しているか確認します。
関連する開発者ツール
JWTは他のウェブ標準に基づいているため、デコーダと併せて以下のツールも役立つ場合があります: