单点登录-SSO
单点登录 (Single Sign-On )
1、同域单点登录
登录的时候,设置cookie的域即可。
2、跨域单点登录
重点是,如何在浏览器端保存登录的标识。
祭图:(脑补)
三个系统:
a.aaa.com
b.bbb.com
s.sso.com
假设条件:用户首次打开系统,未禁用cookie。
1、用户打开浏览器访问a系统需要登录授权的页面,a系统返回重定向信息。
2、重定向跳到s系统,进行登录。
3、登录完成后,s系统返回重定向信息,重定向路径后面加上token。
4、当信息返回浏览器时,浏览器保存s系统的登录信息,跳转到a系统。
5、a系统验证token,验证通过,打开对应的页面。
6、访问b系统,b系统返回重定向信息。
7、浏览器将保存的s系统的登录系统,携带到s系统。
8、s系统,判断为已经认证。返回重定向到b系统,重定向路径后面加上token。
9、b系统验证token,验证通过,打开对应的页面。
三、实现
1、JWT (json web token) 官网:https://jwt.io/
2、OAuth 授权协议框架,用于产生和校验token
3、浏览器有两种存储,查看方式为F12浏览器,在Application内查看对应的存储内容。
a、Local Storage 长期存储,windows.localStorage 即可调用该存储。
b、Session Storage 会话存储。
4、ajax 支持将参数添加到请求头内进行发送的方式。
单点登录-SSO的更多相关文章
- cas单点登录 SSO 的实现原理
原文出处: cutesource 欢迎分享原创到伯乐头条 单点登录SSO(Single Sign On)说得简单点就是在一个多系统共存的环境下,用户在一处登录后,就不用在其他系统中登录,也就是用户 ...
- 单点登录 SSO 的实现原理
单点登录SSO(Single Sign On)说得简单点就是在一个多系统共存的环境下,用户在一处登录后,就不用在其他系统中登录,也就是用户的一次登录能得到其他所有系统的信任. 单点登录在大型网站里使用 ...
- Atitit. 单点登录sso 的解决方案 总结
Atitit. 单点登录sso 的解决方案 总结 1. 系统应用场景and SSO模式选型 2 2. 系统应用的原则与要求 2 2.1. 开发快速简单::绝大部分系统来说,开发快速简单为主 2 2. ...
- 十六、【适合中小企业的.Net轻量级开源框架】EnterpriseFrameWork框架核心类库之单点登录SSO
回<[开源]EnterpriseFrameWork框架系列文章索引> EFW框架源代码下载:http://pan.baidu.com/s/1qWJjo3U 单点登录(Single Sign ...
- 单点登录SSO的实现原理
单点登录SSO(Single Sign On)说得简单点就是在一个多系统共存的环境下,用户在一处登录后,就不用在其他系统中登录,也就是用户的一次登录能得到其他所有系统的信任.单点登录在大型网站里使用得 ...
- 单点登录SSO原理
最近接触了一点单点登录的知识,有一点理解,记录一下.有些问题并没有找到完美的解决方法,还需要找点已有框架来看看. 欢迎留言探讨. 1 概念 1.1 概念及理解 有一个网上广为流传的 ...
- CAS单点登录(SSO)完整教程
转:http://blog.csdn.net/frinder/article/details/7969925 CAS单点登录(SSO)完整教程(2012-02-01更新) 一.教程说明 前言 教程目的 ...
- Redis缓存实现单点登录SSO
.NET基于Redis缓存实现单点登录SSO的解决方案 .NET基于Redis缓存实现单点登录SSO的解决方案 一.基本概念 最近公司的多个业务系统要统一整合使用同一个登录,这就是我们耳熟能详的单 ...
- 单点登录SSO原则的实现
单点登录SSO(Single Sign On)简单地把它是下一个在多系统环境中共存,在用户登录,不要在其他系统上的登录.这是用户第一次登录得到所有其他系统的信任. 单点登录在一个大型网站非常频繁使用, ...
- cas 单点登录(SSO)实验之二: cas-client
cas 单点登录(SSO)实验之二: cas-client 参考文章: http://my.oschina.net/indestiny/blog/200768#comments http://wenk ...
随机推荐
- java使用memcached1--安装与基本使用
环境 CentOs6.4 libevent-2.0.22-stable memcached-1.4.24 一.memcached安装 # cd /usr/local 1.编译安装libevent # ...
- 【vue】——vue.js 获取当前 自定义属性值
假设有一个标签h5, 我们给它添加了一个自定义属性值,(item.id是从动态添加的) 点击h5 标签,如何才能获取当前对应的自定义属性值呢? 想当然的我最开始这样写: <h5 class=&q ...
- Web Worker 使用教程(转)
转自:http://www.ruanyifeng.com/blog/2018/07/web-worker.html 一.概述 JavaScript 语言采用的是单线程模型,也就是说,所有任务只能在一个 ...
- Linux 历史信息history显示执行时间
fc命令 fc命令自动掉用vi编辑器修改已有历史命令,当保存时立即执行修改后的命令,也可以用来显示历史命令.fc命令编辑历史命令时,会自动调用vi编辑器.fc保存文件后,会自动执行所编辑过的命令. 测 ...
- json和csv文件存储
一. json 1:基本概念 1.1 Json和Javascript JSON, 全称JavaScript Object Notation,它通过对象和数组的组合来表示数据.在JavaScript中一 ...
- Eclipse中的创建maven项目,无法添加src/main/java等source folder
maven无法添加src/main/java 通过Eclipse创建Java Web项目,目录结构如下: 默认是只有src/main/resources 这个source folder 按照maven ...
- Unity脚本生命周期与执行顺序
文章目录 脚本生命周期 MonoBehavior生命周期图 脚本执行顺序 自定义执行顺序 在Unity中,脚本可以理解为附加在游戏对象上的用于定义游戏对象行为的指令代码.必须绑定在游戏对象上才能开始它 ...
- java获取某段时间内的月份列表
/**获取两个时间节点之间的月份列表**/ private static List<String> getMonthBetween(String minDate, String maxDa ...
- HDU - tag :: Multi-University 大合集
说明:按无序更新,只更(会)水题 4632 题意:求字符串的回文子[序列]个数 区间DP,设\(dp[i][j]\)为\([i,j]\)范围内的回文子序列个数, 由容斥定理可得\(dp[i][j]=d ...
- Android手游2048核心功能
private void swipeUp(){ //向上滑动函数 for (int x = 0; x < 4; x++) { //行从上到下 for (int y = 0; y < 4; ...