JWT を安全にデコードして検査する
JSON Web Token を貼り付けてヘッダーとクレームを読み取り、有効期限を確認します。デコードで証明できること・できないことを正確に理解しましょう。
- 1
JWT は、ドットで連結された 3 つの Base64URL セグメント(ヘッダー、ペイロード、署名)です。デコードはそのエンコードを逆にするだけです。クレームを明らかにしますが、検証はしません。以下の処理はすべてブラウザー内でローカルに実行され、トークンがあなたのマシンの外に出ることはありません。
- 2 JWT デコーダー →
トークン全体(2 つのドットを含む)を貼り付けてください。ツールは、デコードされたヘッダー(algorithm、type)とペイロード(iss、sub、aud、exp、iat、および任意のカスタムクレーム)を表示します。不正な形式のトークンは、問題が発生したセグメントとともに報告されます。
- 3
ペイロードで 3 つの点を確認してください。exp クレーム(Unix 秒。現在のタイムスタンプと比較して、トークンの期限が切れているかを確認)、iss と aud のクレーム(呼び出しているサービスと一致していますか?)、そして alg ヘッダー(alg が none のトークンは決して信頼せず、HS256 と RS256 の鍵には互換性がない点にも注意してください)です。
- 4
署名自体が検証できるかどうかを知る必要がある場合は、署名鍵と、信頼されたシステム上の検証ライブラリが必要です。デコーダーにはできませんし、本サイトも意図的に、それができるふりはしません。
よくある質問
- JWT のデコードは検証になりますか?
- いいえ。デコードは単なる Base64URL + JSON パースです。誰でも任意のクレームを持つトークンを偽造できます。正しい鍵による暗号学的な検証だけが真正性を証明します。
- 有効期限はどこに保存されていますか?
- ペイロードの exp クレームに、Unix 秒として保存されています。クライアントは、現在時刻が exp に達するかそれを過ぎた時点でトークンを期限切れとみなします。通常は、わずかなクロックスキューの余裕を設けます。
- ここにトークンを貼り付けても安全ですか?
- このデコーダーは完全にブラウザー内で実行され、トークンはどこにもアップロードされません。それでも、トークンは資格情報として扱ってください。試すときは、期限切れやテスト用のトークンを使うのが望ましいです。