使用Thinktecture Identity Server 2进行单点注销

时间:2014-04-22 21:23:47

标签: asp.net single-sign-on wif thinktecture-ident-server

我对Thinktecture的Identity Server 2的理解是没有实现单点注销。换句话说,当您退出一个依赖方时,Identity Server不会自动将用户从任何其他RP中签名。我知道有关于此的帖子,但我还没有找到任何关于如何扩展Identity Server来执行此操作的内容。我已经看到一些帖子说Identity Server已经开箱即用了...如果确实如此,我还没有找到方法。

我让SSO与Asp.NET Web Forms,WIF和Identity Server 2一起工作得很好,而且我能够很好地退出RP,但是我可以告诉他们需要一些额外的代码。 Identity Server,以便将用户从他可能登录的任何其他RP中完全签名。

有没有人扩展Identity Server以实现单点注销?

这是可以在Identity Server中配置还是需要一些编码?

如果你拥有它,我真的很感激。

谢谢。

1 个答案:

答案 0 :(得分:5)

IdentityServer支持通过WS-Federation进行单点注销。您的RP需要向IdentityServer发出注销请求,让用户退出IdentityServer以及通过WS-Fed通过IdentityServer验证的任何其他RP。以下是您的RP如何提出此类请求的摘要:

var sam = FederatedAuthentication.SessionAuthenticationModule;
sam.SignOut();

var fam = FederatedAuthentication.WSFederationAuthenticationModule;
var signOutRequest = new SignOutRequestMessage(new Uri(fam.Issuer));
// optional -- put your RP's URL here
// signOutRequest.Reply = "https://localhost:44321/";
var url = signOutRequest.WriteQueryString();
Response.Redirect(url);