SSO(单点登录)—CAS总结

概述

SSO(Single Sign On),单点登录,多个具有独立运行的系统组成一个大系统,实现用户登录一次,即可随意访问该大系统的子系统。单点登录的具体实现有多种方式,我们可以自己实现,也可以采用第三方提供的框架。

自定义SSO

方式一

部署图

具体实现过程

1、用户通过浏览器,输入用户名和密码进行登录

2、权限系统接收到用户名和密码后,进行校验,校验通过后,将相应的用户信息,写入到Cookie中

3、登录后的用户此时访问考试系统时,考试系统先从Cookie中获取相应的值,然后判断其是否登录

小结

这个过程,我们可以非常清楚的知道,这样做不安全,因为用户的信息存放在Cooike上,所以,非常的不安全。

方式二

部署图

流程描述

这个流程和上面的流程几乎一样,不一样的地方就是用户信息的存放地方,方式一是将用户信息直接存放到Cookie上,方式二是将用户信息存放到Radis上,然后,用户访问考试系统时,系统从Cookie中获得相应的值,然后,通过这个值,从Radis中获取相应的用户信息,判断用户是否登录。

小结

方式二虽然解决了方式一的一个不足,但是,对于这两种方式都存在的一种不足,它没有解决,这个不足就是Cookie,Cookie值得获取是有一定的要求的,域名规范等等,使用时,具有很大的限制,例如:权限系统是域名1,那么,考试系统必须是这类(定好的规则)域名时,才可以获取Cookie的值。

第三方框架CAS

部署图

看到这幅图后,你一定很惊讶,这个和自己实现的第二种方式,非常的相似,唯一不同的Redis服务器变成了CAS服务器,对,非常的对,但是,也就是因为这个不同,就解决了那个问题。注意,此时具体系统都引入CAS相应的jar了

流程描述

1、用户输入用户名和密码,登录

2、权限系统中的CAS的过滤器拦截后,让其转发到CAS服务器

3、转发到CAS服务器后,CAS看有没有Cookie,没有的话,说明没有登录过,此时,就给Cookie中写入CAS的值,并返回钥匙,然后,让浏览器带着钥匙转发到权限系统,然后,权限系统中的CAS再拿着钥匙和CAS服务器进行验证,验证通过,CAS服务器将用户的信息返回给权限系统,且登录成功。

4、用户转到考试系统时,考试系统的过滤器拦截,看是否具有钥匙,不具有的话,就重复2和3操作,有的话,直接和CAS服务器进行验证,通过后,CAS服务器将用户信息返回给考试系统,进入成功

小结

CAS解决Cookie取值限制的方式时,让CAS服务器放Cookie值,并且,让CAS服务器取值,当然,这里面也要有子系统的CAS的jar进行的转发和验证操作。

总结

CAS服务器端各种验证规则,客户单单点注销,对用户操作等具体操作,在这里就不再描述,现提供相应的代码,有兴趣的话,可以下载下来看看。

时间: 2024-10-15 21:17:13

SSO(单点登录)—CAS总结的相关文章

cas sso单点登录系列4_cas-server登录页面自定义修改过程(jsp页面修改)

转:http://blog.csdn.net/ae6623/article/details/8861065 SSO单点登录系列4:cas-server登录页面自定义修改过程,全新DIY. 目标: 下面是正文: 打开cas的默认首页,映入眼帘的是满眼的中文and英文混杂体,作为一名合格的用户,我表示很不开心. 于是,打开 Nodepad++,寻找C:\tomcat7\webapps\casServer\WEB-INF\view\jsp\default\ui \casLoginView.jsp这个页

CAS实现SSO单点登录原理

1.      CAS 简介 1.1.  What is CAS ? CAS ( Central Authentication Service ) 是 Yale 大学发起的一个企业级的.开源的项目,旨在为 Web 应用系统提供一种可靠的单点登录解决方法(属于 Web SSO ). CAS 开始于 2001 年, 并在 2004 年 12 月正式成为 JA-SIG 的一个项目. 1.2.  主要特性 1.   开源的.多协议的 SSO 解决方案: Protocols : Custom Protoc

