问题描述:在一个比较复杂的网站环境下。有多个产品向外提供服务。每个产品下都有自己的用户登录界面。现在需要设计一个统一的登录界面。当用户在这个界面登录后就可以自由的使用各个产品和服务。同时意味着用户用一个帐号可以在不同服务里登录,另一方面就是在一个服务里面登录后可以无障碍的漫游到其他服务里面去。
实际应用:Sohu的Passport将focus.cn,17173.com,sogou.com,chinaren.com这四个域名下的产品全部整合在一起了。用户在这四个站点中任何一个地方都可以登录。当用户登录后可以自由的使用其他域名下的服务。现在很多网站上都有bbs blog album服务。这些服务一般也是自己维护自己的用户信息。当发展到一定时候,也需要一个Passport机制整合所有服务,使用户可以单点登录。
Sohu的实现方案
在http://passport.sohu.com/ 登录后 fiddler可以拦截到如下的返回信息:
由于passport.sohu.com的登录界面使用了iframe隐藏提交。所以页面没有看到刷新。隐藏的iframe把用户名和加密的password和其他信息发送给了passport.sohu.com。passport.sohu.com在Response中设置了成功登录的cookie。这个cookie可以证实这个用户成功登录了passport.sohu.com。
多站点整合—单点登录简单方案
最新推荐文章于 2023-08-14 11:42:01 发布
本文介绍了在多站点环境中实现单点登录(SSO)的简单方案,以Sohu的Passport系统为例。通过在护照网站登录后,利用JavaScript和iframe在目标站点设置登录Cookie,实现跨域登录。详细阐述了Sohu的登录流程,包括服务器端的Redirect设置和P3P头的使用,以及一种更轻量级的解决方案,减少请求次数和服务器端的跳转。
摘要由CSDN通过智能技术生成