ユーザーに応答するアクセストークンとしてJWT Webトークンに関する記事を読んでいました。その一部は、ユーザーがWebトークンをデコードできるようにする必要があると述べています。
Webトークン全体を復号化するのは良い習慣ではないということですか?たとえば、次のJWT Webトークンをユーザーに返して、この情報をデコードできると仮定します。
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiYWRtaW4iOnRydWV9.TJVA95OrM7E2cBab30RMHrHDcEfxjoYZgeFONFh7HgQ
ただし、ユーザーがアクセストークンをデコードできるようにしたくないので、別の暗号化アルゴリズムを使用してすべてを次のように別のフォームに暗号化し、ユーザーに返します。
そのため、サーバーでこのアクセストークンを取得してデコードするときに、この新しいテキストを解読します。
クレームで使用可能な値(ユーザーIDなど)の一部をユーザーに公開したくない場合は、この方法で行うことをお勧めしますか?そうでない場合、選択肢は何ですか?
JWT( RFC7519 )は、発行者からオーディエンスにHTTP経由で安全にクレームを送信するためのコンパクトな方法です。
JWTは次のいずれかです。
ベアラ(クライアント)またはサードパーティから機密情報を隠したい場合は、JWSを暗号化するのが理にかなっています。
本当の質問は次のとおりです。聴衆はJWEをサポートしていますか?はいの場合、どのアルゴリズムがサポートされていますか?
JWTは「署名」されているため、その内容は改ざんから保護されています。無効にすることなくその内容を変更することはできません。
オプションでコンテンツを「暗号化」し、発行者(トークンを作成するエンティティ)と消費者(検証後にコンテンツを使用する予定のエンティティ)のみに表示されるようにすることができます。
そのための標準があります: [〜#〜] jwe [〜#〜]