[导入]在特定情况下的简单SSO实现方案
2008-03-17 11:10
239 查看
最近需要实现类似单点登录的功能。情况是这样的,最初在做网站A,做着做着,要做网站B了,要求与网站A完全分开作为两个应用,但用户数据要求与网站A保持一致,也要求用户在网站A登录后,转到网站B时不需要再登录。怎么样,标准的SSO吧。
查了一些资料,了解了不少原理。园子里的几个兄弟也写得很多了,比如:jillzhang 的 单点登陆(SSO)组件的设计与实现一 和亚历山大同志 的 手把手教你可复用SSO组件的设计(原理篇) ,看了之后,受益匪浅,对实现原理有了基本了解。但各种实现方案都相对复杂,也没找到成熟的组件化实现方案。我所碰到的问题看起来并不是那么的复杂,实在是不想深入钻研(懒人,呵呵),苦思半响不解,实然灵光一现,顿悟,于是有了以下方案,大家来探讨巧一下,拍拍砖头。
环境说明:
在同一台物理服务器上,运行iis和sql server。在iis上有网站A和网站B,在Sql Server上有数据库A(sitea_db),数据库B(siteb_db)和用户数据库(user_db)。这下知道标题中的特定的意思了吧,是够特定了吧。
方案说明:
网站A和网站B的用户数据都统一放在user_db中,验证逻辑可以独立,也可以集中,这无所谓了。其他的没有任何改变,只有当用户从网站A跳转到网站B时,SSO隆重登场,整个流程如下:
1. 网站A生成一个随机的唯一的票据,比如GUID就很不错,将当前用户和票据存到user_db中,然后redirect到网站B,并把票据作为参数。
2. 网站B接收到票据,到user_db中找到相关票据对应的用户并设为当前登录用户,并立即在user_db中删除该票据记录。
OK,大功告成,够简单吧!!
在安全性上我不是专家,我想到可能的问题是该票据要是被截获,就会导致安全问题了,看了别的文章,标准的SSO方案好象也有类似的问题。我的解决方案也类似,将该票据的有效时间设置得小一些,在我所描述的情况下,我想可以设置为2秒甚至更小一些。
以上方案只是初步设想,与大家分享,欢迎批评指正。
andy.wu 2008-03-16 14:35 发表评论
文章来源:http://www.cnblogs.com/andywu/archive/2008/03/16/1108421.html
查了一些资料,了解了不少原理。园子里的几个兄弟也写得很多了,比如:jillzhang 的 单点登陆(SSO)组件的设计与实现一 和亚历山大同志 的 手把手教你可复用SSO组件的设计(原理篇) ,看了之后,受益匪浅,对实现原理有了基本了解。但各种实现方案都相对复杂,也没找到成熟的组件化实现方案。我所碰到的问题看起来并不是那么的复杂,实在是不想深入钻研(懒人,呵呵),苦思半响不解,实然灵光一现,顿悟,于是有了以下方案,大家来探讨巧一下,拍拍砖头。
环境说明:
在同一台物理服务器上,运行iis和sql server。在iis上有网站A和网站B,在Sql Server上有数据库A(sitea_db),数据库B(siteb_db)和用户数据库(user_db)。这下知道标题中的特定的意思了吧,是够特定了吧。
方案说明:
网站A和网站B的用户数据都统一放在user_db中,验证逻辑可以独立,也可以集中,这无所谓了。其他的没有任何改变,只有当用户从网站A跳转到网站B时,SSO隆重登场,整个流程如下:
1. 网站A生成一个随机的唯一的票据,比如GUID就很不错,将当前用户和票据存到user_db中,然后redirect到网站B,并把票据作为参数。
2. 网站B接收到票据,到user_db中找到相关票据对应的用户并设为当前登录用户,并立即在user_db中删除该票据记录。
OK,大功告成,够简单吧!!
在安全性上我不是专家,我想到可能的问题是该票据要是被截获,就会导致安全问题了,看了别的文章,标准的SSO方案好象也有类似的问题。我的解决方案也类似,将该票据的有效时间设置得小一些,在我所描述的情况下,我想可以设置为2秒甚至更小一些。
以上方案只是初步设想,与大家分享,欢迎批评指正。
andy.wu 2008-03-16 14:35 发表评论
文章来源:http://www.cnblogs.com/andywu/archive/2008/03/16/1108421.html
相关文章推荐
- 在特定情况下的简单SSO实现方案
- 简单的SSO方案 COOKIE实现
- 简单的SSO方案 COOKIE实现
- 工厂模式简单介绍及应用(以数据导入功能实现为例)
- 通过 JS 实现简单的拖拽功能并且可以在特定元素上禁止拖拽
- IOS ORM简单实现方案:NSObject及其子类与字典的转换
- Masonry 布局 cell 高度适应的一种方案(实现类似朋友圈简单布局)
- Single Sign-On(SSO)单点登陆的具体实现方案
- 实现一个简单的服务端推方案
- 基于Asp.NET MemberShip的简单SSO方案
- 一种夜间模式简单实现方案
- 实现一个简单的服务端推送方案-实例篇Polling(服务端阻塞读)
- [导入]使用对Ant编程来实现简单文件的打包
- 可跨域的单点登录(SSO)实现方案【附.net代码】
- ASP.NET实现单点登陆(SSO)适用于多种情况
- 【Android N7.0】Framework层实现派发HOME按键到Application层的一种简单方案
- 快速实现简单高效并可以灵活配置的URL重写方案(附源代码)
- Java 实现Excel导入导出(包含一些简单样式设置)工具类
- [导入]Winform程序多语言国际化实现的简单方法
- sso简单实现