SSO を使用して異種の「Web アプリケーション」を統合している間、ユーザーはこれらのアプリケーション間を行ったり来たりする場合があります。ユーザーがこれらのアプリケーション間を移動すると、sso に使用される ID プロバイダーで作成されたセッションに加えて、各アプリケーションでローカル セッションが作成されます。
したがって、問題は、アプリケーションのセッション タイムアウトが異なる場合であり、ユーザー エクスペリエンスが損なわれます。ユーザーが別のアプリケーションで作業しているときに、あるアプリケーションでセッション タイムアウトが発生します。ユーザーが以前にアクセスしたアプリケーションに戻ると、エラーが発生します。これは、ユーザーが別のアプリケーションで作業していることに気付かないため、ユーザーを混乱させます。
この問題を回避する 1 つの方法は、すべてのアプリケーションがアクセスできる「グローバル セッション」オブジェクトを用意することです。ユーザーが保護されたリソースにアクセスしている間、アプリケーションはグローバル セッションが存在するかどうかを確認し、リクエストを処理する前にそのタイムスタンプを更新します。ローカル セッションが期限切れになることはありません (またはタイムアウトが非常に長くなります)。ただし、ユーザーがログアウトすると、グローバル セッション オブジェクトが削除され、すべてのアプリケーションでサインアウトが発生します。
これは、次の理由により、少し扱いが難しいようです。
- グローバル セッション オブジェクトが単一障害点になる
- グローバル セッション オブジェクトの「アウト プロセス」チェックを実行し、 保護されたすべてのリクエストのアクセス時にタイムスタンプを更新するパフォーマンス
これを機能させる方法について他に何か考えはありますか?