JWTデコーダー
JWTトークンのヘッダーとペイロードを即座にデコードして確認します。完全にブラウザ内で動作する無料のオンラインJWTデコーダーです。
JWTデコーダーとは?
JWTデコーダーは、JSON Web Token(JWT)をデコードしてヘッダーとペイロードの内容を人間が読めるJSON形式で表示する無料のオンラインツールです。expクレームを読み取ってトークンの有効期限ステータスを自動的に検出・表示し、開発者がトークンがまだ有効かどうかを素早く判断できるようにします。すべてのデコードはブラウザ内で完全に行われるため、機密性の高いトークンがネットワーク上に送信されることはありません。
JWTデコーダーの使い方
- 入力フィールドに完全なJWTトークン(ドットで区切られた3つのBase64エンコード部分すべて)を貼り付けます。
- 「JWTをデコード」ボタンをクリックしてトークン構造を解析します。
- デコードされたヘッダーで署名アルゴリズムとトークンタイプを確認します。
- ペイロードを調べて、サブジェクト、発行者、カスタムデータを含むすべてのクレームを確認します。
- 有効期限ステータスインジケーターを確認して、トークンが現在有効か期限切れかを確認します。
ヒントとベストプラクティス
本番トークンを共有しない
このツールはトークンをローカルで処理しますが、本番環境のJWTトークンをスクリーンショットやログで共有することは避けてください。トークンのペイロードには機密性の高いユーザー情報が含まれている可能性があり、有効期限内のトークンは不正アクセスに使用される可能性があります。
3つの部分を理解する
JWTはドットで区切られた3つのBase64URLエンコード部分で構成されています:ヘッダー(アルゴリズムとタイプ)、ペイロード(クレームとデータ)、署名(検証ハッシュ)。このツールは暗号化されていない最初の2つの部分をデコードします。
有効期限を定期的に確認
expクレームにはUnixタイムスタンプとしてのトークンの有効期限が含まれています。認証の問題をデバッグする際は、最初にトークンが期限切れかどうかを確認してください。これはAPIコールでの401 Unauthorizedエラーの最も一般的な原因です。
カスタムクレームを探す
iss、sub、expなどの標準クレーム以外に、多くのアプリケーションはユーザーロール、権限、テナントIDなどのカスタムクレームを追加しています。これらのカスタムクレームを理解することで、認可やアクセス制御の問題をより効果的にデバッグできます。
一般的な使用例
APIデバッグ
APIリクエストが認証エラーを返した場合、AuthorizationヘッダーのJWTをデコードして、トークンが期限切れか、間違ったオーディエンスに発行されたか、APIが期待する必要なクレームが不足していないかを確認します。
OAuthフローのトラブルシューティング
OAuth 2.0およびOpenID Connectの実装中、IDトークンとアクセストークンを検査して、アイデンティティプロバイダーがトークンペイロードに正しいスコープ、クレーム、オーディエンス値を返しているかを確認します。
セキュリティ監査
JWTトークンを確認して、ペイロードに過度な情報や機密情報が含まれていないことを確認します。JWTペイロードはBase64エンコードされているだけで暗号化されていないため、トークンを傍受した誰もがペイロード内のデータを読み取ることができます。
FAQ
ここにJWTを貼り付けても安全ですか?
はい。すべてのデコードはブラウザ内でローカルに行われます。データがサーバーに送信されることはありません。
このツールでJWTの署名を検証できますか?
このツールはJWTの内容をデコードして表示します。署名の検証には秘密鍵が必要であり、検査には不要です。
JWSとJWEの違いは何ですか?
JWS(JSON Web Signature)トークンは署名されているが読み取り可能なペイロードを持ち、ほとんどの人がJWTと言う場合はこれを意味します。JWE(JSON Web Encryption)トークンは暗号化されたペイロードを持ち、復号鍵なしでは読み取れません。このツールはJWSトークンで動作し、実際には圧倒的に一般的なタイプです。
なぜ秘密鍵なしでペイロードを読めるのですか?
JWTペイロードはBase64URLエンコードされており、暗号化されていません。署名はトークンが改ざんされていないことを保証するだけで、内容を隠すものではありません。これは設計によるものですので、JWE暗号化を使用しない限り、JWTペイロードに本当に秘密の情報を保存しないでください。
一般的なJWTクレームには何がありますか?
標準クレームにはiss(発行者)、sub(サブジェクト/ユーザーID)、aud(オーディエンス)、exp(有効期限)、nbf(開始時刻)、iat(発行時刻)、jti(JWT ID)が含まれます。アプリケーションはロール、権限、その他のアプリケーション固有のデータのカスタムクレームを頻繁に追加します。