SSO CAS 单点系列
在多系统应用群中,使用,例如,用户账户管理,用户应该有一个统一的账户,不应该让用户在每个子系统分别注册 登陆再分别登出。这就是我们所说的单点登陆问题,即SSO;
SSO问题,时大中型web应用经常碰到的问题,是java架构师需要掌握的必备技能之一,中高级以上Web工程师都应该对它有所了解;
http是一个无状态协议,在此之上实现会话管理,就需要额外的手段,1 带请求参数,侵入性较大,一般不使用,2 使用cookie,服务器通过HTTP响应创建好cookie后,浏览器就接收下来,下次请求会自动携带上返回给服务器,应用这个机制,我们可以实现应用层的登陆会话状态管理。
例如我们可以把登陆状态保存哎cookie中,这是客户端保存方式。会话信息在客户端,需要维护其安全性、徐娅加密文件、携带量变大,这样会影响http的处理效率,同时cookie的数据携带量也有一定的限制。
比较好的方式是服务器端的保存,cookie只保存会话信息的句柄,即在登陆成功后,服务器端可以创建一个唯一登陆会话,并把会话标识ID通过cookie返回给浏览器,浏览器下次访问时会自动带上这个ID,服务器根据ID即可判断是此会话中的请求,从而判断出是该用户,这种操作直到登出销毁会话为止。
我们使用的web应用服务器一般都会提供这种会话基础访问,如Tomcat的Session机制。也就是说,应用开发人员不必利用cookie亲自代码实现会话的创建 维护 和销毁等整个生命周期管理,这些内容服务器Seeion已经提供好了,我们只需要正确使用即可。
1 大中型web应用基本都是多系统组成是应用群,SSO是必须面对的基本问题。
2 Cookie有作用域限制,顶级域名Cookie不能共享,故登陆会话不能共享。
3 直接改造各子系统共享Session,通用性灵活性不强,或对原系统侵入性大,不是解决SSO根本办法。
来自:https://www.imooc.com/article/3555#

