原创作者: limogogogo   阅读:7278次   评论:1条   更新时间:2011-05-26    

近日学习研究了SSO,有很多疑问想与大家交流。之前发了帖效果不佳,疑惑依然存在。今日将自创的SSO应用方案整理出来,算是抛砖引玉,希望通过交流分析出最佳的应用模式,互进共勉。

目标:整合现有邮件系统、论坛系统、博客系统,实现单点登陆。

面临问题:跨域;应用系统由不同的开发语言编写(如jsp、asp、php、cgi)。

整合要求:考虑历史数据的兼容性、完整性;尽量使应用系统的客户化改造最小、涉及的影响面最小;考虑未来可能使用的系统,预留接口。

方案:整合过程中需新开发统一认证系统,负责用户信息管理。用户信息注册由统一认证系统完成,邮件系统、论坛系统、博客系统中的用户ID与统一认证系统中的用户ID保持一致。即统一认证系统每产生一个用户ID邮件系统、论坛系统、博客系统也要产生相应的用户ID。

采用CAS实现统一验证,用户信息同步应用CAS的Proxy模式。这里重点阐述用户信息同步策略。同步过程主要有两方面,如下:
1、注册新用户
统一认证系统进行用户ID唯一性检查,检查过程依赖于邮件系统、论坛系统、博客系统获取信息,只有全部通过唯一性检查方可注册。
2、登陆应用系统
a、统一认证系统进行身份验证后重定向到应用系统。
b、应用系统获取用户ID,检测本地是否存在该用户ID,如不存在则创建,然后执行登陆操作。

评论 共 1 条 请登录后发表评论
1 楼 xiaoshiyilang 2011-07-26 16:27
我现在也是在研究CAS,遇到诸多的问题:
1.注册新用户,除了楼主说的用户ID的唯一性。还有这个用户有多少系统的登录权限,比如:总共有六个系统,注册的新用户只能访问六个系统中其中的三个系统。(这个让我很无语,公司的需求如此)。
2.登录
  虽然CAS提供统一认证系统,但是任意两个系统中的用户信息没有重叠的用户,比如:A系统的用户P登录B系统成功后,但是B系统中没有用户P,登录成功后的权限问题要如何设置(纠结中)。按照楼主的意思不存在则创建的话,CAS 中如何得到用户的密码?而且密码还是加密过的,而且各个系统中的密码加密方式不一样,这要怎么解决?
希望和楼主一起探讨探讨!

发表评论

您还没有登录,请您登录后再发表评论

文章信息

  • fins在2007-06-16创建
  • fins在2011-05-26更新
Global site tag (gtag.js) - Google Analytics