1

フォーム認証を使用する単一のログイン ページを使用しています。このページは、mysites.com にドメイン Cookie を作成します。

アクセスするために認証が必要な Web サイトが他に 3 つあります。私のページ loginsso.mysites.com では、Cookie の有効期限を 30 分に設定しています。ただし、その Cookie の有効期限が切れると、他の 3 つのサイトからユーザーが追い出されます。

これをさらに複雑にするために、これら 3 つのサイトのそれぞれにアイドル タイムアウトがあります。

これがどのように機能するかです:

  • ユーザーは mysso.mysite.com にログインします
  • ドメイン レベルの Cookie を作成します (この Cookie のタイムアウト期限は 30 分です)。
  • -mysitea.mysite.com のアイドル時間の有効期限は 3 時間です
  • -mysiteb.mysite.com のアイドル時間の有効期限は 1 時間です
  • -mysitec.mysite.com のアイドル時間の有効期限は 2 時間です
  • したがって、mysso.mysite.com にログインして mysiteb.mysite.com に移動し、そこで 30 分間作業しているユーザーは、mysso.mysite.com の Cookie 仕様により、30 分後にサイトにアクセスできなくなります。

    基本的に、これを処理する方法が必要です。ユーザーが mysiteb に移動して作業している場合、そのユーザーはアイドル状態ではなく、mysitesso から追い出されるべきではありません。

    これが意味をなすことを願っています。

    また、SessionTimeOut と CookieExperation を混在させ、それらをどのように処理するかという可能性もあります。

    4

    1 に答える 1

    1

    あなたの場合、SSO と個々のアプリケーションの両方にセッション Cookie を使用します。セッション Cookie は、有効期限が設定されていない Cookie です。ブラウザーを閉じるまで保持されます (詳細については、こちらを参照してください)。サーバー側のロジックですべてのアプリケーションのセッションの有効期限を処理し、タイムアウトが発生したときにセッションを破棄します。

    また、XHR 攻撃を防ぐために、セッション Cookie が JavaScript アクセスから保護されていることを確認する必要があります (最新のすべてのブラウザーで機能します)。これは次のように行うことができます。

    cookie.HttpOnly = true;
    

    HttpOnlyこの属性に関する詳細なドキュメントは、ドキュメント、または を検索してフォーム認証に関する詳細な記事を参照してくださいHttpOnly

    于 2013-04-13T19:59:24.923 に答える