锁定老帖子 主题:关于CAS实现单点登录的思考
精华帖 (1) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (1)
|
|
---|---|
作者 | 正文 |
发表时间:2011-04-26
@denger
可能我所说的 涉及其他的 楼上 理解的范围业务太广了,我所指的没那么多。 业务逻辑都是与单点登录分离。 但我刚才所说并不是全指这个: 比如现有各个系统(旧系统)分开,每个系统有自己的用户表,如果不采取用户集中管理,那么采用链式查询登录后: A系统用户登录到B系统时候(第一次访问,只能获取id,等等一些基础信息),查看某些B系统特定功能权限,那么这个权限问题(是在那边分配,应为旧系统每个系统都有自己的权限管理,现在使用单点登录了,其他系统访问后怎么分配,如果今后又多几个系统集成进来呢) 所以,这里并没有涉及过多的系统的业务逻辑,只是影响到集成单点登录后,用户信息同步或者接口调用问题,其实也只是一个初始化问题。 我也觉得要有改动的也只是这个部分存在改动(不使用统一管理,LDAP),其他业务逻辑已经跟单点登录分离了,这个也是一个单点登录项目的开发者与项目应用者所站的角度不同。 其实大家讨论了这么多,对我是很有用的,问题的提出只是应为我看了讨论后才产生的,只是想多了解下方案。 |
|
返回顶楼 | |
发表时间:2011-04-26
建一个集中注册和维护的用户信息库,仅存放通用信息,例如身份证号、员工编号、姓名和口令等等,CAS在此用户库上进行集中认证。
当用户通过CAS验证访问客户端应用时,CAS传递用户凭证(身份证号、员工编号、姓名),客户端须判断该用户凭证是否在本系统中存在,如果已存在则自动进入系统,并遵循客户端权限管理; 如果用户凭证在客户端应用中没有保存过,则根据业务需要判断CAS提供的用户通用信息是否足够用,若够用直接后台写入本系统用户表,然后进入系统;如果还需补充其它信息则弹出注册页面,显示通用信息,用户补充填入其它信息后提交,这样用户下次再访问本系统时就可以自动进入; 如果用户在业务系统中原本就有账户信息(在单点登录系统实施前的旧系统),则在上诉注册页面让用户选择绑定原有账户,输入原客户端应用的登录名和登录口令,验证通过后将用户的CAS凭证和旧账户绑定保存在客户端用户表中,这样用户再次访问客户端应用时就可以使用原账户的相关信息。 |
|
返回顶楼 | |
发表时间:2011-04-26
恩!
谢谢大家的细心解答! |
|
返回顶楼 | |
发表时间:2011-04-26
最后修改:2011-04-26
楼主,把贴子中的
引用 大家可以无视上面的问题了,晕了,在Server端注册本身就是一个很扯淡的命题,用不着,怪不得CAS不提供注册的接口和实现。 修一下,免得误导别人。
另外 引用 CAS的经典做法是:在各个Client端注册,验证的话转到Server端,Server端可以配置很多个验证,只要一个验证通过了就算通过了 这确实不是经典的做法,一般都不会这么做的,无特殊情况 SERVER 端配置一个验证就行了 ,可以看看 cas官方的基于j2ee的例子。
|
|
返回顶楼 | |
发表时间:2011-04-26
denger 写道 楼主,把贴子中的
引用 大家可以无视上面的问题了,晕了,在Server端注册本身就是一个很扯淡的命题,用不着,怪不得CAS不提供注册的接口和实现。 修一下,免得误导别人。
另外 引用 CAS的经典做法是:在各个Client端注册,验证的话转到Server端,Server端可以配置很多个验证,只要一个验证通过了就算通过了 这确实不是经典的做法,一般都不会这么做的,无特殊情况 SERVER 端配置一个验证就行了 ,可以看看 cas官方的基于j2ee的例子。忙了一天,没来得及回复帖子。这就改改。 |
|
返回顶楼 | |
发表时间:2011-04-29
进行单点登录必须先统一用户,建立用户认证的统一数据库。
|
|
返回顶楼 | |
发表时间:2011-04-30
rambler 写道 建一个集中注册和维护的用户信息库,仅存放通用信息,例如身份证号、员工编号、姓名和口令等等,CAS在此用户库上进行集中认证。
当用户通过CAS验证访问客户端应用时,CAS传递用户凭证(身份证号、员工编号、姓名),客户端须判断该用户凭证是否在本系统中存在,如果已存在则自动进入系统,并遵循客户端权限管理; 如果用户凭证在客户端应用中没有保存过,则根据业务需要判断CAS提供的用户通用信息是否足够用,若够用直接后台写入本系统用户表,然后进入系统;如果还需补充其它信息则弹出注册页面,显示通用信息,用户补充填入其它信息后提交,这样用户下次再访问本系统时就可以自动进入; 如果用户在业务系统中原本就有账户信息(在单点登录系统实施前的旧系统),则在上诉注册页面让用户选择绑定原有账户,输入原客户端应用的登录名和登录口令,验证通过后将用户的CAS凭证和旧账户绑定保存在客户端用户表中,这样用户再次访问客户端应用时就可以使用原账户的相关信息。 这个方案可行并且已经完成,和这位老兄说的一摸一样 |
|
返回顶楼 | |
发表时间:2011-05-03
单点登录就是要拥护统一管理,从而才能做到统一认证。如果不统一管理用户,而是在各个应用系统当时分别管理用户。那用户提交认证信息的时候,你该去那个应用系统去判定用户的认证信息是否正确呢?
而且,在现实中,很多的应用系统不会开发数据库权限给你的。如果出了问题,责任也不好判定。 |
|
返回顶楼 | |
发表时间:2011-05-03
socket解决一切
|
|
返回顶楼 | |
发表时间:2011-05-04
你好关于这个CAS我没了解过,但是我们的网站全部实现了SSO,我们是给移动做项目的,系统与系统之间就实现这个功能,其实这个不用想的太麻烦,只要明白其中的原理就可以了,我给你说下我们系统是如何实现吧,其实告诉别的系统你在这个系统登录关键就是你的会话要统一。我们是有一个server断当用户在系统A不管登录否这个时候要和server建立一个请求,目的是为了保证会话的统一。这个时候如果用户登录了就告诉server段用户在系统A登陆了,这个时候你会发现,你当前系统A和server的会话是统一的,剩下就是有你的server端告诉别的系统你在A登录了。在别系统中注册你的用户信息,这样你只要在系统A登录点击到别的系统也是登录状态,不知道你理解我的意思不?
|
|
返回顶楼 | |