JWTは初めてです。JWTについて少し調べたところ、「header.claims.signature」としてフレーム化されていることがわかりました。
次のような簡単なシナリオを考えてみましょう。
認証されると、サーバーは顧客のタイプを検出し、customerIdとロールがJWTの「クレーム」の一部になると想定しています。私の仮定が正しくない(または標準に反している)場合はお知らせください。
JWTの「クレーム」部分は暗号化されていません(エンコードされているだけです)。これにより、(サービス)コンシューマーがJWTの「クレーム」部分を変更し、より多くのロール(顧客/コンシューマーが許可されていない)で同じものを再送信できるという簡単なセキュリティホールが明らかになります。
私の理解/仮定が正しくない場合、私が目標としていることをどのように達成しますか?
JWS(header.claims.signature)を使用する場合、JWTの「クレーム」部分は署名によって整合性が保護されます。したがって、「クレーム」またはJWTの他の部分が適切なキーを持たない誰かによって変更された場合、JWTの署名検証は失敗し、トークンは拒否されます。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加