枕风而眠

星星猪的窝

导航

<2010年3月>
28123456
78910111213
14151617181920
21222324252627
28293031123
45678910

档案

随笔分类

相册

多媒体

登录

统计

友情链接

2005年9月1日 #

单点登录的常见实现方案(zz)

1、基于domain的方案。 
应用A在a.domain.com,B在b.domain.com,如果设cookie的时候,设domain为
domain.com,那在A、B上都可以访问到这个cookie了。(cookie的domain、path、
port、version、secure相同)。 

2、基于gateway的方案。 
实际部署的时候,对所有应用的请求,都要通过一个gateway转发一下,比如用一个L4
的交换机顶在前面。 

3、cas这类,基于tooken传递的方案。 
一台认证服务器(假定为AUTH),有两个应用A、B,分别部署在不同的服务器上。 

1)用户访问A,A应用无法找到用户的身份信息,使用redirect方法将用户引导至
http://Auth/login?service=http://A/path。 

2)AUTH 显示登录界面,用户输入登录信息,认证通过。 
AUTH产生一个cookie(这个cookie只有AUTH上才能读到),使用redirect方法将
用户引导回http://A/path?token=xxxxx(在有的解决方案上,这个token是通过
一定编码算法的Account信息) 

3)A读取token=xxxx的信息,获取用户身份。 

4)用户访问B。B未找到用户的身份信息,redirect至http://AUTH/login?service
=http://B/path 

5)AUTH读cookie获取用户身份,然后redirect回http://B/path?token=xxxx 

6)B读取token=xxxx信息,获得用户身份信息 

TOKEN方案是比较简单、容易实现的一种sso方案,实际运用的话,由于AUTH要应付所有的
认证请求,并发量大的话,最好对AUTH做LBS

16:27 | 评论 (1)


请不要发表可能给我们带来伤害的政治言论,谢谢配合