`
huze104
  • 浏览: 96966 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

CAS单点登录系列(2)-初步认识CAS

阅读更多

1.CAS介绍
  
CAS(Central Authentication Service,即中央认证服务),是Yale大学发起的一个开源单点登录项目,旨在为应用系统提供一种可靠的单点登录方法。于2004年12月正式成为JA-SIG的一个项目。

2.CAS特点

  • 开源的企业级单点登录解决方案
  • CAS被设计成一个独立的Web应用程序(cas.war)
  • CAS Client支持非常多的客户端(这里指单点登录系统中的各个 Web 应用),包括Java、.Net、PHP、Perl、Apache、uPortal等
  • 能够与uPortal, BlueSocket, TikiWiki, Mule, Liferay, Moodle等集成使用。

3.CAS 原理和协议
  
从结构上看,CAS 包含两个部分: CAS Server 和 CAS Client。CAS Server 需要独立部署,主要负责对用户的认证工作;CAS Client 负责处理对客户端受保护资源的访问请求,需要登录时,重定向到 CAS Server。
图1 是 CAS 最基本的协议过程:
 
  
CAS Client 与受保护的客户端应用部署在一起,以 Filter 方式保护受保护的资源。对于访问受保护资源的每个 Web 请求,CAS Client 会分析该请求的 Http 请求中是否包含 Service Ticket,如果没有,则说明当前用户尚未登录,于是将请求重定向到指定好的 CAS Server 登录地址,并传递 Service (也就是要访问的目的资源地址),以便登录成功过后转回该地址。用户在第 3 步中输入认证信息,如果登录成功,CAS Server 随机产生一个相当长度、唯一、不可伪造的 Service Ticket,并缓存以待将来验证,之后系统自动重定向到 Service 所在地址,并为客户端浏览器设置一个 Ticket Granted Cookie(TGC),CAS Client 在拿到 Service 和新产生的 Ticket 过后,在第 5,6 步中与 CAS Server 进行身份合适,以确保 Service Ticket 的合法性。
  
在该协议中,所有与 CAS 的交互均采用 SSL 协议,确保,ST 和 TGC 的安全性。协议工作过程中会有 2 次重定向的过程,但是 CAS Client 与 CAS Server 之间进行 Ticket 验证的过程对于用户是透明的。
另外,CAS 协议中还提供了 Proxy (代理)模式,以适应更加高级、复杂的应用场景,具体介绍可以参考 CAS 官方网站上的相关文档。
以上大部分内容摘自 :http://www.ibm.com/developerworks/cn/opensource/os-cn-cas/index.html


4.准备工作
JA-SIG官方网站:http://www.jasig.org/cas

CAS Server下载地址:http://www.jasig.org/cas/download

CAS Client下载地址:http://downloads.jasig.org/cas-clients/

官方CAS Client for Java 3.1文档:https://wiki.jasig.org/display/CASC/CAS+Client+for+Java+3.1
Tomcat 6下载地址:http://archive.apache.org/dist/tomcat/tomcat-6/


在此,笔者分别使用cas-server-3.3.3、cas-client-3.1.10(支持单点登出)和Tomcat 6.0.18。


5.部署CAS Server
  
解压cas-server-3.3.3包,将modules/cas-server-webapp-3.3.3.war复制到Tomcat的webapps目录下,并重命名为cas3.war,启动Tomcat。启动完毕后,访问地址:http://localhost:8080/cas3/login,我们将看到中央认证服务中用于收集用户凭证的入口界面:


   默认时,只要用户输入相同的用户名和密码,就可以登录到CAS服务器中。比如输入用户名/密码:admin/admin,单击“登录”后将成功进入以下成功提示界面:
 

   当成功登录到CAS服务器后,浏览器会存储CAS服务器返回的一个Cookie,其名字默认为“CASTGC”。当目标Web应用实施了CAS SSO之后,它们便需要借助于这一Cookie实现Web SSO会话。由此建立了用户与CAS服务器之间的信任关系。

  
此时,如果用户需要退出,可以通过http://localhost:8080/cas3/logout退出CAS服务器。退出操作将导致浏览器中存在的CASTGC Cookie被销毁,即销毁CAS与当前用户已建立的信任关系(Web SSO会话)。事实上,由于我们使用的是HTTP协议操控logout,因此浏览器中的CASTGC Cookie并未被销毁。如果借助于HTTPS操控logout,则浏览器中的CASTGC Cookie便会被销毁掉。在未启用HTTPS时,如果使用IE,可以通过关闭浏览器以达到销毁CASTGC Cookie的目的。
 


分享到:
评论

相关推荐

    cas单点登录客户端--c++版

    cas单点登录客户端c++版

    单点登录服务端项目cas-server

    单点登录服务端项目cas-server单点登录服务端项目cas-server 单点登录服务端项目cas-server 单点登录服务端项目cas-server 单点登录服务端项目cas-server 单点登录服务端项目cas-server 单点登录服务端项目cas-...

    单点登录sso-shiro-cas-maven

    spring下使用shiro+cas配置单点登录,多个系统之间的访问,每次只需要登录一次 ## 系统模块说明 1. cas: 单点登录模块,这里直接拿的是cas的项目改了点样式而已 2. doc: 文档目录,里面有数据库生成语句,采用的...

    cas-server-webapp-4.0.0单点登录(带超详细文档、数据连接jar包、c3p0)可运行

    单点登录 sso cas带超详细文档,包含(cas-server-webapp-4.0.0.war、c3p0-0.9.1.2.jar、cas-client-core-3.3.3.jar、cas-server-support-jdbc-4.0.0.jar、cas-server-webapp-support-4.0.0.jar、commons-logging-...

    Java进阶SSO单点登录技术CAS-快速上手与原理探究视频教程

    本课程主要通过CAS来实现SSO,本教程会从最基本的基础知识讲起,由浅入深再到实战,完成多应用的单点登录功能。 本课程内容如下: 1、 什么是SSO和CAS 2、 CAS Server服务端和客户端的搭建和配置 3、 单点登录和单...

    cas-overlay-template-6.4 服务端代码

    2.CAS-日志审计 3.CAS-连接池配置 4.CAS-自定义错误信息 5.CAS-识别json文件 6.CAS-页面缓存记住我 7.CAS-cookie设置 8.CAS-tgc设置 9.CAS-登出 10.CAS-redisCluster集群存储ticket(相应redis必须配置成cluster集群...

    java-cas单点登录服务端

    CAS(Central Authentication Service)是一款不错的针对 Web 应用的单点登录框架,本文介绍了 CAS 的原理、协议、在 Tomcat 中的配置和使用,研究如何采用 CAS 实现轻量级单点登录解决方案。 CAS 是 Yale 大学发起的...

    基于Java集成CAS单点登录【接部署即可启用】

    基于Java中CAS的单点登录,有服务端的所有源码,将tomcat目录下的所有资源直接拷到Tomcat服务中间件的webapp目录下,阅读tomcat-webapp中的read.txt文档,查看使用说明,适用于第一次开发CAS单点登录的同学们,简单...

    cas 单点登录 解决方案.

    cas 单点登录 解决方案.

    CAS 单点登录.NET版-vs2013

    CAS实现单点登录,使用c#实现!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

    CAS单点登录操作文档

    CAS单点登录操作文档 CAS 是 Yale 大学发起的一个开源项目,旨在为 Web 应用系统提供一种可靠的单点登录方法,CAS 在 2004 年 12 月正式成为 JA-SIG 的一个项目。CAS 具有以下特点: • 开源的企业级单点登录解决...

    CAS单点登录(java)

    CAS单点登录CAS单点登录CAS单点登录CAS单点登录

    落雨博客基于CAS框架的单点登录技术讲解(ppt+code实例+doc)配套资料

    [置顶] SSO单点登录系列3:cas-server端配置认证方式实践(数据源+自定义java类认证) http://blog.csdn.net/ae6623/article/details/8851801 [置顶] SSO单点登录系列2:cas客户端和cas服务端交互原理动画图解,cas...

    单点登录解决方案-CAS

    单点登录解决方案-CAS 相关框架资料,各个jar 包 以及文档

    CAS单点登录系统之java实现(part_1)

    资源列表(1:cas CAS Server,2:Cas_Client_One 授权系统,3:graduationDesign 用户组织管理系统,4:CAS单点登录论文.doc,5:CAS单点登录文献综述.doc,6:基于CAS的用户管理单点登录门户系统ppt.ppt)

    禅道开源版集成CAS单点登录

    本文在已有的禅道集成CAS单点登录的客户端插件基础上进行的修改,因原有插件在我们的系统上调试无法成功,做了一些定制,环境如下: 1. CAS server 版本:4.0.0 2. 禅道开源版本: 9.6.3 3. 禅道CAS client 插件版本...

    struts2+spring+cas单点登录

    使用struts2+spring+cas实现的单点登录功能,里面包括cas-server3.5.2项目一个,cas-client3.2.1 web项目两个,数据库脚本,请按照里面的说明文档进行部署,希望你们也能配置成功。

    cas3.5.2单点登录文档详细配置

    本人亲自试验的cas单点登录配置,服务端用cas-server-3.5.2,客户端用cas-client-3.2.1,里边详细描述了具体每一步的配置过程及遇到的问题及异常,相信你也会碰到的,cas-client-3.2.1中需要修改一个java类的源代码...

    struts2+cas单点登陆例子

    myEclipse下含源码,在struts2下集成cas实现单点登陆的例子,例子虽然简单,基本上反映出cas的工作原理!

    单点登录cas-overlay-template-5.3编译后的cas.war

    cas6.x需要使用jdk11版本,目前cas5.3.15.1是8的最高版本,但是稳定性cas-5.3.14.war最佳,本次基于jdk8-201编译

Global site tag (gtag.js) - Google Analytics