公司现在三个系统,购买的cms,上面有个会员系统, 单独的blog系统,discuzNT。其中论坛是遗留系统里面有用户信息,cms的会员系统也有遗留的用户信息,blog准备开发,决定弄个开源的算了,是在没时间开发blog。三个数据库,三张user表,想要登陆一次可以进入三个系统,也就是单点登录。大家有好的解决方案么?
我看过了cas,josso,还是有些不明白。
积分只有36,拿出35出来做奖励。^_^
公司现在三个系统,购买的cms,上面有个会员系统, 单独的blog系统,discuzNT。其中论坛是遗留系统里面有用户信息,cms的会员系统也有遗留的用户信息,blog准备开发,决定弄个开源的算了,是在没时间开发blog。三个数据库,三张user表,想要登陆一次可以进入三个系统,也就是单点登录。大家有好的解决方案么?
我看过了cas,josso,还是有些不明白。
积分只有36,拿出35出来做奖励。^_^
如果都是java的系统,可以用yale cas之类的
如果不是的话,可以根据sso的原理,自己做一个跨语言和平台的简单sso:
原理如下:
有A B C D。。。多个应用系统(asp php j2ee asp.net都成,可以使用session和cookie,可以访问网络),实现统一认证方式。实现一个新的web应用AU(也可以利用已有的应用中的验证模块。)
当用户要访问A应用时,A系统检测session和cookie,没有验证的话,跳转到AU系统的登录界面,同时将要访问的A系统的url作为参数传给AU系统。
AU系后提供一个注册\登陆的页面,一个对外的接口。
用户可以在此登陆,登陆后生成一个标识(ticket),跳转到用户之前要访问的应用A的路径,同时将标识作为参数传过去。A应用里通过这个标识,访问AU系统的对外接口,传入唯一标识可以拿到此用户的信息,AU系统清除ticket,应用A存入用户信息到session/cookie中,即用户已经可以使用应用A了,其他过程类似。 如果使用ticket去AU系统拿不到用户信息,说明用户在AU系统登录失败,调整出错或是AU系统重新登陆。