当用户访问子系统需要登录时,我们把它引到认证中心,让用户到认证中心去登录认证,认证通过后返回并告知系统用户已登录。当用户再访问另一系统应用时,我们同样引导到认证中心,发现已经登录过,即返回并告知该用户已登录
1 登陆属于系统安全管理模块一部分,涉及认证 建立会话 会话状态判断 取消会话等操作。
2 剥离各系统认证功能,建立统一独立认证服务中心,是解决SSO问题的正确方法。
3 由于是分布式,处理SSO需要解决认证消息传递问题、登陆状态判断问题、登出信息传递问题,保证各应用系统与认证中心之间有效通信。
来自:https://www.imooc.com/article/3558
1 临时令牌只能使用一次,不呢个长期存在,可以使用Redis来实现
2 全局会话和本地会话可以利用web服务器Session,但我们必须实现根据SeeionId查找seesion的功能。
3 服务器端之间HTTP协议方式的通信,可以使用HttpClient工具模拟浏览器实现。
来自:https://www.imooc.com/article/3564
1 CAS是中央认证服务的简称。目前已成为影响最大、广泛使用的、基于java实现的、开源SSO解决方案
2 CAS分为CAS Server认证中心和CAS Client应用系统连接组件,CAS Client支持java php .NET等多种语言开发系统
3 CAS Server是java Web应用,可部署在Tomcat中。CAS Client是连接组件,集成在需要单点登陆的各应用系统中,鉴于登陆安全性,实际应用中使用https协议,为调试方便,可修改为支持http。
来自:https://www.imooc.com/article/3576
SSO CAS 单点系列的更多相关文章
- (转)《SSO CAS单点系列》之 15分钟让你了解SSO技术到底是个什么鬼!
Web应用系统的演化总是从简单到复杂,从单功能到多功能模块再到多子系统方向发展. .当前的大中型Web互联网应用基本都是多系统组成的应用群,由多个web系统协同为用户提供服务. 多系统应用群,必然意味 ...
- (转)《SSO CAS单点系列》之 实现一个SSO认证服务器是这样的!
上篇我们引入了SSO这个话题<15分钟了解SSO是个什么鬼!>.本篇我们一步步深入分析SSO实现机理,并亲自动手实现一个线上可用的SSO认证服务器!首先,我们来分析下单Web应用系统登录登 ...
- 《SSO CAS单点系列》之 APP原生应用如何访问CAS认证中心
4.开发支持APP登录的移动服务端接口.接收APP登录请求,采用HttpClient转发至CAS认证中心登录,返回json数据解析并最终返回给客户端.本地会话采用redis维护,登录成功,返回acce ...
- SSO单点登录系列5:cas单点登录增加验证码功能完整步骤
本篇教程cas-server端下载地址:解压后,直接放到tomcat的webapp目录下就能用了,不过你需要登录的话,要修改数据源,C:\tomcat7\webapps\casServer\WEB-I ...
- 【SSO单点系列】(2):CAS4.0 登录页的个性化定制
上一篇 [SSO单点系列](1):CAS环境的搭建介绍了CAS最简单环境的搭建,以及一个例子用来讲解CAS的一个最基础的用法. 今天主要是介绍如何对CAS登录页进行个性化定制. 一.开始 下图是 ...
- cas系列(一)--cas单点登录基本原理
(这段时间打算做单点登录,因此研究了一些cas资料并作为一个系列记录下来,一来可能会帮助一些人,二来对我自己所学知识也是一个巩固.) 一.为什么要实现单点登录 随着信息化不断发展,企业的信息化过程是一 ...
- SSO之CAS单点登录实例演示
本文目录: 一.概述 二.演示环境 三.JDK安装配置 四.安全证书配置 五.部署CAS-Server相关的Tomcat 六.部署CAS-Client相关的Tomcat 七. 测试验证SSO 一.概述 ...
- 【SSO单点系列】(1):CAS4.0 环境的搭建
一.概述 今天开始写CAS相关的第一篇文章,这篇文章主要是关于CAS环境的搭配,提供给刚刚接触CAS的一个入门指南,并演示一个CAS的最简单的实例 二.环境要求 博主的环境如下: win8.1 64 ...
- SSO之CAS单点登录详细搭建教程
本教程是我个人编写,花费几个小时的时间,给需要学习的人员学习使用,希望能帮助到你们. [环境说明]:本文演示过程在同一个机器上的(也可以在三台实体机器或者三个的虚拟机上),环境如下: windows7 ...
随机推荐
- 《TensorFlow2深度学习》学习笔记(四)对笔记二中的模型增加正确率展示
全部代码如下:(红色部分为与笔记二不同之处) #1.Import the neccessary libraries needed import numpy as np import tensorflo ...
- QA流程
一.测试人员的介入时间 1.当产品经理与业务人员制定需求的时候,测试人员不宜介入: 2.当下一期的需求原型出来以后,这个时候就进入了需求评审.需求分析阶段,此时,测试人员应该介入: 3.当开发人员在编 ...
- 微信小程序~用户转发 onShareAppMessage
只有定义了此事件处理函数,右上角菜单才会显示“转发”按钮,在用户点击转发按钮的时候会调用,此事件需要return一个Object,包含title和path两个字段,用于自定义转发内容 代码使用onSh ...
- Oracle两表关联,只取B表的第一条记录
背景: A表.B表两表关联,关联出来的结果里B表有不止一条,需求是只要B表结果中的某一条(按某字段排序) 首先想到了直接写个带排序的子查询去匹配外围的值,从这个结果集中只要第一条,但是经过验证发现, ...
- springcloud(二)
springcloud路由网关 一.什么是网关 Zuul的主要功能是路由转发和过滤器.路由功能是微服务的一部分,比如/api/user转发到到user服务,/api/shop转发到到shop服务.zu ...
- jQuery - 添加元素append/prepend和after/before的区别
append <p> <span class="s1">s1</span> </p> <script> $(" ...
- Linux桌面最轻量的Dock之Plank介绍
官方的文档描述 Plank 是“这个星球上最简洁的 dock”.该项目的目的就是仅提供一个 dock 需要的功能,尽管这是很基础的一个库,却可以被扩展,创造其他的含更多高级功能的 dock 程序. 这 ...
- select count(1)和 select count(*)
),其实就是计算一共有多少符合条件的行. 1并不是表示第一个字段,而是表示一个固定值. 其实就可以想成表中有这么一个字段,这个字段就是固定值1,),就是计算一共有多少个1. 同理,),也可以,得到的值 ...
- 树莓派从烧录系统到通过wifi远程访问(新树莓派配置,无显示器、网线、键盘)
本文通过MetaWeblog自动发布,原文及更新链接:https://extendswind.top/posts/technical/raspberry_from_install_to_remote_ ...
- Alibaba Nacos:搭建Nacos平台
1.下载安装包 https://github.com/alibaba/nacos/releases 往下翻,找到压缩包下载. 2.解压 tar -xvf nacos-server-$version.t ...