関連するいくつかの Web アプリのクライアントが独自の認証状態を保持するようにします。これにより、クラスタ ノード間のセッション レプリケーションが不要になるため、スケーラビリティが向上します。また、Java サーブレットや PHP などのさまざまなサーバー テクノロジの統合が容易になります。
私の計画は次のとおりです。
- クライアント認証後に、ユーザー名とセッション有効期限を使用して、署名および暗号化された Cookie を設定します。
- クライアントがリクエストを送信すると、サーバーは Cookie を復号化して検証し、Cookie の値に応じてアクセスを許可または拒否します。
- セッションの有効期限は、Cookie をリセットすることで更新されます。
セッションを使用するすべてのサーバーは、Cookie メカニズムと復号化キーを知っているだけで済みます。関連項目:クライアント層のセッション状態
このアプローチは大丈夫ですか?アプリケーションに対して透過的になるように、サーブレットコンテナ/アプリケーションサーバーに統合することは可能でしょうか? たとえば、サーブレットは HttpServletRequest#getRemoteUser() を使用できる必要があります。これは可能ですか?それとも、Spring Security のようなコンテナー レベルより上のものが必要でしょうか? クライアント側のセッション管理用の既存のライブラリはありますか?