2011-07-12 6 views
1

私はWIFを使用して私自身のSTSプロバイダーを転がし、依拠当事者でもあるいくつかのアプリを持っています。 STSプロバイダーのセッションタイムアウトは30分に設定されており、依拠当事者もそうです。Windows Identity Foundationフェデレーションログアウトを正しく使用する方法は?

信用締約国とSTSプロバイダからサインアウトしたいとき、彼らはSTSプロバイダに連合ログアウトクエリパラメータを発行します。

https://STSProvider.com/Default.aspx?wa=wsignout1.0

これは、彼らがに署名されているすべての信頼者のための連合ログアウト要求を持っているイメージタグでページを作成します。

問題は、セッションがSTSプロバイダでタイムアウトしてからログイン画面に戻ってしまうことです。また、信頼関係のあるすべてのフェデレーションログアウトimgタグがあるページは配信されません。したがって、その人はすべての依拠当事者にログインしたままです。

STSのセッションが不確定にならないフェデレーションログアウトを処理する最善の方法は何ですか?

答えて

2

SessionSecurityTokenを使用してSTSでユーザーを認証するとします。その場合は、IsPersistentプロパティをtrueに設定してみてください。

var token = new SessionSecurityToken(...args...); 
token.IsPersistent = true; 
+0

これはセッションが不定になるだけです。セキュリティ上の理由でタイムアウトできるようにしたいが、適切にログアウトできるようにしたい。 –

+0

このコンストラクタシグネチャで試してみてください。 'public SessionSecurityToken(IClaimsPrincipal claimsPrincipal、 \t TimeSpan lifetime)'。私はセッションのタイムアウトがトークンの寿命に影響を与えないと思います。 – shizik

+1

別のオプションは、保護されていないページにリダイレクトしてから、すべてのRPのサインアウトページをレンダリングし、同時にユーザーがSTSで認証されている場合はWSFederationAuthenticationModuleからSignOutを呼び出します。 – shizik

関連する問題