私は基本的に全従業員向けのWebアプリケーションを開発しています。現在、3500人の従業員がいて、全員がこのWebアプリケーションにアクセスします。
それらのすべては本当に機密情報を使用します。現在、私は彼ら全員がどのように認証されるかを考えています。
しかし、ログインを保存する最良の方法は何ですか:セッション変数またはCookieを使用しますか?
それとも両方?
現在私はASP.NETを使用しており、セッション変数はbase64文字列に保存されています(多分これは少し安全ですが、わかりません)。
JWT(JSON Web Token) の使用を検討することもできます。基本的にそれがどのように機能するかは、ユーザーがシステムにログインし、アプリケーションがJWTを生成し、応答とともに送信することです。 JWTには、「subject」、「audience」などの標準フィールドが含まれています(カスタム属性を定義することもできます)。有効期限もあり、暗号で署名されています。ユーザーは各リクエストとともにJWTをHTTPヘッダー、URLまたはCookieに直接含めます。サーバーは署名を検証し、アクセス権を確立するための属性を分析します。
主な利点は、現在 IETFで標準化中 であり、現在、APIアクセスを保護するために多数のクラウドプロバイダーによって使用されていることです。もう1つの利点は、サードパーティにアプリへのアクセスを許可する必要がある場合、.Netを含むほとんどすべてのプラットフォームでJWTをサポートするライブラリがあるため、統合が簡単になることです(最初のリンクを参照)。または、モバイルクライアント用にAPIを公開することを決定した場合、そのまま使用できます。この方法では、アプリケーションをステートレスにすることができますが(ロードバランシングに適しています)、WebブラウザーへのアクセスにCookieを使用する必要がある可能性があります。