会话模型与SSO
关于会话模型其实网站已有很多帖子说明,其中有关于sessionid,cookie以及他们之间的关系,自己先了解吧
1 会话模型
会话模型是客户端和服务端交互的一种模型,会话模型友好的处理了客户端有无通信状态,不需要传输敏感数据等问题。
2 会话模型生命周期
2.1 开始阶段
客户端发起请求携带相关参数,如用户名与密码,服务器校验用户名与密码后进行授权,并将token(凭证)交回给客户端
2.2 保持阶段
每一次客户端带着由服务端颁发的token(凭证)交给服务端校验有效性然后访问具体接口,达到交互的目的,同时服务端监视token的是否超时等有效性
2.3 销毁阶段
当客户端主动退出登录时,即主动告诉服务端token失效并销毁,整个会话生命周期结束
以上会话生命周期揭露了最简单也是最本质的会话模型,来看一张流程图
3 sso
在会话模型中说明的会话生命周期已经简单本质化的阐述了会话模型。但是当我们的系统由1个变为多个的时候,或者说我们已经有了多个系统,我们每次在进行系统切换的时候都会进行登录,虽说简单但是比较麻烦,
像淘宝,一类的电商网站如果有上百个系统切换让你每次都要登陆那不得疯掉,于是单点登陆模型出现了,单点登录模型
3.1 sso模型
与会话模型一样,只不过大家都在sso中统一登陆,维持会话,等一些列活动,其实sso就是将多个会话模型服务实例统一为只有一个就好了,对于一个系统内部来说与我们的2一样,只不过在系统切换的时候我们需要将token带出来交给我们要访问的系统,要访问的系统得到token后,拿着这个token与服务器进行交互,对于sso来说认为你任然有效,来看一张流程图
3.2 系统切换免登过程
通过token的携带实现了多系统切换的免登录过程,这个跳转的具体过程看图所示
4 存在的不足
存在的不足那就是token放置在了url,不过我还没有想到其他方式,因为浏览器这样处理可以解决跨域读取cookie问题。安全性,说到安全性有人说什么url地址携带了token就不安全,我想问cookie就安全吗?
比如我们在浏览器控制台输入查看cookie不也是分分钟不安全,有什么不一样吗?说到安全要解决这个安全问题就得ssl或者公钥加密私钥解密等一些列安全策略了,而不是什么token爆不爆露看不看得见的问题了,如果你非要这么觉得那就是还没入门吧,呵呵。
以上是个人对于sso的实现与跨域实现的解决方法,如果有更好的方式解决,求之不得啊。
会话模型与SSO的更多相关文章
- Django 1.10 中文文档------3.3.8 会话sessions
django支持匿名会话.它将数据存放在服务器端,并抽象cookies的发送和接收过程.cookie包含一个会话ID而不是数据本身(除非你使用的是基于后端的cookie). 3.3.8.1 启用会话 ...
- 会话session
因为因特网HTTP协议的特性,每一次来自于用户浏览器的请求(request)都是无状态的.独立的.通俗地说,就是无法保存用户状态,后台服务器根本就不知道当前请求和以前及以后请求是否来自同一用户.对于静 ...
- 根据CAS协议写的简单的SSO框架
前言: 考虑到现在分布式应用都不可或缺的一个重要部分:单点登录,决定花点时间去学下.本来想直接上现成的CAS框架的,初步的了解了一下后,觉得这个太庞大了,而且不好定制,要完全深度用起来也没那么简单 ...
- django会话session
因为因特网HTTP协议的特性,每一次来自于用户浏览器的请求(request)都是无状态的.独立的.通俗地说,就是无法保存用户状态,后台服务器根本就不知道当前请求和以前及以后请求是否来自同一用户.对于静 ...
- c++ 网络编程(九)LINUX/windows-IOCP模型 多线程超详细教程及多线程实现服务端
原文作者:aircraft 原文链接:https://www.cnblogs.com/DOMLX/p/9661012.html 先讲Linux下(windows下在后面可以直接跳到后面看): 一.线程 ...
- 借助xxl-sso实现SSO
前言 市场上一下主流的SSO技术搭配方案: SpringSecurity + OAuth2 SpringSecurity + CAS 功能较弱,对前后端分离的项目支持不是很好 Shiro + CAS ...
- .NET Core中JWT+Auth2.0实现SSO,附完整源码(.NET6)
一.简介 单点登录(SingleSignOn,SSO) 指的是在多个应用系统中,只需登录一次,就可以访问其他相互信任的应用系统. JWT Json Web Token,这里不详细描述,简单说是一种认证 ...
- 第六章:Django 综合篇 - 6:会话session
因为因特网HTTP协议的特性,每一次来自于用户浏览器的请求(request)都是无状态的.独立的.通俗地说,就是无法保存用户状态,后台服务器根本就不知道当前请求和以前及以后请求是否来自同一用户.对于静 ...
- 集成基于CAS协议的单点登陆
相信大家对单点登陆(SSO,Single Sign On)这个名词并不感到陌生吧?简单地说,单点登陆允许多个应用使用同一个登陆服务.一旦一个用户登陆了一个支持单点登陆的应用,那么在进入其它使用同一单点 ...
随机推荐
- PHP文档生成器(PHPDoc)的基本用法
目录 PHP文档生成器(PHPDoc)的基本用法 PHPDoc概述 安装 PHPDoc注释规范 页面级别的注释 代码级别的注释 生成API文档 额外软件 PHP文档生成器(PHPDoc)的基本用法 P ...
- Python在线编程环境
除了安装Python的IDE之外,也可以使用在网页中随时随地编写Python程序. Python官网:https://www.python.org/shell Python123:https://py ...
- linux线程篇 (一) 线程的基本概念
--进程 一个正在执行的程序,资源分配的最小单位 进程中的事情需要按照一定顺序区执行的,但是如何在一个进程中让一些事情同时发生呢?子进程存在缺陷 --引进多线程 --线程:有时又称轻量级进程,程序执行 ...
- linux静态链接库
库 库是写好的现有的,成熟的,可以复用的代码.现实中每个程序都要依赖很多基础的底层库,不可能每个人的代码都从零开始,因此库的存在意义非同寻常 本质上来说库是一种可执行代码的二进制形式,可以被操作系统载 ...
- C语言基础——链表的相关操作
1 #include <stdio.h> #include <malloc.h> #include <string.h> #include <math.h&g ...
- HyperLedger Fabric 1.4 单机单节点部署(10.2)
单机单节点指在一台电脑上部署一个排序(Orderer)服务.一个组织(Org1),一个节点(Peer,属于Org1),然后运行官方案例中的example02智能合约例子,实现转财交易和查询功能.单机单 ...
- ggplot2画简单的heatmap
gg_heatmap gg_heatmap PeRl ggplot2 heatmap 偶然的机会,发现ggplot2画的heatmap也挺好看的,除了不能画出聚类树来(手动滑稽). 随意新建了两个矩阵 ...
- js闭包的理解-目前网上分析的最透彻文章
js的闭包对于大家实际上并不陌生,但是真正敢说自己完全理解的人并不多.笔者在网上看到分析闭包的文章非常多,篇幅用的非常多,但是实际上分析的并不到位,或者根本就是不正确的.我有时候都在想,写这些文章的人 ...
- 讯飞SDK的使用
在配置好Android Studio 2.3.3后,依照结合网上例子,动手创建讯飞语言听写app,最终手机上运行成功. 主要参考两篇博文(zqHero/XunFeiVoiceDEmo ,Android ...
- 北京Uber优步司机奖励政策(3月26日)
滴快车单单2.5倍,注册地址:http://www.udache.com/ 如何注册Uber司机(全国版最新最详细注册流程)/月入2万/不用抢单:http://www.cnblogs.com/mfry ...