5

我一直面临经理提出的这个问题,如果客户端禁用 cookie,SSO 将如何工作,但我没有任何答案。我们目前正在使用 JOSSO 进行单点登录。我们是否有任何开源框架支持单点登录而不使用烹饪机制。

4

2 回答 2

3

在没有 cookie 的情况下,您将不得不在每个 url 请求中嵌入一些参数。例如,登录后,您为用户分配了一些任意 id 并将其嵌入到每个链接中,例如http://mydomain.com/main?sessionid=123422234235235. 它可能会变得非常混乱,因为每个链接都必须在它出门之前修复,这会减慢您的内容。它还具有安全性、日志记录和会话历史影响,当状态位于 cookie 中时,这些影响并不大。

对已登录的用户进行简单的 cookie 测试并在他们未启用 cookie 时将其发送到错误页面可能会更简单。

于 2010-09-30T15:36:52.660 回答
3

CAS项目将“票据”从登录服务器传递给消费应用程序作为 url 查询参数,消费应用程序然后向登录服务器发出反向通道请求以验证票据的真实性。这消除了对 cookie 的需求,因此可以跨域工作,但它有点“健谈”

另一个可以说是更强大的解决方案是使用基于 SAML 的产品,这是跨域单点登录的行业标准。有几个使用 SAML 的开源产品,CAS 本身有一个 SAML 扩展,但是它们通常设置起来非常复杂。Cloudseal也基于 SAML,使用起来更简单。Cloudseal 平台本身作为托管服务交付,但所有客户端库都是开源的

当然,对于所有这些解决方案,您只需将安全上下文从一台服务器传递到另一台服务器,消费应用程序无疑会创建自己的本地会话,因此您需要使用 URL 重写而不是 cookie

免责声明:我为 Cloudseal 工作 :)

于 2012-02-28T04:47:23.313 回答