JWT デコーダー
JSON Web Token を貼り付けると、ヘッダー、ペイロードのクレーム、有効期限をデコードします。すべてブラウザ内で動作します。
Header
Payload
生の JSON
Signature
署名は検証されていません —— 検証にはシークレットキーまたは公開鍵が必要です。
JSON Web Token とは?
JSON Web Token(JWT)はオープンな標準仕様(RFC 7519)で、情報を JSON オブジェクトとして当事者間で安全にやり取りするための、コンパクトで自己完結した方法を定義しています。情報はデジタル署名されているため、検証して信頼できます。JWT は API 認証トークンやシングルサインオン(SSO)セッションで最も広く使われている形式です。
JWT の構造
JWT は 3 つの部分から成り、ドット(.)で区切られています:
- Header(ヘッダー) —— トークンの種類(
JWT)と署名アルゴリズム(例:HS256(HMAC-SHA256)やRS256(RSA-SHA256))を指定します。 - Payload(ペイロード) —— クレーム(claims)を含みます。ユーザーに関する記述やその他のメタデータです。標準クレームには
sub(subject、サブジェクト)、iss(issuer、発行者)、exp(expiration、有効期限)、iat(issued at、発行日時)などがあります。 - Signature(署名) —— エンコードされたヘッダーとペイロードを、シークレットキーまたは秘密鍵で署名して生成します。トークンが改ざんされていないことを検証するために使われます。
各部分は Base64URL でエンコードされています(Base64 と似ていますが、+ と / の代わりに - と _ を使い、パディングはありません)。
この JWT デコーダーの使い方
- 上の入力ボックスに JWT を貼り付けます。
- JWT をデコード をクリックします。ヘッダーとペイロードがデコードされ、すぐに表示されます。
- 有効期限バッジ でトークンが期限切れかどうかを確認し、クレーム表 で発行者・サブジェクト・オーディエンスなどの主要なフィールドを確認します。
- 生の JSON を展開すると、ペイロードオブジェクト全体を確認できます。
よくある質問
- JWT とは?
- JSON Web Token(JWT)は、二者間でクレームを表現するために使われる、コンパクトで URL セーフなトークン形式です。ドットで区切られた 3 つの Base64URL エンコード部分から成ります:ヘッダー(アルゴリズムとトークンの種類)、ペイロード(クレーム/データ)、署名です。JWT は Web API の認証・認可で広く使われています。
- JWT をここに貼り付けても安全ですか?
- このツールは完全にブラウザ内で動作し、データがサーバーに送信されることはありません。ただし JWT はベアラートークンです。有効な JWT を持っている人は誰でもそれを使用できます。一般的な注意として、機密性の高いペイロードを含む本番環境の JWT を、いかなるオンラインツールにも貼り付けないようにしてください。可能な限りテスト用または期限切れのトークンを使いましょう。
- このツールで JWT の署名を検証できますか?
- いいえ。署名の検証には、シークレットキー(HS256 などの HMAC アルゴリズムの場合)または公開鍵(RS256 などの非対称アルゴリズムの場合)が必要です。このツールはヘッダーとペイロードをデコードするだけで、トークンが正規に発行されたものか、あるいは改ざんされているかを判断することはできません。
- JWT のクレーム(claims)とは?
- クレームとは、ペイロードにエンコードされた、サブジェクトに関する記述です。標準(登録済み)クレームには次のものがあります:iss(発行者)、sub(サブジェクト)、aud(オーディエンス)、exp(有効期限)、nbf(有効開始日時)、iat(発行日時)、jti(JWT ID)。アプリケーションは独自の(プライベート)クレームを定義することもできます。
- 有効期限のステータスは何を意味しますか?
- exp クレームには、トークンが期限切れになる時刻を表す Unix タイムスタンプが含まれています。このツールは exp をお使いの端末のローカル時刻と比較します。「期限切れ」は現在時刻が exp を過ぎていることを意味し、適切に実装されたサーバーであればそのトークンを拒否すべきです。「有効」はトークンがまだ期限切れになっていないことを意味します。