会话模型与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 Mysql字符集utf8mb4支持Emoji表情
项目开发中经常会遇到用户在评论或者发表文章的时候会打一些表情在里面,如果我们在开发中不去做一些处理的话,表情会出不来的,甚至是报错,下面简单介绍处理方式.原文地址:小时刻个人博客:http://sma ...
- Java学习笔记十六:Java中的构造方法
Java中的构造方法 1.使用new+构造方法 创建一个新的对象: 2.构造方法是定义在Java类中的一个用来初始化对象的方法: 3.构造方法与类同名且没有返回值: 4.语法格式: public 构造 ...
- linux popen 获取 ip test ok
任务:unix,linux通过c程序获取本机IP. 1. 标准I/O库函数相对于系统调用的函数多了个缓冲区(,buf),安全性上通过buf 防溢出. 2.printf 这类输出函数中“ ”若包含“记得 ...
- for循环练习题(1 ,判断任意一个数是91的多少倍 2,编写程序实现给定一个整数判断它从0到这个整数中间出现多少次9的次数)
1 //判断任意一个数是9的多少倍 #include <stdio.h> #include <stdlib.h> int main() { printf("请输入任意 ...
- python 正则表达式 符号及其定义
较好的文章https://www.cnblogs.com/huxi/archive/2010/07/04/1771073.html
- E. Almost Regular Bracket Sequence
题目链接:http://codeforces.com/contest/1095/problem/E 解题心得: 刚开始拿到这个题的时候还真的没什么思路,后来仔细想想还是比较简单的.首先题目要求翻转一个 ...
- solr环境搭建及java小demo
一配置solr环境 1.下载solr 2.配置solr(最好单独分离出一个tomcat,一台机器启动多个tomcat参见:http://www.cnblogs.com/lxlwellaccessful ...
- 如何把C盘里的文件默认位置更改到D盘指定目录?
如何把C盘里的文件默认位置更改到D盘指定目录? 1.打开运行,输入 %HOMEPATH% 2.以”桌面”文件转移到D盘目录为例(其他文档类比进行操作) 3.鼠标右键”桌面”----选择属性-----定 ...
- RESTful Demo
Demo 功能 两个模块, App 与 Admin, App 模块提供增加用户(/add?name=${name})与查询用户(/query/${id}), Admin 模块提供列出所有用户(/lis ...
- Java设计模式(17)——行为模式之观察者模式(Observer)
一.概述 概念 UML简图 我们根据一个示例得类图来分析角色 角色 抽象主题:保存观察者聚集(集合),管理(增删)观察者 抽象观察者:定义具体观察者的抽象接口,在得到主题通知后更新自己 具体主题:将有 ...