CAS单点登录
06
Cas单点登录解析
图解1: 4
CAS Server(认 证中心)
系统A
5 1
2
3
1、用户浏览器访问系统A需登录受限资源,此时进行 登录检查,发现未登录,然后进行获取票据操作,发 现没有票据。 2、系统A发现该请求需要登录,将请求重定向到认证 中心,获取全局据TGT操作,没有,进行登录。 3、认证中心呈现登录页面,用户登录,登录成功后, 认证中心重定向请求到系统A,并附上认证通过ticket 令牌(即ST),同时会在Cookie中设置一个GASTGC(C AS Server的Cookie),此时认证中心同时生成了全 局票据。 4、此时再次进行登录检查,发现未登录,然后再次获 取票据操作,此时可以获得票据(令牌),系统A与认证 中心通信,将Cookie中的TGC携带到CAS Server,C AS Server根据这个TGC查找与之对应的TGT,验证令 牌有效,证明用户已登录。 5、系统A将受限资源返给用户。
1、开源的企业级单点登录解决方案,源码拿出来 就能二次开发,DIY比较容易。 2、CAS Server 为需要独立部署的 Web 应用,打 包放到web中间件(比如Tomcat)里面就可以立即开 始工作,方便快捷,配置简单,傻瓜式使用方式, 也可以对一些功能进行扩展,比如用户认证方式。 3、CAS Client 支持非常多的客户端(这里指单点登 录系统中的各个 Web 应用),包括 Java, .Net, PHP, Perl, Ruby 等。
Cas单点登录实例
THANK YOU
2018
存放用户身份认证凭证票据(存放令牌)的 cookie,浏览器关闭即失效(携带到浏览器)
Cas单点登录解析
原理:
01 02 03 04 05
访问服务:SSO客户端发送请求访问应用系 统提供的服务资源。 定向认证:SSO客户端会重定向用户请求到 SSO服务器。
用户认证:用户身份认证。
发放票据:SSO服务器会产生一个随机的 Service Ticket。 验证票据:SSO服务器验证票据Service Ticket的合法性,验证通过后,允许客户端 访问服务。 传输用户信息:SSO服务器验证票据通过后, 传输用户认证结果信息给客户端。
Cas单点登录解析
术语:
缩写 全称 解释
SSO
Single Sign On
单点登录
TGT
Ticket Granting Ticket
用户身份认证凭证票据(俗称大令牌,或者说票 根,他可以签发ST)
ST
Service Ticket
服务许可凭证票据(随机参数,每次服务端校验 后作废)
TGC
Ticket Granting Cookie
Cas单点登录解析
图解2: 4
CAS Server(认 证中心) 1、浏览器访问另一应用B需登录受限资源,此时进行 登录检查,发现未登录,然后进行获取票据操作,发 现没有票据。 2、系统B发现该请求需要登录,将请求重定向到认证 中心,获取全局票据操作,获取全局票据,可以获得, 认证中心发现已经登录。 3、认证中心发放临时票据(令牌),并携带该令牌重定 向到系统B。 4、此时再次进行登录检查,发现未登录,然后再次获 取票据操作,此时可以获得票据(令牌),系统B与认证 中心通信,验证令牌有效,证明用户已登录。 5、系统B将受限资源返回给客户端。
系统B
5 1
2
3
Cas单点登录解析
Request1 【第一步】终端第一次访问CAS—Client1,AuthenticationFilter会截获此请求:1、首先,检测本地Session没有缓存有用 户信息;2、然后,检测到请求信息中没有ST;3、所以,CAS—Client1将请求重定向到CAS—Server,并传递 Service (也就是要 访问的目的资源地址,以便登录成功过后转回该地址),例:【https://cas:8443/cas/login?service=http0%3A8081%2F】 【第二步】终端第一次访问CAS—Server:1、CAS—Server检测到请求信息中没有TGC,所以跳转到自己的登录页;2、 终端输入用户名、密码登录CAS—Server,认证成功后,CAS—Server会生成登录票据—TGT(集成了用户信息与ST),并随机生成 一个服务票据—ST与CAS会话标识—TGC。TGT实际上就是Session,而TGC就是这标识这个Session存到Cookie中的SessionID; ST即,根据Service生成Ticket。3、然后,CAS—Server会将Ticket加在url 后面,然后将请求redirect 回客户web 应用,例如 URL为【http://192.168.1.90:8081/web1/?ticket=ST-5-Sx6eyvj7cPPCfn0pMZ】 【第三步】这时,终端携带ticket再次请求CAS—Client1:1、这时客户端的AuthenticationFilter看到ticket 参数后,会跳 过,由其后面的TicketValidationFilter 处理;2、TicketValidationFilter 会利用httpclient工具访问cas 服务的/serviceValidate 接口, 将ticket 、service 都传到此接口,由此接口验证ticket 的有效性,即向CAS—Server验证ST的有效性。3、 TicketValidationFilter如果得到验证成功的消息,就会把用户信息写入web 应用的session里。至此为止,SSO 会话就建立起来了。 Request2 上面说了SSO 会话已经建立起来了,这时用户在同一浏览器里第二次访问此web 应用(CAS—Client1)时, AuthenticationFilter会在session 里读取到用户信息,这就代表用户已成功登录,所以就不会去CAS 认证了。 Request3 【第一步】与Request1是完全一样的,如下:终端第一次访问CAS—Client2,AuthenticationFilter会截获此请求:1、首 先,检测本地Session没有缓存有用户信息;2、然后,检测到请求信息中没有ST;3、所以,CAS—Client1将请求重定向到CAS— Server,并传递 Service (也就是要访问的目的资源地址,以便登录成功过后转回该地址),例: 【https://cas:8443/cas/login?service=http0%3A8081%2F】 【第二步】然后,终端第二次访问CAS—Server:此时,Request中会带有上次生成的TGC,然后根据TGC(SessionID) 去查找是否有对应的TGT(Session),如果有,代表此用户已成功登录过,所以此时用户不必再去登录页登录(SSO的体现),而 CAS—Server会直接用找到的TGT签发一个ST,然后重定向到CAS—Client2,剩下的如Request1中的【第三步】就完全一样了。
Cas单点登录简介
CAS简单介绍
CAS(Central Authentication Service) 是Yale耶鲁大学发起的一个开源 项目,旨在为 Web 应用系统提 供一种可靠的单点登录方法, CAS 在 2004 年 12 月正式成为 JA-SIG 的一个项目。
Cas单点登录简介
CAS特点
实 CA S SSO单点登录 战
主讲人:西越
Cas单点登录简介
Cas单点登录解析
Cas单点登录实例
Cas单点登录简介
SSO简单介绍
CAS
单点登录(Single Sign On),简称为 SSO,是目 前比较流行的企业业务整合 的解决方案之一。SSO的定 义是在多个应用系统中,用 户只需要登录一次就可以访 问所有相互信任的应用系统。
ruoyi+cas 单点登录原理
ruoyi+cas 单点登录原理随着互联网的快速发展和信息化的进程,用户管理和身份验证等安全问题成为了企业和机构面临的重要挑战。
为了解决这一问题,单点登录(Single Sign-On,简称SSO)技术应运而生。
ruoyi+cas 单点登录作为一种主流的SSO解决方案,广泛应用于各种网络应用系统中。
本文将对ruoyi+cas 单点登录的原理进行分析与讲解,帮助读者更加深入地了解该技术。
一、ruoyi+cas 单点登录的概念1. 单点登录的定义单点登录是指用户在一次登录后,即可访问多个相互信任的应用系统,而无需多次输入身份验证信息。
这大大提高了用户的使用体验,同时也简化了企业和机构的管理工作。
2. ruoyi+cas 单点登录的特点ruoyi+cas 单点登录是基于CAS(Central Authentication Service)协议开发的,具有以下特点:- 中心化的用户身份认证- 统一的登录界面- 应用系统与CAS服务器之间进行单点登录认证二、ruoyi+cas 单点登录的工作原理1. 传统登录认证流程在没有单点登录的情况下,用户每次需要访问一个新的应用系统时都需要进行登录认证。
这导致了用户需要记住多个不同的账号和密码,极大影响了用户体验。
2. ruoyi+cas 单点登录的认证流程ruoyi+cas 单点登录将用户的身份认证集中到CAS服务器上,实现了用户在第一次登录后即可访问其他应用系统的功能。
其认证流程如下:- 用户通过浏览器访问某一应用系统,但未登录- 应用系统检测到用户未登录,重定向至CAS服务器进行认证- 用户在CAS服务器上输入账号和密码进行认证- 认证成功后,CAS服务器产生票据并将用户重定向回原应用系统- 应用系统通过票据与CAS服务器进行交互,验证用户身份- 验证成功后,用户被认为已登录并可以正常使用应用系统三、ruoyi+cas 单点登录的实现步骤1. CAS服务器的部署首先需要搭建CAS服务器,这可以采用官方提供的CAS Server,也可以使用ruoyi+cas的改进版CAS Server。
cas机制详解
cas机制详解CAS机制(Central Authentication Service)是一种基于Web的单点登录(Single Sign-On,简称SSO)协议,它通过提供一个统一的认证服务,实现了多个应用系统之间的用户身份认证和授权。
CAS机制的核心思想是将用户的身份认证和授权过程分离出来,由CAS服务器来完成。
具体的流程如下:首先,用户在访问一个需要认证的应用系统时,该应用系统将用户重定向到CAS服务器;然后,CAS服务器会要求用户提供用户名和密码进行认证;认证成功后,CAS服务器会生成一个票据(Ticket)并将其返回给用户;最后,用户携带该票据访问其他需要认证的应用系统时,该应用系统会将该票据发送给CAS服务器进行校验,校验通过后,用户可以无需再次输入用户名和密码直接访问。
CAS机制的优点有以下几个方面:1. 单点登录:用户只需要登录一次,就可以访问所有已接入CAS的应用系统,大大方便了用户的使用。
2. 安全性高:用户的密码只需要在CAS服务器上进行一次认证,其他应用系统无需存储用户的密码,减少了密码被盗取的风险。
3. 灵活性强:CAS机制可以与各种不同类型的应用系统集成,无论是Web应用还是移动应用,都可以通过CAS实现单点登录。
4. 可扩展性好:CAS机制支持集群部署,可以通过增加CAS服务器的数量来提高系统的并发性能和可用性。
除了以上优点,CAS机制还具有以下一些特点:1. 高度可定制化:CAS服务器提供了丰富的配置选项和扩展接口,可以根据具体需求进行定制化开发。
2. 多种协议支持:CAS服务器支持多种认证协议,例如CAS协议、OAuth协议等,可以根据需要选择合适的协议进行集成。
3. 多种认证方式:CAS服务器支持多种认证方式,例如用户名密码认证、短信验证码认证、第三方登录认证等,可以根据具体情况选择适合的认证方式。
总结来说,CAS机制是一种基于Web的单点登录协议,通过提供统一的认证服务,实现了多个应用系统之间的用户身份认证和授权。
单点登录解决方案 cas
单点登录解决方案 CAS概述在现代的互联网应用中,用户通常需要使用多个应用来完成不同的任务。
这些应用通常都有自己的用户身份验证和会话管理方式,导致用户需要为每个应用分别进行登录和验证。
单点登录(Single Sign-On,简称 SSO)解决方案就是为了解决这个问题而被提出的。
本文将介绍一个常见的单点登录解决方案 - CAS(Central Authentication Service)。
CAS 是一种基于票据的 SSO 解决方案,它是一个开源的认证中心,旨在为多个独立的应用提供统一的认证服务。
通过 CAS,用户只需要在一个应用中登录一次,就可以在其他应用中无需再次输入凭证,实现无缝登录体验。
CAS 的工作原理CAS 的工作原理可以分为以下几个步骤:1.用户访问应用 A,并尚未登录。
2.应用 A 验证用户是否登录,发现用户未登录。
3.应用 A 重定向用户到 CAS 客户端,传递应用 A 的地址。
4.CAS 客户端将用户重定向到 CAS 服务器,并携带应用 A 的地址。
5.CAS 服务器要求用户登录,并在登录成功后,生成一个票据进行标识。
6.CAS 服务器将该票据返回给 CAS 客户端。
7.CAS 客户端将该票据回传给应用 A。
8.应用 A 将票据发送给 CAS 服务器验证。
9.CAS 服务器验证票据的有效性,并返回用户信息。
10.应用 A 根据用户信息判断是否登录成功,如果成功则创建会话。
这样,用户就可以在应用 A 中实现登录,并在其他接入 CAS 的应用中无需再次登录。
CAS 的优势和适用场景CAS 作为一种单点登录解决方案,在以下情况下具有明显的优势:1.需要实现统一的认证和授权管理:CAS 提供了一个中心化的身份认证和授权服务,可以方便地进行统一管理。
2.需要在多个应用之间实现无缝登录:用户只需要登录一次,就可以在其他接入 CAS 的应用中自动登录,提供了更好的用户体验。
3.需要提供单点注销功能:用户可以在一个应用中注销,然后所有其他应用都会被注销,增加了系统的安全性。
cas 单点登录 原理
cas 单点登录原理CAS(Central Authentication Service)是一种常见的单点登录解决方案,它提供了一种统一的认证方式,使得多个应用系统可以共享用户的登录凭证,从而实现一次登录即可访问多个应用系统的目的。
CAS单点登录的原理如下:当用户在某个应用系统中进行登录时,该应用系统会将用户的登录信息发送给CAS服务器进行验证。
CAS服务器会校验用户提供的登录凭证的合法性,并且将用户的登录状态进行保存。
如果认证成功,CAS服务器会为该用户生成一个全局的票据(Ticket),并将其返回给应用系统。
当用户访问其他应用系统时,该应用系统会将用户重定向到CAS服务器,并附带上之前获得的票据。
CAS服务器接收到票据后会再次进行验证,只有合法的票据才会被认可。
认证成功后,CAS服务器会生成一个新的票据,并将其返回给应用系统。
应用系统可以使用该票据来获取用户的登录信息,从而完成单点登录的过程。
CAS单点登录的优点在于它实现了统一的认证管理,用户只需要登录一次就可以访问多个应用系统,避免了频繁的登录操作。
同时,CAS服务器可以集中管理用户的认证状态,提供了更好的安全性和管理性。
需要注意的是,CAS单点登录并不涉及具体的用户信息存储和权限管理,它只负责认证部分的功能。
因此,在实际应用中,需要结合其他系统来完成用户信息的存储和权限管理,才能实现一个完整的单点登录解决方案。
总之,CAS单点登录通过集中认证管理,实现了一次登录即可访问多个应用系统的效果。
它的原理是通过统一的认证方式和票据验证,确保用户的合法性并且提供安全性和管理性。
在实际应用中,CAS单点登录需要和其他系统结合使用才能完成完整的功能。
CAS单点登录集成文档
一、介绍CAS单点登录为业务系统提供统一的单点登录服务。
业务系统不需要开发自己的登录界面,系统使用者也避免了在多个业务系统间重复输入密码,改善了用户体验,同时密码实现集中维护,提高了系统的安全性。
单点登录演示地址:http://172.16.10.40:1433/cas/login(社管平台测试环境)业务系统可以使用这个地址进行开发测试。
二、下载CAS为J2EE B/S应用提供了应用集成API,可以直接调用实现单点登录的集成。
:cas-client.jar文件下载后复制到业务系统的WEB-INF/lib目录。
三、配置在web.xml中配置认证过滤器(实现单点登录用户认证)和会话监听器(实现单点登录的注销),例如:<listener><listener-class>com.iflytek.cas.listener.LogoutSessionListener</listener-class></listener><filter><filter-name>casFilter</filter-name><filter-class>com.iflytek.cas.filter.TicketValidationFilter</filter-class><init-param><param-name>appUrl</param-name><param-value></param-value></init-param><init-param><param-name>casLoginUrl</param-name><param-value>http://172.16.10.40:1433/cas/login</param-value></init-param><init-param><param-name>ticketValidateUrl</param-name><param-value>http://172.16.10.40:1433/cas/validate</param-value></init-param></filter><filter-mapping><filter-name>casFilter</filter-name><url-pattern>/*</url-pattern></filter-mapping>过滤器参数说明:1、appUrl:Client会根据浏览器请求自动判断这个地址,所以一般情况下是不需要设置的。
CAS单点登录系列
小蚂蚁-CAS单点登录系列(1)-基础知识1.单点登录1.1.概述单点登录(Single Sign On),简称为 SSO,是目前比较流行的企业业务整合的解决方案之一。
SSO的定义是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。
1.2.技术实现机制当用户第一次访问应用系统1的时候,因为还没有登录,会被引导到认证系统中进行登录;根据用户提供的登录信息,认证系统进行身份效验,如果通过效验,应该返回给用户一个认证的凭据--ticket;用户再访问别的应用的时候,就会将这个ticket带上,作为自己认证的凭据,应用系统接受到请求之后会把ticket送到认证系统进行效验,检查ticket的合法性。
如果通过效验,用户就可以在不用再次登录的情况下访问应用系统2和应用系统3了。
1.3.要实现SSO需要以下主要的功能所有应用系统共享一个身份认证系统;所有应用系统能够识别和提取ticket信息;应用系统能够识别已经登录过的用户,能自动判断当前用户是否登录过,从而完成单点登录的功能。
其中,统一的身份认证系统最重要,认证系统的主要功能是将用户的登录信息和用户信息库相比较,对用户进行登录认证;认证成功后,认证系统应该生成统一的认证标志(ticket),返还给用户。
另外,认证系统还应该对ticket进行效验,判断其有效性。
整个系统可以存在两个以上的认证服务器,这些服务器甚至可以是不同的产品。
认证服务器之间要通过标准的通讯协议,互相交换认证信息,就能完成更高级别的单点登录。
2.数字签名2.1.概念数字签名(又称公钥数字签名、电子签章)是一种类似写在纸上的普通的物理签名,但是使用了公钥加密领域的技术实现,用于鉴别数字信息的方法。
一套数字签名通常定义两种互补的运算,一个用于签名,另一个用于验证。
2.2.主要功能保证信息传输的完整性、发送者的身份认证、防止交易中的抵赖发生。
数字签名技术是将摘要信息用发送者的私钥加密,与原文一起传送给接收者。
cas单点登录自定义servicevalidate方法 -回复
cas单点登录自定义servicevalidate方法-回复CAS(Central Authentication Service)是一种常见的单点登录(Single Sign-On)解决方案,它通过集中验证用户身份,实现在不同的服务之间无需重复登录的便利。
虽然CAS已经提供了一套完善的验证流程,但有时我们可能需要根据特定的需求自定义`serviceValidate`方法。
本文将逐步介绍如何实现CAS单点登录自定义`serviceValidate`方法,并解释其作用,以及如何应用于实际项目中。
第一步:了解CAS验证流程在开始自定义`serviceValidate`方法之前,我们首先需要了解CAS的验证流程。
以下是一般情况下CAS的验证流程:1. 用户打开客户端应用程序,并尝试访问需要登录的资源。
2. 客户端应用程序将用户重定向到CAS服务器。
3. CAS服务器显示登录页面,用户在该页面输入用户名和密码。
4. CAS服务器验证凭证的正确性,并生成一个票据(ticket)。
5. CAS服务器将用户重定向回客户端应用程序,并将票据附加在URL中。
6. 客户端应用程序接收到票据后,将其发送给CAS服务器进行验证。
7. CAS服务器对票据进行验证,验证通过后返回用户信息给客户端应用程序。
8. 客户端应用程序使用返回的用户信息进行授权操作,允许用户访问资源。
在这个流程中,`serviceValidate`方法负责对票据进行验证,并返回用户信息。
第二步:CAS服务端配置要自定义`serviceValidate`方法,我们首先需要对CAS服务端进行配置。
假设我们已经搭建好了CAS服务端,并且熟悉CAS的基本配置。
首先,我们需要编辑`cas.properties`文件,该文件包含了CAS服务端的配置信息。
在该文件中,找到以下配置项:cas.service.ticket.registry.core.ticketCatalog=org.apereo.cas.ticket. DefaultTicketCatalog将上述配置项替换为:cas.service.ticket.registry.core.ticketCatalog=org.apereo.cas.ticket.r egistry.DefaultTicketRegistry这将启用默认的票据注册,以便我们在自定义`serviceValidate`方法中使用。
CAS单点登录
CAS基本原理与配置1版本1.0日期:2015年11月20日2目录1基本原理 (4)1.1概念简介 (4)1.2CAS基本原理 (5)2配置说明 (8)2.1配置JDK证书 (8)2.2配置CAS服务器 (10)2.3配置CAS客户端 (11)2.4定制化说明 (17)2.4.1 页面定制化 (17)2.4.2 数据库定制化 (18)2.4.3 增加图片验证和短信验证 (20)2.4.4 增加自定义登录验证 (27)31基本原理1.1概念简介单点登录( Single Sign-On , 简称 SSO )是目前比较流行的服务于企业业务整合的解决方案之一, SSO 使得在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。
CAS ( Central Authentication Service )是 Yale 大学发起的一个企业级的、开源的项目,旨在为 Web 应用系统提供一种可靠的单点登录解决方法(属于 Web SSO )。
CAS 开始于 2001 年,并在 2004 年 12 月正式成为 JA-SIG 的一个项目。
CAS主要特性:1、开源的、多协议的 SSO 解决方案; Protocols : Custom Protocol 、 CAS 、 OAuth 、 OpenID 、 RESTful API 、 SAML1.1 、 SAML2.0 等;2、支持多种认证机制: Active Directory 、 JAAS 、 JDBC 、 LDAP 、 X.509 Certificates 等;3、安全策略:使用票据( Ticket )来实现支持的认证协议;4、支持授权:可以决定哪些服务可以请求和验证服务票据( ServiceTicket );5、提供高可用性:通过把认证过的状态数据存储在 TicketRegistry 组件中,这些组件有很多支持分布式环境的实现,如: BerkleyDB 、 Default 、 EhcacheTicketRegistry 、 JDBCTicketRegistry 、 JBOSS TreeCache 、 JpaTicketRegistry 、 MemcacheTicketRegistry 等;6、支持多种客户端: Java 、 .Net 、 PHP 、 Perl 、 Apache, uPortal 等;41.2CAS基本原理结构体系:CAS包括两部分,CAS Server和CAS Client。
CAS单点登陆配置
CAS服务端配置1.准备环境JDK1.6apache-tomcat-6.0.14cas-server-3.4.22.配置server将cas-server war文件复制到webapps下,启动tomcat,以相同用户名或密登录成功。
3.配置数据库访问方式复制modules下面所有jar文件到cas-server的Web-inf/lib下,并复制class12.jar(oracle 数据库驱动)。
修改配置数据源,在deployerConfigContext.xml中添加数据源。
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"><propertyname="driverClassName"><value>oracle.jdbc.driver.OracleDriver</value></property> <propertyname="url"><value>jdbc:oracle:thin:@localhost:1521:orcl</value></property><property name="username"><value>aip</value></property><property name="password"><value>aip</value></property></bean>修改登录验证方法,在deployerConfigContext.xml中注释原验证方式,改为数据库验证。
CAS单点登陆配置
CAS服务端配置1.准备环境JDK1.6apache-tomcat-6.0.14cas-server-3.4.22.配置server将cas-server war文件复制到webapps下,启动tomcat,以相同用户名或密登录成功。
3.配置数据库访问方式复制modules下面所有jar文件到cas-server的Web-inf/lib下,并复制class12.jar(oracle 数据库驱动)。
修改配置数据源,在deployerConfigContext.xml中添加数据源。
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"><propertyname="driverClassName"><value>oracle.jdbc.driver.OracleDriver</value></property> <propertyname="url"><value>jdbc:oracle:thin:@localhost:1521:orcl</value></property><property name="username"><value>aip</value></property><property name="password"><value>aip</value></property></bean>修改登录验证方法,在deployerConfigContext.xml中注释原验证方式,改为数据库验证。
