也谈SSO,一个简单实用的单点登录Demo
关于SSO(单点登录),百度百科解释如下 :
“SSO英文全称Single Sign On,单点登录。SSO是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。它包括可以将这次主要的登录映射到其他应用中用于同一个用户的登录的机制。它是目前比较流行的企业业务整合的解决方案之一。
要实现SSO的功能,让用户只登录一次,就必须让应用系统能够识别已经登录过的用户。应用系统应该能对ticket进行识别和提取,通过与认证系统的通讯,能自动判断当前用户是否登录过,从而完成单点登录的功能。单一的用户信息数据库并不是必须的,有许多系统不能将所有的用户信息都集中存储,应该允许用户信息放置在不同的存储中,事实上,只要统一认证系统,统一ticket的产生和校验,无论用户信息存储在什么地方,都能实现单点登录。统一的认证系统并不是说只有单个的认证服务器。”
- 多个应用系统 (本文中局限于专属web类B/S信息业务系统)。 -- 针对的现实业务场景
- 只需成功登录一次(可以在应用系统各自的登录界面登录,亦可在统一认证服务器登录界面登录)。 -- 要达到的目的:简单、易用、人性化
- 认证服务器集中统一发放票据ticket。 -- 关键流程1:发票
- 各个业务系统对ticket提取、认证服务器再识别、信任互访。 -- 关键流程2:认票
- 并非必须将所有的用户信息集中存储处理于单一的用户信息数据库。 -- 非必要前提
- 多个应用系统中的不同账户统一映射集中于认证服务器。 -- 技术实现的关键前提
- SSODemo
- DB(SQLServer数据库备份)
- SSOServerDemo.bak -- 认证服务器演示数据库:用户表、UserID映射表、账户登录记录表
- testSSOSite1.bak -- 站点1的演示数据库:用户表
- testSSOSite2.bak -- 站点2的演示数据库:用户表
- SSOServerDemo(统一认证服务器)
- Login.aspx -- 认证服务器,集中统一登录界面,站点New跳转此,使用此界面登录
- UserMapping.aspx -- 将站点1、2、New的账号统一映射,成功后存入SSOServer数据库UserID映射表
- addNewSiteUser.aspx -- 将后续新站点的新账号加入统一映射,成功后存入SSOServer数据库UserID映射表
- InvalidUserId.aspx -- 失效某站点中的某账号
- authorizationCookie.aspx -- 发放统一认证票据
- httpGetCookie.aspx -- 获取SSOServer域下的认证Cookie票据
- pollingSession.aspx -- 刷新Session会话
- pollingSession.asmx -- 刷新在线用户状态数据
- abandonSession.aspx -- 更新在线用户会话状态表记录,删除会话票据
- GetUserIdByRecordID.aspx -- 验证票据,成功后,返回站点用户对应的UserID
- checkUserID.asmx -- 验证UserID是否被篡改过
- SSOSitesXML.config -- SSO中各个站点的IP及端口配置
- testSSOApplication1(代表旧有的B/S信息系统1)
- login.aspx
- PageBase.cs
- verifyUser.asmx -- 验证用户名、密码通过后,返回该账号对应UserID
- pollingSession.ashx -- 刷新用户会话状态
- GetCookie.aspx -- 跨域取Cookie票据,送往SSOServer,验证通过后,返回用户在该站点的UserID,产生Session["userId"]
- abandonSession.aspx -- 删除Cookie票据和Session
- ClearSession.aspx -- 清除Session
- getEncryptPWD.aspx -- 获取某账号在该站点对应的加密后的密码字符串内容
- getSSOServerIP.ashx -- 获取SSOServerIP
- getRemoteCookie.js、pollingSession.js、abandonSession.js -- 相关的关键JS文件
- testSSOApplication2(代表旧有的B/S信息系统2)
- login.aspx
- PageBase.cs
- verifyUser.asmx
- pollingSession.ashx
- GetCookie.aspx
- abandonSession.aspx
- ClearSession.aspx
- getEncryptPWD.aspx
- getSSOServerIP.ashx
- getRemoteCookie.js、pollingSession.js、abandonSession.js
- testSSOApplicationNew(代表新上的B/S信息系统New)
- PageBase.cs
- pollingSession.ashx
- GetCookie.aspx
- abandonSession.aspx
- ClearSession.aspx
- getSSOServerIP.ashx
- getRemoteCookie.js、pollingSession.js、abandonSession.js



