论坛首页 Java企业应用论坛

整合多个网站的身份验证

浏览 11776 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (1)
作者 正文
   发表时间:2012-06-14  
使用ROP是怎么实现啊
0 请登录后投票
   发表时间:2012-06-15  
说说我的思路
针对第一种情况:1.sso解决方案
首先部署sso server,可以像CAS那样增加(3.统一的验证窗口),以满足各个sso client的登录验证。不过针对每个client用户名不一致的情况,需要做以下工作:sso server能够根据client的访问知道是哪个client再根据client执行认证处理。这里可以采用(接口、表等)方式调用client执行认证或者由client向server同步账号信息,由server执行认证。

针对第二种情况:2.开放api
如果采用oauth,需要每个应用都增加oauth的支持,并且oauth目的是客户端不需要知道服务端的账号信息直接访问服务端提供的服务。所以oauth并不能做到SSO那样直接浏览服务端的资源(如:界面、文件等)

针对第三种情况:3.统一的验证窗口
统一的验证窗口,实际上就是每个client的访问都跳转到统一的登录窗口,然后认证成功,可以进入类似portal的界面,portal中提供每个client的链接。但是这里要明确portal的账号信息与client的账号信息是否分离?如果不分离,需要做到账号同步,如果分离,可以手动增加映射关系(比如现在访问portal中的A应用链接,点击链接时,弹出账号映射界面,由用户手动输入A应用的账号,然后再把该映射关系保存)
0 请登录后投票
   发表时间:2012-06-16   最后修改:2012-06-16
Dead_knight 写道
说说我的思路
针对第一种情况:1.sso解决方案
首先部署sso server,可以像CAS那样增加(3.统一的验证窗口),以满足各个sso client的登录验证。不过针对每个client用户名不一致的情况,需要做以下工作:sso server能够根据client的访问知道是哪个client再根据client执行认证处理。这里可以采用(接口、表等)方式调用client执行认证或者由client向server同步账号信息,由server执行认证。

针对第二种情况:2.开放api
如果采用oauth,需要每个应用都增加oauth的支持,并且oauth目的是客户端不需要知道服务端的账号信息直接访问服务端提供的服务。所以oauth并不能做到SSO那样直接浏览服务端的资源(如:界面、文件等)

针对第三种情况:3.统一的验证窗口
统一的验证窗口,实际上就是每个client的访问都跳转到统一的登录窗口,然后认证成功,可以进入类似portal的界面,portal中提供每个client的链接。但是这里要明确portal的账号信息与client的账号信息是否分离?如果不分离,需要做到账号同步,如果分离,可以手动增加映射关系(比如现在访问portal中的A应用链接,点击链接时,弹出账号映射界面,由用户手动输入A应用的账号,然后再把该映射关系保存)

第一种思路,没任何异议。
第二种和第三种有不同的看法。首先我要说下,主要不同点,账号设计的主次关系没明确。如果按照平等的关系来说,没任何异议,但是这些项目都是公司自己的,实际上最理想的方式,就是设计一个统一的用户体系,但是这样实在浪费太多的时间,无法满足上线要求,但是如果按照各自独立平等的关系来设计,类似openID的也没多意义,因此我感觉最经济的做法,就是设立一个主账号,其他项目的账号做为次账号,主账号和次账号的主要区别就是,登录的时候,是用主账号登录,其他的保留不变,这样各个子项目还是按照各自的用户体系控制资源的访问等权限。那么如何实现主账号登录呢?和子账号的关系如何呢?主账号登录之后,子账号只要利用api获取主账号的信息,就能获取已登录信息,然后子项目就用自己的账号控制资源访问,同时维护一下主账号的登录时效。和普通的区别就是,所有的子项目都需要获取主账号的信息,更新主账号的时效(选择性),感觉效率好像很低的,实际上只有子项目重要的资源才需要这样,不怎么重要的资源,就判断一下自己的cookie等就可了。最终实现的效果,就是子账号没有登录,只有主账号登录了,子账号对应的也会登录,注销的时候,主账号注销掉就可了,会把子项目的cookie清除掉的,可能子账号在内存或数据库里还是存在的,不过影响不大。这样就保持了原有子项目的用户体系,又能实现主账号控制整个项目。利用cookie在各个子项目都是有效性,就能控制所有的cookie,利用api就能确保只有主账号有效的时候,才能访问重要的资源。主要问题点,就是主账号的时效性可能有问题(如果主账号放在缓存服务器,只要子项目可访问到很容易实现),还有主账号要和各个子账号关联起来。不知道各位有什么看法。多些指正。
1 请登录后投票
   发表时间:2012-08-22  
最近也在考虑这个问题,但是还加了一次:身份授权! 这又如何设计的好了,希望可以做一个一统的后台管理系统,这样现实吗。
0 请登录后投票
   发表时间:2012-08-22  
支持sso,比较成熟了!!!!
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics