SSO实现调研

零、耶鲁CAS SSO(支持跨域、子会话)

《SSO CAS单点系列》之 实现一个SSO认证服务器是这样的!


一.sohu 利用隐藏iframe跨域写cookie的方式

过程简述:

1.在http://passport.sohu.com/下登录成功

2.浏览器再请求http://passport.sohu.com/sso/crossdomain_all.jsp?action=login,返回一段同时在多个站点登录的html

3.浏览器请求 http://passport.sohu.com/sso/crossdomain.jsp?action=login&domain=17173.com,服务端重定向到17173.com的登录url,并在Response中设置cookie


优点:实现简单

缺点:安全性差(登录信息完全存储在浏览器端)、浏览器兼容性差的IE需要下载P3P协议,才可以跨域写cookie


搜狐单点登录实现方案

http://www.t086.com/article/4780


二.jd.com 登录成功后通过jsonp给其他域名设置cookie

过程简述:

1.在http://passport.360buy.com/下登录成功,设置cookie ceshi3.com

2.浏览器发ajax请求(hello)到http://passport.360buy.com/,hello请求返回json对象a,a包含sso(url地址数组,含请求参数)

3.js遍历对象a,逐个请求下面的地址

"http://sso.360buy.com/setCookie?t=sso.360top.com&callback=?"

"http://sso.360buy.com/setCookie?t=sso.minitiao.com&callback=?"

"http://sso.360buy.com/setCookie?t=sso.ehaoyao.com&callback=?"

"http://sso.360buy.com/setCookie?t=sso.jcloud.com&callback=?"

"http://sso.360buy.com/setCookie?t=sso.qianxun.com&callback=?"

4.上一步http://sso.360buy.com/setCookie系列接口各自302跳转到一个t参数对应域名下的sign接口,并统一包含一个c参数

5.浏览器请求sign系列接口,设置cookie ceshi3.com

6.登出时,跳转到登出页面,JS发起getjson请求,删除所有cookie

京东SSO单点登陆实现分析

http://blog.chinaunix.net/uid-25508399-id-3431705.html

你可能感兴趣的:(SSO实现调研)