也谈SSO,一个简单实用的单点登录Demo的更多相关文章
- SSO 基于Cookie+fliter实现单点登录(SSO):工作原理
SSO的概念: 单点登录SSO(Single Sign-On)是身份管理中的一部分. SSO的一种较为通俗的定义是:SSO是指訪问同一server不同应用中的受保护资源的同一用户,仅仅须要登录一次,即 ...
- jmeter压力测试的简单实例+badboy脚本录制(一个简单的网页用户登录测试的结果)
JMeter的安装:在网上下载,在下载后的zip解压后,在bin目录下找到JMeter.bat文件,双击就可以运行JMeter. http://jmeter.apache.org/ 在使用jmeter ...
- 如何使用AEditor制作一个简单的H5交互页demo
转载自:http://www.alloyteam.com/2015/06/h5-jiao-hu-ye-bian-ji-qi-aeditor-jie-shao/ 本教程演示如何使用AEditor制作一个 ...
- 一个简单的MariaDB认证插件demo
代码地址如下:http://www.demodashi.com/demo/13076.html 一.前言 众所周知(其实可能很多人不知道)MariaDB支持插件认证.在MariaDB中新建用户,常见的 ...
- LogCook 一个简单实用的Android日志管理工具
众所周知,日志的管理是软件系统很重要的一部分,千万不可忽略其重要性.完整的日志将会在系统维护中起着异常重要的作用,就好像磨刀不误砍柴工一样,日志就像对系统进行分析的工具,工具便捷了,对系统分析起来就能 ...
- SSO 基于Cookie+fliter实现单点登录 实例解析(一)
接上文,SSO的理论讲解,接下来实践实践! 1.使用Cookie解决单点登录 技术点: 1.设置Cookie的路径为setPath("/").即Tomcat的目录下都有效 2.设置 ...
- 统一门户与业务系统的sso整合技术方案(单点登录)
一.单点登录(SSO,Single Sign On)整合目前计划接入统一门户的所有业务系统均为基于JavaEE技术的B/S架构系统.由于统一门户的单点登录技术选用的是JA-SIG组织开发的Cas Se ...
- 一个简单的IM系统(Demo附源码)-- ESFramework 4.0 快速上手(08)
前面的文章已经介绍完了基于ESFramework/ESPlus进行二次开发的所有要点,现在,我们可以开始小试牛刀了. 本文将介绍使用ESFramework的Rapid引擎开发的两个最简单的Demo,E ...
- 简单实现Shiro单点登录(自定义Token令牌)
1. MVC Controller 映射 sso 方法. /** * 单点登录(如已经登录,则直接跳转) * @param userCode 登录用户编码 * @param token 登录令牌,令牌 ...
随机推荐
- nginx静态资源分离部署
修改nginx.conf文件,用于nginx处理静态资源. 主要配置如下(在server配置中加入location配置即可): server { listen 80; server_name 123. ...
- 126. Word Ladder II
题目: Given two words (beginWord and endWord), and a dictionary's word list, find all shortest transfo ...
- HDU4907——Task schedule(BestCoder Round #3)
Task schedule Description有一台机器,并且给你这台机器的工作表,工作表上有n个任务,机器在ti时间执行第i个任务,1秒即可完成1个任务.有m个询问,每个询问有一个数字q,表示如 ...
- FireBug 调试JS入门
http://www.blogjava.net/vincent/archive/2009/04/14/265591.html http://baike.baidu.com/link?url=0S2 ...
- itoa函数的实现(不同进制)
2013-07-08 17:12:30 itoa函数相对于atoi函数,比较简单,还是要注意考虑的全面. 小结: 一下几点需要考虑: 对负数,要加上负号: 考虑不同进制,根据要求进行处理:对不同的进制 ...
- Hibernate一对多和多对一关系详解 (转载)
:双向一对多关系,一是关系维护端(owner side),多是关系被维护端(inverse side).在关系被维护端需要通过@JoinColumn建立外键列指向关系维护端的主键列. publ ...
- 中国海洋大学第四届朗讯杯高级组 Cash Cow(模拟)
题目:http://acm.sdut.edu.cn/sdutoj/problem.php?action=showproblem&problemid=2721 题意: 给定n个左标,跟那n个坐标 ...
- [转]Linux下Nagios的安装与配置
转自:http://blog.chinaunix.net/uid-29539073-id-4149856.html 月色书香 一.Nagios简介 Nagios是一款开源的电脑系统和网络监视工具,能有 ...
- poj2135
加深对最小费用最大流的理解题 题目求无向图来回和最短的路径,每条边只能走一次 不难想到,无向图中来回等于从源点出发走两条不同路径到汇点(区别于k短路,这里每条边只能走一次): 考虑到边的限制,不难想到 ...
- .Net 垃圾回收机制原理(二)
英文原文:Jeffrey Richter 编译:赵玉开 链接http://www.cnblogs.com/yukaizhao/archive/2011/11/25/dot_net_GC_2.html ...