実用ガイド

JWE と JWT の違い:5つの部分を持つトークンとは

署名付き JWT は3部分なので、多くの開発者はトークンも3部分だと考えがちです。しかし暗号化された JWE compact token は通常5部分で、ペイロードは簡単には読めません。

無料ツールを開く

手順

  1. ドットで区切られたセクション数を数えます。
  2. 3部分なら署名付き JWT または JWS compact token の可能性があります。
  3. 5部分なら JWE compact token の可能性があります。
  4. 3部分の読み取り可能なトークンには JWT デコーダーを使います。
  5. 5部分のトークンには JWE パーサーを使い protected header を確認します。
  6. 正しい鍵なしに JWE のペイロードを読めるとは考えないでください。

重要なポイント

  • JWT はクレーム形式、JWS は署名、JWE は暗号化です。
  • JWE protected header では alg、enc、kid、zip を確認できますが、暗号化されたクレームは読めません。
  • アプリが JWT を期待して JWE を受け取る場合は、ID プロバイダーの暗号化設定を確認します。
  • 見づらいからといって検証を無効化しないでください。

よくある質問

なぜトークンが5部分なのですか?

compact JWE の可能性があります。protected header、encrypted key、IV、ciphertext、authentication tag の5部分です。

JWE は JWT のようにデコードできますか?

protected header は確認できますが、ペイロードは暗号化されており正しい鍵が必要です。

JWE は JWT より安全ですか?

目的が異なります。JWE は内容を隠し、JWS は完全性を証明します。要件に応じて使い分けます。

関連ガイド