4

我对 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 中配置的东西还是需要一些编码?

如果你有一些见解,我真的很感激。

谢谢你。

4

1 回答 1

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);
于 2014-04-22T22:10:27.387 回答