跨主域实现SSO的思路

同一主域(即:同一个一级域名下的所有子域名)下包括多服务器共享SESSION数据实现的方法很多,这里就不多说了!

现在关键的问题是不同主域的SSO的实现!这个问题比较复杂,能实现,但好多都是用一些特殊的软件系统来支撑的。。。

实际上,SESSION也是需要COOKIE来支持的,COOKIE的不支持跨主域就决定了SESSION不能跨主域!那么,如何实现跨主域呢???

这又是我在实现我的项目中的SSO时,突然想到的一个简单的方法,供大家商讨

一、假设 有A.COM , B.COM , C.COM 这三个主域,其中 A.COM主要负责验证通行证(速度比较快), B.COM 和 C.COM都是具体的应用

二、B.COM 和 C.COM 以及 A.COM 自己的一些应用都需要到 A.COM来获取信任(登陆)

三、为各主域分配一个子域 passport.B.COM、passport.C.COM,它们的IP都指向 A.COM所在的主机地址

四、用户在登陆通过验证后,设立一个跳转规则,以session_id作为参数,逐个跳转 passport.B.COM、passport.C.COM (实际上这些子域可以建立到A主机的默认站点,通过数组以及一些参数就可以实现逐个快速跳转),跳转直接用PHP的 header("Location: passport.B.COM/?sid=xxxxxxxx&i=0"); ,在跳转的同时,覆盖当前主域的session_id为传递过来的session_id就可以了。

这里有一些考虑:

1、将各 passport.X.COM分配到同一个速度比较快的主机上,有利于快速跳转,而用户看不见复杂跳转的过程。。。

2、同一主机上跳转可以避免中间跳转环节的出错导致跳转失败。

我只在本机模拟多主域上测试过,效果不错;还没有在INTERNET的网络上具体的试验,请大家有空尝试一下,并提出更好的 SSO 解决方案 ...

时间: 2025-01-20 12:33:03

跨主域实现SSO的思路的相关文章

浅析JSONP解决Ajax跨域访问问题的思路详解_AJAX相关

前几天,工作上有一新需求,需要前端web页面异步调用后台的Webservice方法返回信息.实现方法有多种,本例采用jQuery+Ajax,完成后,在本地调试了一切ok,但是部署到服务器上以后就出现问题了,后台服务调用没有响应,怎么回事?代码没怎么改动,唯一修改的地方就是jQuery的ajax方法中的url地址.难道是这里的问题,经过检查和调试,发现原来是同源策略在作怪,我们知道,JavaScript或jQuery是在Web前端开发中经常使用的动态脚本技术.在JavaScript中,有一个很重要

js iframe跨域访问(同主域/非同主域)分别深入介绍_javascript技巧

js跨域是个讨论很多的话题.iframe跨域访问也被研究的很透了. 一般分两种情况: 一. 是同主域下面,不同子域之间的跨域: 同主域,不同子域跨域,设置相同的document.domian就可以解决; 父页访问子页,可以document.getElementById("myframe").contentWindow.document来访问iframe页面的内容:如果支持contentDocument也可以直接document.getElementById("myframe&

跨终端体验完整性的一些思路与案例

对于产品而言,用户更看重的是你的服务,至于承载这个服务的载体,并不重要.而作为产品,也必须去试图根据不同场景的切换去满足他们. 可以预见的,用户将会在不同的屏幕上体验你的产品,而用户在各个屏幕上的用户体验也将趋于一致.对于用户而言,只在乎你所提供的服务,这与他在什么屏幕上体验无关. Evernote是跨终端体验完整性的典型案例.我可以在手机上继续在Mac上完成了一半的文章,也可以在Pad上读完某一个被共享的文档.对于我来说,随时随地的记录与查看的体验是完整的. 百度云在跨终端体验完整性上则做的更

服务器-windows 2008 此工作站和主域的信任关系失败

问题描述 windows 2008 此工作站和主域的信任关系失败 用虚拟机安装的域今天莫名蓝屏了,无法开起来,复制了之前备份的,开起来了,但是电脑连的时候提示此工作站和主域的信任关系失败,怎么处理,服务器上用域帐号登录也无法进入 解决方案 http://bbs.51cto.com/thread-1158255-1-1.html

基本声明认证,如果有二个站点,主域相同,怎么共用登录信息

问题描述 基本声明认证,如果有二个站点,主域相同,怎么共用登录信息 基本声明认证,如果有二个站点,主域相同,怎么共用登录信息怎么在一个站点中登录,另一个站点也登陆.c# asp.net mvc 解决方案 http://www.cnblogs.com/yinhaiming/articles/1407679.html

浅谈数据中心的选址:混合跨城域网络

像亚马逊,戴尔,谷歌,微软和雅虎这些企业都将他们的大型内容数据中心设在华盛顿州.其中许多设施都位于一个名叫昆西的乡村小镇,因为该地区有水坝优势,能够提供低成本的绿色电力资源.同样,亚马逊在华盛顿的Umtilla建立了一处数据中心,以获得低成本水力发电.距离这些农村地区最近的城市西雅图和波特兰也有300公里,像其他远程数据中心一样,选址在这些地方的数据中心也面临着许多新的挑战,其中包括: 浅谈数据中心的选址:混合跨城域网络 1.增加了跨区域带宽需求 随着数据内容的快速增长,正推动许多大型企业的数据

oracle11g-Oracle切换主备问题,提供思路和方法

问题描述 Oracle切换主备问题,提供思路和方法 在两个服务器上装2台oracle数据库,2台数据库分别同时接收一个平台发来的数据,另外一个web项目进行数据查询, 当主库数据库挂掉后,怎么快速切换到另一台备用数据库,要怎么检测 有没有什么好的思路或方案 解决方案 先看一下 Oracle主备库配置过程 解决方案二: 上面的答案有帮助吗?如果还有问题,请提出来,如果对答案满意,请顶一下,并标记为采纳答案,谢谢!

12306泄露事件升级:主域名下6分站存严重漏洞

12306泄露事件升级:主域名下6分站存严重漏洞12306泄露事件升级:主域名下6分站存严重漏洞12月25日消息,瑞星公司针对12306网站约用户隐私被泄露事件进行调查后发现,12306网站主域名下共有6个分站存在严重的Strust2框架的远程执行漏洞.据了解,黑客可利用该漏洞控制分站服务器,进而攻击整个12306网站,并窃取所有数据库中的信息.因此,本次信息泄露事件有可能 还会继续升温 发酵.瑞星安全专家介绍,黑客可使用专业工具直接对网站进行攻击,遥控网站服务器下载恶意文件,获取最高控制权限,

PHP跨网域跨主机跨server上传文件实例教程

如何跨网域跨主机跨server上传文件?一般最基本的上传方式是: 1.使用者把文件上传到 web server 2. web server 把上传的文件 利用 move_uploaded_file() 函式,将档案移到指定的文件夹内 但是,有时候我们需要把上传的档案放到另一台专门放文件的 file server,这时候,就无法利用 move_uploaded_file() 去搬移文件了,而需要利用 ftp 去传送文件至 file server,方法很简单... 直接看程式码:    代码如下 复