关于CAS实现单点登录的思考

本文探讨了单点登录系统CAS中两种用户注册方案的优劣,并邀请读者共同讨论技术难点。第一种方案是在Server端集中管理用户认证信息,第二种方案是在各Client端分散管理。

      最近要做单点登录,于是研究了两天CAS,对用户注册这个问题很纠结,有以下两种方式,不知哪个更好,期待大家讨论。

 

      1、Server端有DB,自己做好用户注册的实现,将接口提供给各个Client端(具体用什么方式让Client端调用是个难点,难点1)。

       这样的话,用户登录某一应用(CAS中的Client端)时,会被拦截,转到Server端,在Server端读数据库进行验证,验证通过后,返回到Client端,然后Client端再读自己的数据库,取出用户的信息(此处很纠结,因为各个Client的用户实体的属性是不一样的,比如有的Client端的用户有手机号这一属性,有的则没有,所以综合了一下,只希望在Server端存用户的用户名和密码)。

 

      2、Server端无DB,注册时到各Client端只把用户信息保存到各自的DB。

      这样的话,用户登录某一应用(CAS中的Client端)时,会被拦截,转到Server端,Server端根据请求的不同判断该调用哪个Client的DB进行验证(难点2),此处又要有分支了:

      1)、验证的时候把用户信息读出来,验证通过后,将用户信息直接传给Client端(难点3),这样Client端就不用再读DB提取用户信息了。

      2)、验证的时候不读用户的信息,验证通过后,返回到Client端,Client端再读用户信息。

 

大家觉的用什么方式好一些?并希望大家对标红的三个难点进行讨论。

 

 

这个帖子不错:http://www.iteye.com/topic/165313

 

BTW:

感谢大家的热情参与,特别鸣谢:wad12302、denger 、fallen_lord、lovit

大家可以看一下他们的发帖,会得到不少信息。

扩展CAS等具体做法请参照fallen_lord的发帖。

稍后我会参照他们的观点作出整理,loading..........

 

-----------------------------------分割线-----------------------------------------------------

 

现在正在实现着,等实现好了再把方案完整的贴出来。

采用的方式是REST,谢谢denger的建议,至于CAS怎么集成REST,大家可以去看denger博客上的文章:http://denger.iteye.com/blog/973068

 

loading...........

 

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值