喜悦国际村 
» 游客:  注册 | 登录 | 搜索 | 统计 | 喜悦证交所 | 帮助

RSS 订阅当前论坛  

【村长请吃饭啊】 ---北京诚聘--- 【你还在犹豫吗?】

上一主题 下一主题
 40  4/4  <  1  2  3  4 
     
标题: passport设计一例  
本帖已经被作者加入个人空间
 
SWalker (SWalker)
新手上路
Rank: 1
初级会员



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 移动博客+手机全面控制服务器代码

下月回家结婚后见
2006-11-24 10:37 PM#31
查看资料  发短消息  顶部
 
nightsailer
新手上路
Rank: 1



UID 83181
精华 0
积分 3
帖子 3
金钱 3 喜悦币
威望 0
人脉 0
阅读权限 10
注册 2006-11-15
状态 离线
[推荐阅读] php如何连接db2数据库
可以参考一下openid。
或者可以考虑一下的实现:

1. 用户从a.com访问,当需要授权时,A定向到passport.com,传递参数return_url。
2.passport.com检查用户是否已经有登陆的session,没有显示登陆页面
3.用户在passport.com登录.
4.passport.com生成一个token,定向到return_url,同时启用用户的session,将a.com注册
5.A.com的api检查token的合法性,合法则设置自身的事物
6.用户访问B.com,B.com定向到第2步,由于用户已经在a.com登录,因此立即生成b.com的token,注册b.com
7.用户从b.com注销,定向到passport.com
8.passport.com取消事物,通知所有注册该事物的站点的api吊销该token

以上方案基于跨域,实现类似ms的passport的原理。
其实如果是多子域的话更简单。
我不赞同将用户的passport信息分布到各个子系统中。
其实passport维护的恰恰是用户身份,可以基于ldap来实现。
如果需要一个匿名的身份验证,可以使用OpenID。
这和我们一般意义上的passport还是不一样。

PHP在socket的通讯其实没有问题,NanoWeb是一个很好的例子,关键在于改良。
或者也可以考虑hessian,ice,这些也都是很好的选择。




点这里点这里
2006-12-13 12:13 AM#32
查看资料  发短消息  顶部
 
pcb
乞丐




UID 83275
精华 0
积分 -4
帖子 17
金钱 -4 喜悦币
威望 0
人脉 0
阅读权限 1
注册 2006-11-16
来自 广西
状态 离线
[推荐阅读] 用PHP控制用户浏览器缓存!
我顶一个!
2006-12-13 09:14 AM#33
查看资料  发短消息  QQ  顶部
 
escape_shily
新手上路
Rank: 1



UID 75007
精华 0
积分 1
帖子 1
金钱 1 喜悦币
威望 0
人脉 0
阅读权限 10
注册 2006-6-14
状态 离线
[推荐阅读] 网站出现了问题,打开CPU占用100% 请大家帮我解决
请教nightsailer个问题。

像你说的用一个passport服务来维护一个session
那这个session如何维护呢。
2007-3-13 05:10 PM#34
查看资料  发短消息  顶部
 
azakai
新手上路
Rank: 1



UID 106259
精华 0
积分 9
帖子 5
金钱 9 喜悦币
威望 0
人脉 0
阅读权限 10
注册 2008-1-8
状态 离线
[推荐阅读] 一个男生写的程序(ZT)
还有解决方案就是做成Web service,通过PHP+SOAP方式进行Passport与多个client之间的通讯及验证。
2008-1-23 01:50 PM#35
查看资料  发短消息  顶部
 
剑枫 (雪花)
论坛元老
Rank: 8Rank: 8
欧玛嘎


UID 26144
精华 1
积分 4921
帖子 1684
金钱 4911 喜悦币
威望 10
人脉 0
阅读权限 90
注册 2004-2-14
来自 山东郓城
状态 离线
[推荐阅读] 小谈拜金女
没看懂,但支持........



在场外支持奥运.....
2008-1-24 04:32 PM#36
查看资料  访问主页  发短消息  QQ  顶部
 
sanshi0815 (sanshi0815)
高级会员
Rank: 4
中级会员



UID 63534
精华 1
积分 533
帖子 669
金钱 523 喜悦币
威望 10
人脉 0
阅读权限 50
注册 2005-3-18
状态 离线
[推荐阅读] 掌握 Ajax,第 3 部分: Ajax 中的高级请求和响应(1)
tcpip通讯上不会有太多的问题,各个语言的差异也不是很大,而且登陆只一次!
2008-1-24 04:43 PM#37
查看资料  Blog  发短消息  QQ  顶部
 
howliu
新手上路
Rank: 1
初级会员



UID 29675
精华 0
积分 49
帖子 250
金钱 49 喜悦币
威望 0
人脉 0
阅读权限 10
注册 2004-6-28
状态 离线
[推荐阅读] 掌握 Ajax,第 3 部分: Ajax 中的高级请求和响应(2)
一年又一年。。。 看看1



维护服务器(linux) 交换机 php+mysql    qq:345467398
2008-1-24 06:19 PM#38
查看资料  访问主页  发短消息  QQ  顶部
 
ay_2008
新手上路
Rank: 1



UID 110799
精华 0
积分 3
帖子 3
金钱 3 喜悦币
威望 0
人脉 0
阅读权限 10
注册 2008-2-20
状态 离线
[推荐阅读] 看陈安之成功学演讲写下的几句~!
仔细学习!
2008-2-21 11:33 AM#39
查看资料  发短消息  顶部
 
aeolus
注册会员
Rank: 2


UID 110669
精华 0
积分 74
帖子 84
金钱 74 喜悦币
威望 0
人脉 0
阅读权限 20
注册 2008-2-19
状态 离线
[推荐阅读] 在读生找工作难不难
支持!!
努力
2008-2-21 03:40 PM#40
查看资料  发短消息  顶部
 40  4/4  <  1  2  3  4 
     


  可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题 | 开通个人空间  


 


Powered by Discuz! 6.1.0  © 2001-2010 Comsenz Inc.
Processed in 0.028473 second(s), 6 queries

(冀ICP备05009913号) 管理员:sadly 邮箱/MSN: sadly@phpx.com QQ:824008(长隐) 清除 Cookies - - Archiver - WAP