JWTデコード
JSON Web Tokensをデコードして内容を確認し、クレームの説明を表示します
サンプルを試す
JWTを貼り付けてヘッダー、クレーム、署名を確認してください。
署名は検証されていません。デコードでは、トークンが真正であるか、信頼できるかは確認できません。
トークンの時間情報
—
- アルゴリズム
- —
- 発行日時
- —
- 有効開始日時
- —
- 有効期限
- —
登録済みクレーム
JWTデコードについて
このJWTデコードは、あらゆるJSON Web Tokenをヘッダー、ペイロード、署名の3つの構成要素に即座にデコードする無料のオンラインツールです。JSON Web Token(JWT)は、コンパクトで自己完結したJSONオブジェクトとして当事者間で情報を安全に伝送するためのオープン標準(RFC 7519)です。Webアプリケーション、API、マイクロサービスにおける、現代の認証と認可の基盤となっています。
JWTは、ドットで区切られたBase64URLエンコードの3つのセグメントで構成されます。ヘッダーには署名アルゴリズム(HS256やRS256など)とトークンの種類が含まれます。ペイロードにはクレームが含まれ、ユーザーデータ、権限、有効期限などのメタデータを持つキーと値のペアです。署名はトークンが改ざんされていないことを保証し、正しい秘密鍵または公開鍵でのみ検証できます。
このツールはJWTのデコードをすべてブラウザー上で行い、サーバーとの通信は発生しないため、トークンが外部に送信されたり保存されたりすることはありません。有効期限の状態も確認でき、タイムスタンプを人が読める日時に整形し、iss、sub、aud、exp、iat、nbfなどの標準の登録済みクレームについて説明も表示します。
主な機能
- あらゆるJWTをヘッダー、ペイロード、署名の各セクションに即座にデコード
- 有効期限を自動でチェックし、「トークンは有効期限内です」「トークンはまだ有効ではありません」「トークンは期限切れです」のいずれかをステータスバナーで明示
- Unixタイムスタンプ(exp、iat、nbf)を、タイムゾーン付きの読みやすい形式で表示
- 標準の登録済みクレーム(iss、sub、aud、exp、nbf、iat、jti)すべてに説明を表示
- ヘッダー、ペイロード、署名を個別にコピーできるワンクリックのコピーボタン
- 入力の遅延処理を行いながら、入力や貼り付けに合わせてリアルタイムでデコード
- 色分けされたセクション:ヘッダーは青、ペイロードは紫、署名はオレンジ
- アルゴリズムのバッジ(HS256、RS256、ES256など)をステータスバナーに目立つように表示
- すばやい動作確認とデモに使えるサンプルトークンを用意
- 100%クライアント側で処理し、データはサーバーに一切送信されません
使い方
- JWTを貼り付け:アプリケーション、APIレスポンス、ブラウザーの開発者ツール、認証システムなどからJSON Web Tokenをコピーして、入力欄に貼り付けます。
- デコード結果を確認:ツールがトークンを即座にヘッダー、ペイロード、署名に分割し、それぞれを整形して色分けしたパネルに表示します。
- 有効期限を確認:上部のステータスバナーに、トークンが有効か期限切れかが、正確な有効期限の日時とカウントダウンとともに表示されます。
- クレームの説明を読む:iss、sub、exp、iatなどの標準の登録済みクレームには説明が付いているため、各フィールドの意味が分かります。
- セクションをコピー:各セクションのコピーボタンを使うと、整形済みのJSONがクリップボードにコピーされ、ドキュメント作成やデバッグに使えます。
- サンプルを試す:「サンプルトークン」ボタンをクリックして作成済みのJWTを読み込み、ご自身のトークンを貼り付ける前にデコードの動作を確認できます。
活用例
- 認証のデバッグ:認証サーバーが返したJWTをすばやく調べ、クレーム、ロール、権限が正しく設定されているかを確認します。
- API開発:API連携中にアクセストークンをデコードし、ペイロードに想定どおりのユーザーID、スコープ、有効期限が含まれているかを確認します。
- セキュリティ監査:機密データの露出、弱いアルゴリズム(「none」など)、長すぎる有効期限がないか、トークンを調べます。
- 学習と教育:サンプルトークンをデコードし、ツールが表示するクレームの説明を読みながら、JWTの構造を理解できます。
- トークン期限切れの調査:expクレームを現在時刻と照らし合わせて、認証の失敗が期限切れのトークンによるものかどうかを判断します。
- マイクロサービスのデバッグ:サービス間で受け渡されるトークンを調べ、上流のサービスが正しい構造で適切なクレームを持つJWTを発行しているかを確認します。
- OAuthフローの検証:OAuth 2.0やOpenID ConnectのフローのIDトークンとアクセストークンをデコードして、発行者、オーディエンス、スコープの値を確認します。
- ドキュメント作成:デコードしたヘッダーとペイロードのJSONをAPIドキュメントや運用手順書にコピーして、想定されるトークン構造を示します。
よくある質問
このツールは無料ですか?
はい。JWTデコードは完全に無料で、アカウントは不要、利用回数の制限も、機能を妨げる広告もありません。
データは安全ですか?
はい。デコードはすべてJavaScriptを使ってブラウザー上で行われます。JWTがサーバーに送信されることはないため、本番環境のトークンも安全に調べられます。
このツールはJWTの署名を検証しますか?
いいえ。署名の検証には、秘密鍵(HMACの場合)または公開鍵(RSA/ECDSAの場合)が必要で、クライアント側のブラウザーでは安全に行えません。署名の検証にはサーバー側のライブラリを使用してください。
HS256とRS256の違いは何ですか?
HS256は対称アルゴリズムで、署名と検証の両方に1つの共有秘密鍵を使います。RS256は非対称アルゴリズムで、秘密鍵で署名し、公開鍵で検証するため、分散システムに最適です。
暗号化されたJWT(JWE)をデコードできますか?
このツールがデコードするのは署名付きJWT(JWS)です。暗号化されたJWT(JWE)には復号鍵が必要で、このデコーダーでは対応していません。
トークンが期限切れと表示されるのはなぜですか?
このツールは、exp(有効期限)クレームとお使いのシステム時刻を比較します。有効期限のタイムスタンプが過去の場合、トークンは期限切れと表示されます。システムの時計が正確かどうかを確認してください。
ヒントとベストプラクティス
- トークンの有効期間は短く:アクセストークンの有効期限は15分から60分にし、セッションを継続するために安全なHTTP-onlyのリフレッシュトークンと組み合わせます。
- ペイロードに秘密情報を入れない:JWTはエンコードされているだけで、暗号化されていません。トークンを持つ人は誰でもペイロードをデコードできるため、パスワードやクレジットカード番号などの機密データは絶対に含めないでください。
- 検証は必ずサーバー側で:ブラウザーでJWTをデコードするのはデバッグに便利ですが、クレームを信頼する前に、必ずバックエンドで署名を検証してください。
- 分散システムには非対称アルゴリズムを:複数のサービスが秘密鍵を共有せずに、それぞれ独立してトークンを検証する必要がある場合は、RS256またはES256を選びます。
- トークンのサイズを監視:ペイロードが大きいとリクエストヘッダーのサイズが増え、API呼び出しが遅くなることがあります。クレームは最小限にし、ユーザープロフィール全体を埋め込む代わりにユーザーIDなどの参照を使います。
- 署名鍵を定期的にローテーション:kid(Key ID)ヘッダーパラメーターを使った鍵のローテーション方式を導入し、既存のトークンをすべて無効にすることなく署名鍵を切り替えます。