一种SSO的实现方案
跨域的融合应用,企业内网的自动化办公应用与放置在公网上的应用集成
流程:
1、用户通过浏览器登陆集成的门户
2、集成的门户返回页面,用户选择外域提供的功能链接
3、链接发送到跨域接口模块
4、跨域接口模块解密藏在cookie中的集成门户颁发的登陆票,获取userid,跨域接口模块生成一个重定向到外域应用门户网页,并将用户ID及本域服务器身份认证信息放置到自动提交的隐藏表单中。隐藏表单的提交地址是外域的页面地址
5、跨域接口模块把网页返回给浏览器,浏览器自动提交隐藏表单,请求发送外域WEB服务器。外域服务器登陆用户。
特点:
1、后续请求不过跨域接口模块,直接与外域WEB服务器连接
2、对同一个用户,本域WEB服务器与外域WEB服务器维护的是独立的两个COOKIE,有独立的超时时间。本域应用用户logout后,外域应用会话有可能还存活。
3、基于安全考虑,本域的传递到外域服务器的信息可以进行加密。
评论
我还是倾向Session信息使用各自系统自己的,在Session上做一些处理,针对用户登录信息,到统一的地方去读比较好。不要让这个统一的地方有处理功能,因为那个依赖性太强。仅让其作为一个存储空间并具备超时机制就可以了。
有一点疑问:
1。"...藏在cookie中的集成门户颁发的登陆票..."
登陆票的结构和生成规则是什么样子的?
2。"...并将用户ID及本域服务器身份认证信息放置到自动提交的隐藏表单中"
隐藏表单的作用很明显,只是里面的密码隐藏域存放的是密码明文吗?
shallon 写道:
跨域的融合应用,企业内网的自动化办公应用与放置在公网上的应用集成
流程:
1、用户通过浏览器登陆集成的门户
2、集成的门户返回页面,用户选择外域提供的功能链接
3、链接发送到跨域接口模块
4、跨域接口模块解密藏在cookie中的集成门户颁发的登陆票,获取userid,跨域接口模块生成一个重定向到外域应用门户网页,并将用户ID及本域服务器身份认证信息放置到自动提交的隐藏表单中。隐藏表单的提交地址是外域的页面地址
5、跨域接口模块把网页返回给浏览器,浏览器自动提交隐藏表单,请求发送外域WEB服务器。外域服务器登陆用户。
特点:
1、后续请求不过跨域接口模块,直接与外域WEB服务器连接
2、对同一个用户,本域WEB服务器与外域WEB服务器维护的是独立的两个COOKIE,有独立的超时时间。本域应用用户logout后,外域应用会话有可能还存活。
3、基于安全考虑,本域的传递到外域服务器的信息可以进行加密。

这玩样的设计思路同cas如出一辙.而且还可以给你加强一下,用户登入任一系统时如果没有当前用户信息则redirect到统一登陆门户.
问题是你要修改其他应用的登陆模块,厂商们肯么?
而且sso的难度不在login验证,而在于用户信息在多系统之间的同步以及各系统之间的独立授权(统一授权基本不可行.我从来就没有看到有两家厂商产品天然的就能统一授权).
1、企业的内网服务器不能为公网访问,企业中的浏览器通过另外的企业管理的httpProxy,连接到公网,所以处在外域的被企业门户集成的应用不能在LOGOUT的时候告诉企业门户,以便将Session登出。在设计上单点登出也没有作为要求。
2、外域应用在登陆后就与企业的内部应用没有关系,既是安全上的要求,也对原有系统修改最少。
2、对同一个用户,本域WEB服务器与外域WEB服务器维护的是独立的两个COOKIE,有独立的超时时间。本域应用用户logout后,外域应用会话有可能还存活。
你这样的意思是登录后,外域服务器和本地域服务器之间就不再有任何联系和通信?或者说是两个不同的身份认证中心了?
这个是很严重的问题.应该当成缺陷,而不应该当作 特点.
解决办法还是需要一台中央认证服务器(可以用任何一个所有服务器都能访问到的机器).
另外这期间可以利用rpc(或者是rest)来减少客户端与服务器的交互(同时可以提高安全性).
补充一下,我觉得利用ajax+ hession(一个轻量级RPC组件)+ REST(简单的就可以 可以参考江南白衣的那篇用httpClient组件实现简单REST的文章)+EHCACHE 肯定可以做出一个很不错的 轻量级的 SSO方案来
楼主如果对这个感兴趣欢迎和我一起探讨.
我以前做过一个简单的 但是很不成熟,一直想做个稍微好点的 ,但是没时间没精力啊 呵呵
发表评论
提醒: 该博客已发表在公共论坛,博客所有留言会成为论坛回贴,留言请注意遵守论坛发贴规则
- 浏览: 19071 次
- 性别:

- 来自: 0

- 详细资料
搜索本博客
我的相册
共 20 张
最近加入圈子
最新评论
-
又见内存泄露
说的很好,以后有个解决问题的参考了:)
-- by lean1252 -
一种SSO的实现方案
登录信息的管理中心一旦建立,就会造成所有的系统都对这个管理中心产生依赖。如果这个 ...
-- by downpour -
一种SSO的实现方案
有很多所谓的登陆的话,就是从统一登录系统中想办法把用户信息传递到另外的系统。这似 ...
-- by 香克斯 -
又见内存泄露
很是精髓,但是没有做运维,还不是很懂。
-- by zpple -
SAAS在电子商务中的应用分 ...
淘宝模式不更好?
-- by rtdb






评论排行榜