学习CAS实现SSO单点登录

网上找了几篇比较详细的教程,在这记录一下: 原理: CAS实现SSO单点登录原理 教程: 1.CAS实现单点登录(SSO)经典完整教程 2.SSO之CAS单点登录实例演示 3.CAS单点登录(SSO)完整教程 有可能出现的问题解决方案: 1.unable to find valid certification path to requested target javax.net.ssl.SSLHandshakeException: sun.security.validator.Validator

CAS实现SSO单点登录原理(转)

1.      CAS 简介 1.1.  What is CAS ? CAS ( Central Authentication Service ) 是 Yale 大学发起的一个企业级的.开源的项目,旨在为 Web 应用系统提供一种可靠的单点登录解决方法(属于 Web SSO ). CAS 开始于 2001 年, 并在 2004 年 12 月正式成为 JA-SIG 的一个项目. 1.2.  主要特性 1.   开源的.多协议的 SSO 解决方案: Protocols : Custom Protoc

CAS SSO单点登录框架介绍

1.了解单点登录  SSO 主要特点是: SSO 应用之间使用 Web 协议(如 HTTPS) ,并且只有一个登录入口. SSO 的体系中有下面三种角色: 1) User(多个) 2) Web 应用(多个) 3) SSO 认证中心(一个) 2.SSO 实现包含以下三个原则 1) 所有的登录都在 SSO 认证中心进行. 2) SSO 认证中心通过一些方法来告诉 Web 应用当前访问用户究竟是不是通过认证的用户. 3) SSO 认证中心和所有的 Web 应用建立一种信任关系. 3.了解单点登录体系结

CAS SSO单点登录框架学习

1.了解单点登录  SSO 主要特点是: SSO 应用之间使用 Web 协议(如 HTTPS) ,并且只有一个登录入口. SSO 的体系中有下面三种角色: 1) User(多个) 2) Web 应用(多个) 3) SSO 认证中心(一个) 2.SSO 实现包含以下三个原则 1) 所有的登录都在 SSO 认证中心进行. 2) SSO 认证中心通过一些方法来告诉 Web 应用当前访问用户究竟是不是通过认证的用户. 3) SSO 认证中心和所有的 Web 应用建立一种信任关系. 3.了解单点登录体系结

CAS实现SSO单点登录

环境cas-server-4.1.8,cas-client-3.4.0,Java-8,Maven-3,Tomcat-7.0.72 CAS Server 安装点此进入 CAS 下载列表,选择下载 cas-4.1.8.zip. 解压缩 cas-4.1.8.zip 并进入 cas-server-webapp 目录,在当前目录打开 cmd 并执行安装命令. mvn -e -ff clean install -Dmaven.test.skip=true经亲身测试(自己拉的电信12M网络),该安装过程非常漫

CAS SSO单点登录实例

1.因为是本地模拟sso环境,而sso的环境测试需要域名,所以需要虚拟几个域名出来,步骤如下: 2.进入目录C:\Windows\System32\drivers\etc 3.修改hosts文件 127.0.0.1 jeesz.cn 127.0.0.1 sso1.jeesz.cn 127.0.0.1 sso2.jeesz.cn 4.生成认证证书 注意:我们可以根据sso单点登录的架构图可以看到,在客户端和服务端进行交互的时候,是需要认证的,在这里我们使用jdk中的keytool方案生成证书(一般

[精华][推荐]CAS SSO单点登录服务端客户端实例

1.因为是本地模拟sso环境,而sso的环境测试需要域名,所以需要虚拟几个域名出来,步骤如下: 2.进入目录C:\Windows\System32\drivers\etc 3.修改hosts文件 127.0.0.1 jeesz.cn 127.0.0.1 sso1.jeesz.cn 127.0.0.1 sso2.jeesz.cn 4.生成认证证书 注意:我们可以根据sso单点登录的架构图可以看到,在客户端和服务端进行交互的时候,是需要认证的,在这里我们使用jdk中的keytool方案生成证书(一般