7

JWT は、クライアントのクレームに関する署名付きの情報を格納し、Authorization HTTP ヘッダーを介してサーバーに渡されるステートレス トークンであることを理解しています。

私の質問は、クライアント セッション ( https://github.com/mozilla/node-client-sessions )が既にあるのに、なぜ JWT が必要なのですか? クライアント セッションは、概念的には同じです。それらは、署名された情報を含む Cookie であり、検証されると、Cookie が調整されていないことを意味します。また、クライアント セッションは Cookie に保存され、Cookie HTTP ヘッダーを介して渡されます。言葉が違うだけで同じことです。私が間違っている?

では、なぜ JWT が存在するのでしょうか。認証トークンの動作方法を標準化することがポイントであることは理解できましたが、セッション ID ベースの標準がなくてもうまくいきました (各実装は独自の方法で処理を行いました)。また、JWT が Cookie を転送手段として使用しないのはなぜですか。Cookie を使用すると、リクエストごとに正しいヘッダーを明示的に送信する必要がなくなります (Ajax リクエストが簡素化されます)。

何か不足していますか?

4

1 に答える 1

6

JWT トークンは、ユーザー (または任意のプリンシパル) に関するクレームを表明する、署名付きの JSON 形式のドキュメントです。トークンの発行者を信頼する場合は、トークン内の要求を信頼し、これに基づいて承認の決定を行うことができます。

JWT トークンは、多くの場合、外部 Web API を呼び出すために使用されます。これらの API は必ずしも Web サイトと同じドメインにあるとは限らないため、サイトと同じ Cookie を使用することはできません。JWT トークンは、サーバーに保存されているセッション情報を必要としないため、REST サービスで使用されます。JWT トークンの使用も、CSRF攻撃に対して脆弱ではありません。

于 2015-05-02T02:03:39.040 に答える