2

为了实现单点注销,我希望用户在用户单击应用程序 A 上的注销时另外注销应用程序 B。是否可以使用对应用程序 B 的某种形式的 POST 请求来实现这一点?即当用户点击注销时:

  1. 生成现有的 POST 请求以注销应用程序 A
  2. 生成额外的 POST 请求以注销应用程序 B。
4

6 回答 6

1

最简单的方法是检查您的 SSO 提供商是否具有单点注销功能。

对其进行编码和部署会使您的整体 IT 解决方案变得有点脆弱。

另一个建议是与您的(企业)架构师一起解决这个问题,因为 SSO 通常是一项企业计划,并在这篇文章中指出她(非常有说服力)的论点:http: //lists.danga.com/pipermail/yadis/2005-July /001085.html

于 2009-06-24T08:12:23.257 回答
0

让它成为基于 cookie 的身份验证怎么样?相同的 cookie 为各种应用程序(在您的情况下为 2 个不同的应用程序)验证用户身份。一旦用户从一个应用程序(应用程序 A)注销,则使 cookie 无效(按到期日期),以便每当用户发送 POST 请求时休息应用程序(应用程序 B)的请求未处理。每个应用程序都需要一个跟踪每个 POST 请求以验证 cookie 的 Servlet。

于 2009-07-03T18:02:55.487 回答
0

是的,你如何做到这一点取决于你使用的编程语言。

例如,在 ASP.Net 下,您将在处理应用程序 A 的注销事件中使用 System.Net.HttpWebRequest 向应用程序 B 发出注销请求

如果您可以发布您正在使用的语言,我可以举一个合适的例子

于 2009-06-24T07:51:23.097 回答
0

根据您的身份验证系统的实现,您可能/需要使用 JavaScript 而不是从服务器端发送 POST。

于 2009-06-24T08:02:37.020 回答
0

没有具体信息,很难给出具体答案,但是当您提到 POST 时,我会假设涉及浏览器。

提交表单时会发生 POST(不使用 Javascript 或类似内容)。由于表单只能有一个动作,它只能针对一个服务器端页面。

一种解决方案是在收到一个操作后简单地将应用程序 A 转发注销凭据到应用程序 B,这样可以有更多机会检查返回。

但是,如果您设置为 POST'ing 到不同的页面,请参阅本教程以了解与 iframe 相关的 hack - http://www.codeproject.com/KB/scripting/multiact.aspx

于 2009-06-24T08:03:45.787 回答
0

如果您的登录会话由 cookie 存储,并且您无需提供任何其他内容即可退出应用程序 B,则在 javascript 中清除 cookie 通常会破坏会话并注销用户。

于 2009-06-26T02:59:30.007 回答