JWTデコード
JSON Web Tokens (JWT) をデコードし、クレームを詳細に分析
トークン構造
00
アルゴリズム
—
クレーム
0
トークンステータス
—
JWTトークンをここに貼り付け...
01
JWTとは
JSON Web Token(JWT)は、ユーザーが誰か、アクセスがいつ期限切れになるかといったクレームを運ぶ文字列です。ドットで区切られたヘッダー、ペイロード、署名の3つの部分からなります。ヘッダーとペイロードはURLセーフなBase64でエンコードされたJSONなので、誰でも読めます。署名により、サーバーはトークンが改ざんされていないことを確認できます。
このツールはトークンを分割し、ヘッダーとペイロードを整形したJSONで表示します。exp、iat、nbfのクレームは読みやすい日時に変換し、有効期限の状態もリアルタイムで表示します。デコードのみを行い、署名は検証しません。トークンはブラウザ内でデコードされ、アップロードされないため、本番環境のトークンも第三者に送らずに確認できます。
02
JWTをデコードする手順
- 入力欄にトークンを貼り付けます。「サンプルを読み込む」で試すこともできます。
- ヘッダーで署名アルゴリズムとトークンのタイプを確認します。
- ペイロードでクレームを確認します。日時はローカル時刻で表示されます。
- トークンステータスで、有効か期限切れかを確認します。
- 必要に応じて、ヘッダーやペイロードをJSONとしてコピーします。
03
JWTデコードのよくある質問
- JWTのヘッダー、ペイロード、署名とは?
- ヘッダーには、HS256やRS256などの署名アルゴリズムとトークンのタイプが入ります。ペイロードにはクレームが入り、sub、iss、aud、expなどの登録済みクレームと任意のカスタムデータがあります。署名はヘッダーとペイロードから共有シークレットまたは秘密鍵を使って計算されるため、どちらかが変わると無効になります。
- JWTをここに貼り付けても安全ですか?
- トークンはこのブラウザのタブ内でデコードされ、サーバーへの送信、記録、保存は行われないため、本番環境のトークンを貼り付けても外部に漏れることはありません。それでも、トークンはパスワードと同じように扱ってください。有効なトークンを持つ人は、期限が切れるまでそれを使えます。使い終わったら入力欄をクリアし、ペイロードのスクリーンショットの共有は避けましょう。
- exp、iat、nbfの意味は?
- いずれも秒単位のUNIX時間です。expは有効期限で、これを過ぎたトークンは拒否しなければなりません。iatは発行日時、nbfはそれより前には受け付けてはならない日時です。このツールでは、それぞれをローカル時刻の日時で表示します。ほかのタイムスタンプを変換するには、UNIX時間変換を使ってください。
- このツールはJWTの署名を検証しますか?
- 検証しません。ヘッダーとペイロードをデコードしますが署名は確認しないため、デコードできても本物である証明にはなりません。検証にはHMACアルゴリズムなら共有シークレット、RSAやECDSAなら公開鍵が必要です。検証はサーバー側で、メンテナンスされているJWTライブラリを使って行ってください。
04