`

小蚂蚁-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单点登录系列(3)-简单实施SSO

    【标题】:“小蚂蚁-CAS单点登录系列(3)-简单实施SSO” 单点登录(Single Sign-On,简称SSO)是一种网络身份验证机制,它允许用户在多个应用程序之间共享登录状态,只需要进行一次身份验证。在这个系列的第三部分中...

    小蚂蚁-CAS单点登录系列(5)-简单实施SSO之二

    《小蚂蚁-CAS单点登录系列(5)-简单实施SSO之二》 单点登录(Single Sign-On,简称SSO)是企业信息化系统中一个重要的功能,它允许用户通过一次登录,就能访问多个相互独立的应用系统,无需多次输入用户名和密码。本...

    小蚂蚁-OZON上货助手

    "小蚂蚁-OZON上货助手"是一款专为在OZON平台上进行跨境电商活动的商家设计的工具。这款软件的主要功能包括批量上传商品、一键跟卖以及批量修改商品价格,极大地提高了卖家在OZON平台上的运营效率。 一、批量上传 在...

    小蚂蚁--校园智能物流服务平台-高校物流解决方案商业计划书(PDF44页).pdf

    总结来说,"小蚂蚁--校园智能物流服务平台"的提出,体现了高校在应对快速增长的快递物流需求时,需要创新思维与技术手段来解决现有问题,提升服务水平,保障校园安全、高效运营,并为智慧城市发展贡献力量。

    小蚂蚁--语料库

    用于语料分析的语料库,适用于英语专业学生。一款可以结合语言学,教学法,用于写论文的神奇app。

    小蚂蚁-少儿编程scratch项目源代码文件案例素材.zip

    【标题】"小蚂蚁-少儿编程scratch项目源代码文件案例素材.zip" 提供的是一个针对儿童的编程学习资源,特别适合初学者入门。Scratch是麻省理工学院(MIT)媒体实验室“终身幼儿园团队”开发的一款图形化编程工具,旨在...

    unicon-cas-overlay:普通CAS胃被覆盖

    unicon-cas-overlay 通用CAS Maven战争叠加层,可练习CAS的最新版本以及的最新功能此覆盖图可以自由用作本地CAS Maven战争覆盖图的起始模板。版本号< cas>3.6.0</ cas>< cas>1.16</ cas>要求Apache Maven 3 Web...

    奇瑞小蚂蚁 中控 低配升级高配程序

    警告:本升级程序仅适用于EQ1小蚂蚁151、251系列中控大屏升级,400不可用! 1、把压缩包下载后解压; 2、准备一个U盘,格式化成FAT32格式; 3、把解压后升级程序文件夹里的25个文件和文件夹复制到格式化后U盘的根...

    小蚂蚁STM32--第一版基础程序

    小蚂蚁STM32--第一版基础程序

    24--[小蚂蚁].zip源码scratch2.0 3.0编程项目源文件源码案例素材源代码

    24--[小蚂蚁].zip源码scratch2.0 3.0编程项目源文件源码案例素材源代码24--[小蚂蚁].zip源码scratch2.0 3.0编程项目源文件源码案例素材源代码24--[小蚂蚁].zip源码scratch2.0 3.0编程项目源文件源码案例素材源代码24...

    小蚂蚁使用教程

    根据给定的小蚂蚁地方门户系统使用教程及其描述,我们可以从中提炼出以下详细的IT知识点: ### 一、会员管理 #### 1.1 会员的功能 会员功能是小蚂蚁地方门户系统的核心之一,主要包括: - **信息发布**:允许会员...

    「质量测试」5-蚂蚁-支付宝小程序体验治理实践-孙铁 - 效率工程.zip

    在这个主题中,我们聚焦于"「质量测试」5-蚂蚁-支付宝小程序体验治理实践-孙铁 - 效率工程"这一主题,这涉及到蚂蚁集团在支付宝小程序的质量控制和效率提升方面的具体实践。以下是对这个主题的详细阐述: 首先,...

    小蚂蚁6.1 整合discuzX 3.0的插件

    【小蚂蚁6.1 整合Discuz! X3.0 插件详解】 小蚂蚁6.1是一款功能丰富的网站管理工具,而Discuz! X3.0则是一款广泛使用的社区论坛软件。当这两者结合时,它们可以为用户提供一个更高效、更个性化的论坛管理体验。下面...

    蚂蚁-前端-笔试题.js

    原生js操作:驼峰格式和下划线格式互转,json字符串转换……五道题,带答案

    小蚂蚁v3.0v4.0授权文件

    小蚂蚁v3.0v4.0授权文件,本地127.0.0.1的授权文件

    使用C++实现小蚂蚁爬行

    在这个场景中,我们关注的是"使用C++实现小蚂蚁爬行"的问题。这个问题的核心是通过编程语言模拟蚂蚁在一条线上的运动行为,包括它们的相遇和方向变化。让我们深入探讨这个主题。 首先,我们需要理解问题的基本模型...

    2021年第一季度中国家庭的财富变动趋势-中国家庭金融&蚂蚁-2021-35页

    报告标题:“2021年第一季度中国家庭的财富变动趋势-中国家庭金融&蚂蚁-2021-35页” 报告描述:“该文档详细分析了2021年第一季度中国家庭的财富变动情况,结合中国家庭金融和蚂蚁金融的数据进行深入研究。” 标签...

    2021年第一季度中国家庭的财富变动趋势-中国家庭金融-蚂蚁-2021-35页(1).pdf

    报告标题:“2021年第一季度中国家庭的财富变动趋势-中国家庭金融-蚂蚁-2021-35页(1).pdf” 该报告主要关注2021年第一季度中国家庭的财富变动情况,由蚂蚁集团发布,涉及了中国家庭金融领域的深度分析。以下是对...

    蚂蚁课堂-JVM快速入门2

    "蚂蚁课堂-JVM快速入门2"这个课程显然旨在帮助初学者迅速掌握JVM的基础知识,特别是关于JVM参数的设置和内存溢出问题的处理。 首先,我们来深入了解JVM参数。JVM参数是用来配置和调整JVM行为的关键工具。它们分为两...

Global site tag (gtag.js) - Google Analytics