1

PingFederate を使用して SLO を試みています。SP アプリの 1 つは、cookieless セッションを使用するように構成されています。PingFederate のこの SP アプリは、たとえば「http://site/logout.aspx」のようにログアウト URL が設定されていますが、SLO プロセスがトリガーされると、PingFederate はブラウザーをこの URL に正常にリダイレクトしますが、まったく別のセッションにリダイレクトします。 SSO が最初に作成されたときに生成されたものよりも。SSO プロセスで作成されたセッションを再利用して SP のログアウト ページにリダイレクトするように PingFederate を構成するにはどうすればよいですか?

編集:何かを言及するのを忘れてすみません。実際には、IdP アプリケーションと SP アプリケーションの両方が ASP.NET で開発されています。Cookie を使用しないということは、SP アプリケーションの web.config ファイルに次のセッション状態構成が含まれていることを意味します。

    <sessionState mode="InProc" cookieless="UseUri" regenerateExpiredSessionId="true" timeout="60" stateNetworkTimeout="30" />

この sessionState 構成により、URL は 'http://site(S(pvvofbemnrmaixo2emaaeo0t))/Home.aspx' のようになります。これは、'http://site/Home.aspx' が呼び出されたときと同様に、SSO では問題ありません。新しいセッションが作成されるため、URL を置き換えて "(S(blahblah))" を含めますが、SP のログアウト URL (http://site/logout.aspx) が SLO プロセスによって呼び出されると、 SP サイトが生成されます (SSO によって最初に作成されたものとは異なります)。したがって、元の SP サイト セッションは終了しません。

4

1 に答える 1

1

「cookieless セッションを使用するように構成されている」と言うとき、アプリケーション自体が状態を維持するために cookie を使用しないということですか? その場合、セッションはどのように維持されますか? URL の書き換えを通じて?

Ping Identity 統合キット (例: Open Token 統合) を介してアプリケーションにログインしていると仮定します。Java Integration Kit (たとえば) では、SP 統合アプリケーションで SLO を実行するために、次のサンプル コードが提供されています。

request.getSession().invalidate();
String returnUrl = “https://<PingFederate DNS>:9031” + request.getParameter(“resume”);
response.sendRedirect(returnUrl);

これは実際に J2EE アプリケーション内のセッション管理に依存しています。それがアプリへの新しいエントリ ポイントである場合 (SLO の可能性があるように、IdP が開始された場合)、その状態情報を維持するために Cookie が必要になる可能性があります。

SP アプリケーション統合コードで一部のセッション情報を Cookie に保存することはできないので、後で無効にすることができますか? そうしないと、SLO を達成するのがかなり難しくなります。これは PingFederate に関する質問ではなく、ユーザーがアプリケーションに直接アクセスし、すでにログインしている場合に、アプリケーションでユーザーの状態をどのように維持するかに関する質問です。

于 2011-11-24T21:45:12.630 に答える