13

我们正在使用客户 ASP.NET 按钮注销使用 ADFS 进行身份验证的 Web 应用程序。我们已经尝试了几个选项来尝试让应用程序正确退出,但似乎没有任何效果。

它通常会将您带到联合服务器上的注销页面,该页面显示您已正确注销,但如果您回击,您仍然可以访问 Web 应用程序。

试过:https://{DNS_name_of_RP_STS}/adfs/ls/?wa=wsignout1.0

https://{DNS_name_of_RP_STS}/adfs/ls/?wa=wsignout1.0&wreply={post-sign-out_landing_URL} 等

有没有人让它正常工作?

谢谢你的时间

4

3 回答 3

9

据我了解,您只需使用适当的 wssignout 操作将用户重定向到 ADFS。这不会删除为您的应用程序创建的身份验证 cookie,因此用户保持登录状态。

我使用 WSFederationAuthenticationModule 触发联合注销:

string absoluteUrl = HttpContext.Request.Url.AbsoluteUri;
string replyUrl = absoluteUrl.Substring(0, absoluteUrl.LastIndexOf("/") + 1);
WSFederationAuthenticationModule.FederatedSignOut(null, new Uri(replyUrl));

我正在回复应用程序,因为我想确保用户已注销。

希望这可以帮助。

于 2011-07-08T14:24:30.710 回答
2

我们也有类似的问题。对我们有用的解决方案建议在 ADFS 2.0 管理控制台的信赖方信任中添加一个端点。请按照以下步骤操作:

  1. 在 google 配置(高级)-> SSO 中添加注销 URL -

    注销 URL = https://{DNS_name_of_RP_STS}/adfs/ls/?wa=wsignout1.0

  2. 转到ADFS 2.0 管理控制台。在端点选项卡下,单击添加

  3. Endpoint Type = SAML Logout, Binding = POST, URL = https://myadfsserver.domain.net/adfs/ls/?wa=wsignout1.0如果您希望它重定向到另一个页面,您可以设置响应 URL,但我们喜欢ADFS 站点,因为它警告您已注销,但您仍应关闭浏览器。

于 2013-01-21T00:32:34.567 回答
2

对于我的应用程序,使用“?wa=wsignout1.0”URL 会清除应用程序 FedAuth cookie 和 ADFS MSISAuth cookie。

您最终进入“您已退出”页面。

从那里,后退按钮将您带回应用程序,但如果您尝试执行任何操作,您将被重定向到 ADFS 以再次登录。

于 2011-07-10T20:57:46.160 回答