也谈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 登录令牌,令牌 ...
随机推荐
- 安装Hadoop系列 — 新建MapReduce项目
1.新建MR工程 依次点击 File → New → Ohter… 选择 “Map/Reduce Project”,然后输入项目名称:mrdemo,创建新项目: 2.(这步在以后的开发中可能 ...
- 安装Ubuntu双系统系列——安装中文输入法
Ubuntu 12.04中文输入法的安装 Ubuntu上的输入法主要有小小输入平台(支持拼音/二笔/五笔等),Fcitx,Ibus,Scim等.其中Scim和Ibus是输入法框架.在Ubuntu的中文 ...
- Magic skills of vim from zhihu
https://www.zhihu.com/question/27478597 插入模式下ctrl-y,重复当前光标上一行的字符 gd 高亮当前词 cc 删除当前行并插入 “.” 这个 mark 代表 ...
- JavaScript DOM高级程序设计 5动态修改样式和层叠样式表2--我要坚持到底!
把样式置于DOM脚本之外 style属性 我们可以这样设置前景色之类的属性: element.style.color='red'; 也可以使用下面的代码设置背景颜色: element.style.ba ...
- 1671. Anansi's Cobweb(并查集)
1671 并查集 对于询问删除边之后的连通块 可以倒着加边 最后再倒序输出 #include <iostream> #include<cstdio> #include<c ...
- 函数fsp_seg_inode_page_get_nth_inode
#define FSEG_ARR_OFFSET (FSEG_PAGE_DATA + FLST_NODE_SIZE) #define FSEG_PAGE_DATA FIL_PAGE_DATA #defi ...
- C#中父窗口和子窗口之间实现控件互操作
很多人都苦恼于如何在子窗体中操作主窗体上的控件,或者在主窗体中操作子窗体上的控件.相比较而言,后面稍微简单一些,只要在主窗体中创建子窗体的时候,保留所创建子窗体对象即可. 下面重点介绍前一种,目前常见 ...
- UVa 1644 (筛素数 + 二分) Prime Gap
题意: 给出一个整数n,如果n是素数输出0,否则输出它后一个素数与前一个素数的差值. 分析: 首先用筛法把前十万个素数都筛出来,然后放到数组里.用二分找到不大于n的最大的素数的下标,如果这个素数等于n ...
- vijos1049送给圣诞夜的礼品
这题犯了两个sb错误,写下来,为以后做个警告 一.mul过程中将k作为了循环变量 二.看错了题…… 题目中说是数到k行,而我却以为数k遍…… 做矩阵乘法,只要记住一句话:置换一定可以写成矩阵的形式! ...
- SharePoint 2010 出错! HTTP Error 503. The service is unavailable
转:http://544729.blog.51cto.com/534729/464087 昨天,公司的sharepoint 2010 无法打开,提示HTTP Error 503. The servic ...