ADFS 2.0 Web 应用注销

Posted

技术标签:

【中文标题】ADFS 2.0 Web 应用注销【英文标题】:ADFS 2.0 Web app signout 【发布时间】:2011-10-01 04:13:01 【问题描述】:

我们正在使用客户 ASP.NET 按钮来注销我们使用 ADFS 进行身份验证的 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 等等

有人让它正常工作吗?

感谢您的宝贵时间

【问题讨论】:

【参考方案1】:

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

    在 google 配置(高级)中添加退出 URL -> SSO -

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

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

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

【讨论】:

【参考方案2】:

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

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

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

【讨论】:

【参考方案3】:

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

我使用 WSFederationAuthenticationModule 来触发联合注销:

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

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

希望这会有所帮助。

【讨论】:

非常感谢。我在链接按钮的 onclick 事件中添加了用于注销的代码,它对我有用 如何在web.config中添加WSFederationAuthenticationModule? 您需要将其添加到模块集合中的<system.web><httpModules><system.webServer><modules>。如果您不确定在这两个地方添加它。这是一个例子<add name="WSFederationAuthenticationModule" type="Microsoft.IdentityModel.Web.WSFederationAuthenticationModule, Microsoft.IdentityModel, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" preCondition="managedHandler" />你可以找到更多信息:goo.gl/iY8Dgv @shizik 我在httpModulesmodules 中添加了它,我还在configSections 中添加了section 以消除一些阻止我登录的错误(Source)。然后我在Signout.aspx.cs Page_Load Event 中添加了您答案的 3 行。然后我测试了我的应用程序,但现在我在注销后得到了空白页面,那里没有错误或警告消息。现在,我该怎么办。 您的 Signout.aspx 页面是否受到保护,即它不允许匿名请求。因为如果我没记错的话,这个想法是当您被重定向回注销时,系统应该自动将您重定向到登录页面。

以上是关于ADFS 2.0 Web 应用注销的主要内容,如果未能解决你的问题,请参考以下文章

SAML 注销时的 ADFS NullReference 异常(事件 303)

如何用passport-saml修复SLO,它在第一次注销时有效,但在以后的注销中不起作用

MVC 5、WIF (System.IdentityModel) 和 ADFS 未实际进行身份验证,联合注销时出错

SAML 2.0 单次注销问题 - IdP 应如何终止在不同用户代理中运行的 SP 会话?

ADFS3.0/4.0 访问登录页跳转到注销界面后再跳转回登录页的方法

Grails:运行ajax请求时用户注销