也谈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 登录令牌,令牌 ...
随机推荐
- linux 2.6 互斥锁的实现-源码分析
http://blog.csdn.net/tq02h2a/article/details/4317211 看了看linux 2.6 kernel的源码,下面结合代码来分析一下在X86体系结构下,互斥锁 ...
- ArcGIS学习记录—dbf shp shx sbn sbx mdb adf等类型的文件的解释
原文地址: ArcGIS问题:dbf shp shx sbn sbx mdb adf等类型的文件的解释 - Silent Dawn的日志 - 网易博客 http://gisman.blog.163.c ...
- Android安全问题 静音拍照与被拍
之前写过一些android手机root之后的安全问题的(文章列表见末尾),其实我是想到哪就写到了,今天整理硬盘,发现一年之前写过一段代码,所以今天我们就一起来讨论一下. 注:这里不是讨论多nb的技术, ...
- Use powerful plugins in your vim.
# setup by root wget http://prdownloads.sourceforge.net/ctags/ctags-5.8.tar.gz tar -xzvf ctags-5.8.t ...
- C#反射机制介绍
反射的定义:审查元数据并收集关于它的类型信息的能力.元数据(编译以后的最基本数据单元)就是一大堆的表,当编译程序集或者模块时,编译器会创建一个类定义表,一个字段定义表,和一个方法定义表等. ...
- ubuntu12.04 make xconfig出错解决
xconfig是linux下X Window环境中用于配制的一个工具,和menuconfig相似,但用法更友好方便,用如下命令可以进入配制界面: make xconfig 因为在ubuntu系统中,编 ...
- 【HDOJ】4579 Random Walk
1. 题目描述一个人沿着一条长度为n个链行走,给出了每秒钟由i到j的概率($i,j \in [1,n]$).求从1开始走到n个时间的期望. 2. 基本思路显然是个DP.公式推导也相当容易.不妨设$dp ...
- freemarker截取字符串
[#if a.title?length lt 23 ] ${a.title} [#else]${a.title[0..22]}...[/#if]
- nginx.conf配置
在此记录下Nginx服务器nginx.conf的配置文件说明, 部分注释收集与网络. #运行用户 user www-data; #启动进程,通常设置成和cpu的数量相等 worker_processe ...
- Hibernate4.x之Session
Hibernate Session概述 Session接口是Hibernate向应用程序提供的操纵数据库的最主要的接口,它提供了基本的保存.更新.删除和加载Java对象的方法. Session具有一个 ...