JWTデコード
JSON Web Tokenを貼り付けるとヘッダーとクレームが読めます。トークンはブラウザから一切出ません。
出力
上に貼り付けるか入力すると、ここに結果が表示されます。
ファイルは端末の外に出ません
このツールはすべてブラウザ内で動作します。貼り付けた内容は端末内で処理され、サーバーには送信されないため、トークンや鍵、未公開の文章でも安心して使えます。
使い方
- Authorizationヘッダー、Cookie、ローカルストレージなどからトークンをコピーします。ドットで区切られた3つのBase64url文字列です。
- 入力欄に貼り付けます。先頭の「Bearer 」や前後の空白は自動的に無視されます。
- 「JWTをデコード」を押します。ヘッダーにはアルゴリズムとキーID、ペイロードには整形されたJSONでクレームが表示されます。
- 時刻に関するクレームを確認します。exp・iat・nbfはUnix秒の生の値と読みやすい日時の両方で表示されるため、有効期限切れかどうかが一目で分かります。
よくある質問
- 署名の検証は行われますか?
- いいえ。このツールはヘッダーとペイロードをデコードするだけです。これらはBase64urlでエンコードされているだけで暗号化はされていません。署名の検証には発行者の秘密鍵または公開鍵が必要で、サーバー側で行う必要があります。正しくデコードできたというだけで、トークンのクレームを信頼してはいけません。
- 本物のアクセストークンを貼り付けても安全ですか?
- デコードはすべてブラウザ内で実行され、トークンがNouploや第三者に送信されることはありません。ただし、有効なトークンは認証情報そのものです。パスワードと同じように扱い、共有端末や公共のPCでは貼り付けないようにしてください。
- 鍵がなくてもペイロードが読めるのはなぜですか?
- 一般的な署名付きJWT(JWS)は、もともと内容が読める設計です。Base64urlはエンコードであって暗号化ではありません。署名はトークンが改ざんされていないことを証明するだけで、中身を隠すものではありません。秘匿性が必要な場合はJWE(暗号化JWT)を使うか、機密情報をペイロードに含めないようにしてください。
- exp・iat・nbf・iss・sub・audはそれぞれ何を表しますか?
- expは有効期限、iatは発行時刻、nbfはそれ以前には受け付けてはいけない時刻で、いずれもUnix秒です。issは発行者、subは主体(通常はユーザーID)、audは想定される受け取り手を表します。ロールやスコープなどの独自クレームはプロバイダーによって異なります。
- 「トークンが無効です」と表示されます。なぜですか?
- JWTはドット区切りでちょうど3つのパートを持ち、最初の2つはJSONにデコードできる有効なBase64urlでなければなりません。よくある原因は、コピーの途中で切れている、余分な引用符や改行が混ざっている、JWTではない不透明なセッションIDを貼り付けている、といったケースです。