私が協力している会社に最も適した認証/承認方法を理解する必要がある私の学士を書いています。セッションとトークンベースの認証の技術的な違い
だから私は、セッションを比較すると、ベースの認証方法をトークンが、トークンがどのように機能するかについて、どのように彼らはセッション認証よりも優れている私には不明であるいくつかのポイントがありますされてきた。
があるだけのメリットCookieストアを持たないクライアントからトークンを使用でき、ブラウザのCORSポリシーが妨げられていないため、異なるサブドメインで使用でき、ドメインを完全に分離することができます。
- 私はすべてのクッキーは、元のドメインに各要求と共に送信されていることを読んで(クッキーが安全な接続のみに送信されるように設定されている場合を除く)、トークンがリクエストで二回存在するであろうことを意味していますもちろん、別のドメインのユーザーを認証する場合を除きます。これは正しい仮定ですか?
- トークンはサーバサイドでどのように検証されますか?解読後、ユーザー名、パスワード、および秘密/秘密鍵に対してチェックされますか、ここで使用されている秘密/秘密鍵だけですか?
- サーバー上の特定のリソースに対して認証する際にusername/userIDが必要な場合は、そのユーザーを認証しませんでした。チェックする元のユーザーデータがない場合、これらの資格情報を信用できますか?
最後に、トークンがCSRFから保護すると主張する記事が多数あります。
From this article: CSRF:我々はまた、クロスサイトリクエストフォージェリ(CSRF)に対する保護を持っています。彼らは銀行のサイトを言うと、既に認証することができ、これは他のサイトを訪問する際の利点を取ることができるので、ユーザーは。私には全く意味がありません
「。CSRF攻撃を受けやすい、彼がいることを言っているように思えますOAuthのようなシステムはCSRFを防ぎますか?私はCSFRの仕組みについてよく知らないので、ここでは空白ですが、どちらのセッションやトークンもどちらの要求に対しても一意ではないため、 。
編集: 私はちょうどCSFRを防ぐことができた理由のトークンは別のサイトを管理している場合、それがブラウザによって自動的に送信されていないということです実現ブラウザからサーバーにフォームを送信する。しかし、これはトークンがサーバーのクッキーヘッダーから引き出された場合、トークンが脆弱である可能性があることを意味します。JWTを使用する場合は、JSで設定する必要がある独自の「Authorization」ヘッダーを使用するため、問題ありません。 しかし、これはscotch.ioの記事が私にとってナンセンスのように聞こえるという主張をしています。