SSO是单点登录的意思.我相信各位都应该知道使用SSO有什么好处.那废话就不多说了.直接来说一下我的思路吧.
我的思路是采用COOKIE来实现,(COOKIE的有一定的限制性,暂不评论).如果采用COOKIE的话,那首要解决的即是COOKIE的跨域问题.可关键是我们无法操作不同域的COOKIE.如果真能操作的话,那就也没有安全性可言了.只能曲线救国了.那么我们可在登录一个网站的时候,主动的要求其他的网站发出其COOKIE. 画了个图,大家看一下
在第三步时,即使用动态追加脚本块,或使用IMG对象来实现向另一个网站请求,使该网站有机会能写入自己的COOKIE.
脚本块的话,如下
var s=document.createElement("script");
s.src="http://www.site2.com/a.aspx";
document.getElementsByTagName( "HEAD")[0].appendChild(s);
如使用img 则更简单<img src='http://www.site2.com/a.aspx'>
在a.aspx中我们则可以写回相应的COOKIE,以便以后访问时,能读取到相应的COOKIE.
在认证服务器上,不仅是认证工作,同样还要维护相应的联盟成员站点的信息.
这个方案相对来说比较的简单,安全方面暂无考虑.当然我想在内网使用这种方案的话,还是可性的,只要做少量的预防性工作即可.同时对于原有应用的改动量也不是很大.
实验代码下载,https://p-blog.csdn.net/images/p_blog_csdn_net/greystar/EntryImages/20080807/SSO2.rar.jpg
下载后请将改一下文件名.本来是rar的,找不到上传文件的地方,就改了一下后缀名.