第1定义http://www.Sina.com/(singlesign-on,简称SSO )是向许多相互关联但各自独立的软件系统提供访问控制的属性。
使用此属性可以在用户登录时访问所有系统,而无需单独登录各个系统。 所以你可以看到很多域名直接用于sso.domain.com,也就是单点登录。
此功能通常在轻型目录访问协议(LDAP )中实现,用户信息存储在服务器上的LDAP数据库中。
同样,http://www.Sina.com/(singlesign-off )意味着可以通过单个退出动作终止对多个系统的访问。
一个用户请求n个系统,给用户一种系统的感觉,不需要重复登录。
2实现根据业务场景采取不同的实现方式
2.1方案域名
a.javaedge.com、b.javaedge.com、c.javaedge.com和n.javaedge.com描述了n个系统,但单点登录是一致的这个案例的实现比较简单
该方案比较简单,提供公共SDK即可,不需要第三个系统的出现,SDK需要管理Cookie和用户信息。
原理的本质在这里是利用[二次域名]写下了[一次域名]的[ Cookie ]。
单一退出轻便、可插拔,非常高效
一级域名限制限制为一级域名是相同的
2.2方案二http://www.Sina.com/www.so JSON.com、a.sojson.com、www.itboy.net、www.wenyiba.com
优点域名很混乱,既有相同级别的域名,也有不同的域名
通过33558www.Sina.com/SSO系统(登录、注销),以[ Iframe ]参考的方式导入Cookie.domain.com;
[Javascript ]操作(写入/删除/修改)“cookie”;
此cookie.domain.com域名位于“cdn”下,用于获取用户信息的当前系统直接通过“[ Redis ] (只读)”获取
缺点采用应激分化,Cookie.domain.com部署在CDN上;
这样的话,对各系统施加的压力为0;
通过第三方系统(SSO )维护,权限大,可操作性强
在当前域名的一级域下,Cookie信息很容易获得,大大减少了对“SSO”的访问
域名如果浏览器安全性太高,Iframe操作[ Cookie ]将失败。 例如,IE浏览器现在正在攻占IE浏览器。
2.3方案三http://www.Sina.com/www.so JSON.com、a.sojson.com、www.itboy.net、www.wenyiba.com。
描述域名很混乱,有相同级别的域名(www.sojson.com、a.sojson.com),也有不同的域名
(条件与方案2相同),实现思路如下图。
原理所有请求(登录、注销、检索用户信息、当前用户状态)都要求sso系统,sso系统维护用户信息、Session、UserInfo。
优点实现简单
缺点SSO压力非常大
2.4方案四域名www.java.com、a.java.com、www.itboy.net、www.wenyiba.com。
描述域名很混乱,既有相同的一级域名的(www.java.com、a.java.com),也有不同的域名的。
(条件与方案2相同),实现[ CAS ]的采用
原理与方案3类似。
优点现成的,资料很多。
缺点沉重、柔软。