sso的基本原理
近期比较无聊,同事碰到的Domino SSO配置出问题了,解决之。
但是在后来,和IBM的沟通,无意中听说的,sso的基本原理和我原来想像的完全不同。当然开始是肯定不会相信别人的——我从来很少相信别人——,我做了几个试验,确定了自己原来的想法都错了。
呵呵,拉拉大家来看看,有谁是我以前错的一样的,有谁知道正解,还有大家了解的途径是什么样的,是象我一样的瞎猜呢,还是同事前辈教导的,还是参加了培训。
虽然是游戏之举,但是也希望能借此看一下,同行的凶弟们,是不是都和我一样的,没有人带,很少有正规的培训,纯粹是在瞎弄,一个人在黑暗中摸索的。
---------------------------
提示的问题是这样的:
1、如果在几个sso处理的Domino服务器中的一个登录了,ie切换到第二个服务器的时候,服务器是怎样验证这个用户的;
BTW:如果对http cookie已经了解的,绕过http cookie的描述,对此不很清楚的,也可以在它上面讨论玩玩。这个也很值得聊聊的。
参加讨论的就送分,热闹热闹。 ---------;)
问题点数:200、回复次数:28Top
1 楼maplescloud(风清云淡)回复于 2005-07-21 20:13:59 得分 20
呵呵,传说中的SSO,其实最经典的当属DOMINO和WEBSPHERE的SSO,不过由于多数系统不愿意把用户放到一个LDAP服务器上去管理(我所见到的都是自己建了一个数据库表来存放用户信息),所以真正意义上的SSO的系统是非常之少的,因为这个子系统要实现对LDAP服务器的访问,还要支持LTPA,估计业务子系统都懒得去做这些,而且还要结合到权限的控制当中去,实在是要了这些程序员的命 :)Top
2 楼glassch(:雪融:)回复于 2005-07-22 10:34:05 得分 20
列席会议,学习学习。Top
3 楼desertwolf81(漠狼)回复于 2005-07-22 12:49:51 得分 20
很多做的都是虚拟的SSO,这个系统中转入另一个系统时,是取得另一系统中对应的username和password然后redirectto过去登陆的。Domino的验证机制是serve cookie,具体的实现SSO的机制我也不清楚,希望有对这方面有深入研究的上来顶一下。:)Top
4 楼chenzb(long long ago)回复于 2005-07-22 14:33:28 得分 20
我觉得domino的sso,是利用包含用户名、密码、过期时间信息cookie,如果把里面的token信息,那到其他服务器(sso)中使用,照样可以登陆上去,只要里面的时间没有过期Top
5 楼wthua(雁南飞)回复于 2005-07-22 15:29:29 得分 20
能不能先解释一下SSO?!Top
6 楼ring_deng()回复于 2005-07-22 15:46:49 得分 20
回楼上的:single sign on: 单点登陆。就是多个平台的业务系统集成到一个portal(比如)实现用户只要登录一次。不知道我说的对不对?呵呵。Top
7 楼terryport()回复于 2005-07-22 17:50:23 得分 20
single sign on
that's rightTop
8 楼qiuyang666(心雪峰)回复于 2005-07-22 18:18:11 得分 20
关注中。。。 顶。。 顶。。Top
9 楼qiuyang666(心雪峰)回复于 2005-07-22 18:21:14 得分 0
我所在的团队,也在研究这个。。。 看看大家有什么好的见解。。Top
10 楼ruijianbo(flyboyrui)回复于 2005-07-25 09:11:41 得分 20
portal不就可以了。它一般用的是domino提供的LDAP服务Top
11 楼wvboat(远方)回复于 2005-07-26 08:36:03 得分 20
daluoboequalto (大萝卜),要不你直接IBM给的解答说一下吧。我也只简单玩过一下SSO,其原理机制,恐怕也说不出多少。Top
12 楼cjj20th(陈建军)回复于 2005-07-26 08:59:27 得分 0
不懂,旁听,做笔记。Top
13 楼xjunhua(沉思的森林)回复于 2005-07-26 09:13:31 得分 0
sso不是一个简单的ldap服务器,如果仅仅是解决登陆问题,那设计上就不是那么难了。
其他里面还有其他很多问题,比如角色控制、权限控制、组织结构控制、上级和下级控制等,复杂Top
14 楼daluoboequalto(大萝卜)回复于 2005-07-29 17:32:10 得分 0
先说说http-cookie吧,这些也是自己瞎琢磨的,可能有错的地方,大家一起瞅瞅:
一般的web服务器,客户端对服务器发出访问要求的时候,会“顺带”提交一个本地的验证信息,服务器在验证了这个以后,可以判断,这个是否正常的验证状态:
a、没有该验证信息,则没验证过,
b、有,但是这个信息在验证后发现,过期了
c、这个是个正在使用中的用户验证
所以,一般时候,ie第一次访问服务器的时候,都会出现要求验证的请求,而验证后后的浏览器页面,放的时间长了,也会发生session out的问题。
是http-cookie作为了这个验证信息的载体的:
有这样的两个例子,可以作为证明,
a、网上一般的论坛,都会有这样的提示:“本论坛登录的时候,需要cookie功能,如果您禁用了cookie功能,可能无法正常登录”。而如果我们真的在ie中,将这个站点的cookie功能禁止了,登录是无法完成的,这个在domino的服务器上也是一样的——实际上,到今天,我没有看见web服务器不是这样的;
b、登录页面成功以后,在浏览器地址栏输入这样的命令:
javascript:alert(document.cookie);
看看会有什么效果吧。
你还可以输入命令,将cookie消除了,再刷新页面,看看会有什么结果。
然后再去看看相关的文档,http协议的内容,就是说明了,http的request和response,都是包含了两个部分,head+body,http-cookie是head里面的一部分。
用抓包软件监控,看看ie访问服务器时候,发出的和返回的数据包,就是如这个所说的。(当初我就是从抓包软件,无意中发现这个的——说来惭愧,我一直都是黑灯瞎火的自己乱玩,没人教,也不看书)
----------------------
就说这些了,sso的,后面大家继续讨论。Top
15 楼daluoboequalto(大萝卜)回复于 2005-07-29 17:47:59 得分 0
突然想起来,http协议,就是很有意思的东西,消息机制吧,现在都很讲究玩这个的,特别是soap,好像火起来了。
写个软件,做通信的时候,往来的数据,做成简单格式的消息,真的是非常方便。
我原来自己写个小聊天软件,传输的内容,也是用xml来表现的,head里面,有command以及status等等,body里面装载主要的内容,设计时候的数据架构,代码编写时候的数据处理,都是非常的简便。扩展的时候,更是方便无比。
看tecent的rtx,消息好像也是xml的,做的也是蛮有意思,感觉它自身的扩展应该是很容易的。
Top
16 楼burderly(burderly)回复于 2005-07-30 02:05:58 得分 0
你去IBM下SSO的红皮书看看吧,讲得还算清楚,SSO验证分四种.Top
17 楼daluoboequalto(大萝卜)回复于 2005-08-18 21:14:14 得分 0
楼上的,既然知道一些,随便聊聊,大家工作之余,上来轻松一下。
别刚上来就把话说的这么的满。Top
18 楼wvboat(远方)回复于 2005-08-19 08:44:39 得分 0
看到一篇介绍sso配置文章,以下是几个片段——
先决条件和条件:
• 所有用户必须定义在单个 LDAP 目录下。不支持使用 LDAP 参照以将多个目录连接在一起。不支持使用多个“Domino 目录辅助” 文档来访问多个目录。
• 用户必须在他们的浏览器中启用 HTTP cookie,因为由服务器生成的认证信息将传送到浏览器的 cookie 中。然后,此 cookie 将用于把用户的认证信息传播到其它服务器中,而免除了用户将每个请求的认证信息输入到不同的服务器中。
Top
19 楼CrazyNotes(疯狂的人)回复于 2005-08-19 09:24:25 得分 0
这个讨论好。Top
20 楼hanwenjuan3(韩)回复于 2005-08-19 09:59:37 得分 0
拿个小板凳来听课!Top
21 楼froglet(froglet)回复于 2005-08-19 11:40:41 得分 0
正在关注这个问题Top
22 楼YuLimin(阿敏总司令:简单就是美—钻石闪闪您快结贴!)回复于 2005-08-20 09:22:52 得分 0
大萝卜:整理成一个资料性的文章给大家吧。赫赫,好久不见。Top
23 楼daluoboequalto(大萝卜)回复于 2005-09-14 09:19:20 得分 0
项目做的有点累心,来网上发帖子散散心,又遇到冷嘲热讽的人,不想说什么了。
Top
24 楼litp(天道酬勤)回复于 2005-09-22 22:50:45 得分 0
我最近也在研究这个东西?我用session来做的,如果真正的单点登陆,完全可以实现。
只是在管理每个系统各自的用户表,权限表的情况,即所谓的伪单点登录,比较头疼。Top
25 楼aswrt432685(闵毓)回复于 2005-10-28 22:15:38 得分 0
我正在负责单点登陆这个模块,现在在了解中,请指点.
Top
26 楼seeku(青春之歌)回复于 2006-02-06 09:45:11 得分 0
大萝卜老大都没有说到关键部分,我比较关心的是
Server A 给 Client C发的cookie,为什么Client C会发给Server B?
这个是没有道理的阿Top
27 楼daluoboequalto(大萝卜)回复于 2006-02-21 08:27:19 得分 0
不好意思 半年多没怎么来看
自己开始的事情 自己还得结束
有兴趣聊的
加我qq 19781971
Top
28 楼YuLimin(阿敏总司令:简单就是美—钻石闪闪您快结贴!)回复于 2006-02-21 15:07:29 得分 0
大萝卜不厚道啊。。。Top




