海纳百川,有容乃大
善于总结,积累软财富
  
       【提要】
            手头上正在准备开发集团内网站间的单点登录系统。目前公司有15个左右的网站已经上线,今后还陆续地会有新的网站,基于该状况下开发SSO系统,使每个成员网站的登录做到无缝连接。

  【需求】
         
         主要是登录方面的:

      a、 SSO系统要实现各个成员网站的无缝结合,只要用户经过了认证服务器的验证(Passport服务器),该用户访问其它任何的网站时,都不需要再次登录。

      b、 用户在第一次登录时,Passport服务器验证身份之后的cookie验证票,只需保存到Passport服务器所在域的cookie中,不能采用向每个成员网站所在的域中写cookie,防止响应时间太长,给用户带来不友好的浏览体验。同时,把下发给用户的cookie票保存到Passport服务器的数据库中,方便验证方式和用户使用情况统计的扩展。

      c、 用户一经通过身份验证,成功登录了某个成员网站(假设为网站A),需要利用Sessioncookie两种方式保存用户已经登录的状态。

   d、 同一个浏览器进程中,用户在网站A的页面间跳转时,只需要根据Session中的状态变量加载登录框。不需要再与Passport服务器通信验证用户的身份。

   e、 用户通过验证登录了网站A,若用户从网站A跳转或重新打开浏览器登录其它成员网站(假设网站B),都需要与Passprot服务器通信验证用户的票。但是,这次验证不要Passort服务器与数据库中保存的验证票进行比较验证,只需要验证Passport服务器域中的cookie验证票有效即可。

   f、   对于验证cookie票,若需要可以作加密和数字签名保证cookie的机密性,完整性和不可抵赖性。

   g、 若果Passport服务器Down掉后,仍可以直接登录成员网站。

【平台】windows 平台、IIS6.0、Tomcat5.0;有部分网站是利用PHP开发的,PHP网站也属于成员之列。SSO服务器采用.Net开发。
 
【疑问】如何建立单点登录(SSO)服务器与各个成员网站用户的映射关系;如何保证数据的一致性和完整性;如何保证当SSO服务器Down掉后,用户仍可以直接登录某个成员网站;若用cookie保存状态信息,如何保证cookie的安全;设计中还要考虑以后的扩展,比如用户浏览行为的数据分析等等。

哪位大侠做过类似的项目,请指点迷津。在此,小弟谢过了。
       
posted on 2006-11-10 18:00  海纳百川  阅读(999)  评论(3编辑  收藏  举报

首页原创.NET区 div1
.NET新手区 div2
精华区 div3
专家区 div4
读书心得区 div5
百度主题实验室
百度主题推广 div7

-->