SWalker
(SWalker)
新手上路

初级会员
UID 26520
精华
0
积分 3
帖子 36
金钱 3 喜悦币
威望 0
人脉 0
阅读权限 10
注册 2004-2-28
状态 离线
|
不同服务器不用域名不同系统ASP / PHP /JSP 之间通信
不同主机之间,实现N个系统,每个系统之间用户不冲突,同时可以登陆PassPort
最终实现各个系统之间用户密码在自己数据库内,主服务器内不存储用户密码,只是协调各个域用户登陆
主数据库 结构
id | domain | username ....
建立登陆主机,所有 分布系统登陆地址都指向
拷贝passport API 文件到 分布系统里,根据asp / php / jsp 做三个版本,分别内潜到各个系统之间
登陆主机 http://www.passport.cn/login?dom ... demo1.com/passport/
登陆流程
主登陆服务器登陆 -> 到 http://www.demo1.com/passport/ 验证用户信息
反馈成功登陆 / 错误登陆
if (成功登陆){
/* -> 主服务器
if (主服务器不存在A该域aaaa用户){
/* -> 分布系统/passport/
请求A该域aaaa用户信息 - 写入到主库中(这样可能会有2秒延迟)
}
主服务器成功登陆并通知各个分布系统 A 域aaaa 成功登陆
}
else{
-> 主服务器 密码错误/用户不存在
}
推出也是一样
在各个分布系统 到 passport 退出
passport 会通知各个分布系统 A 域aaaa用户退出
技术改造
需要更改各个系统登陆和退出位置 和 登陆退出认证
各个分布系统都存在独立秘钥,不会向主服务器或者其他服务器暴露自己用户信息密码敏感用户资料,
而且随时可以脱离主服务器的管理.
主服务器负责管理用户和秘钥,通知各个分布系统用户的登陆退出
使用webservies 传递 域+秘钥 加密过的信息,保证无法伪造
当一个A域aaaa登陆到B域时候,会向主服务器请求用户信息,但aaaa用户在在B系统登陆的时候
却是到A域去验证密码
这样可以保证各个系统之间用户信息不会暴露,他们之间只有对主服务器的信任关系.
可以实现ASP PHP JSP不同服务器之间的用户的使用,一次注册以后各个系统都可以不在注册
一次登陆各个系统都不用重新登陆,也不会有跳转.
而且每个系统可以随时使用主服务器登陆,或者是随时脱离主服务器
这是一个PASSPORT在非技术支持下的最完美的方案了,唯一存在的问题就是webservies 的性能问题了
我是 落伍者 原代码版斑竹,去年曾经用这个方案实现了一个外企多个系统多种程序等单点登陆问题
但这样的东西还是java把,毕竟php只是勉强实现的,不太完美
PHP在服务器间通信实在不行,而java asp.net 可以实现 而且java 是强项
以上只是介绍,因为快结婚了,如果有需要可能我会公布部分核心代码
我正在考虑发布 这个系统还是最近一套 wap 移动博客+手机全面控制服务器代码
下月回家结婚后见
|
|