Cas单点登录学习笔记

原创 2016年08月30日 22:47:11

Cas可以说是集成很好,应用很广,尤其在各个权限系统中,几乎是不可以或缺的一部分,因此,这片博客来记录学习Cas单点登录。


单点登录:


定义:

单点登录的英文名称为SingleSign-On,简写为SSO,它是一个用户认证的过程,SSO 使得在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。


IBMSSO有一个形象的解释“单点登录、全网漫游”。


优点:



SSO将一个企业内部所有域中的用户登录和用户帐号管理集中到一起,SSO的好处显而易见:

l  减少用户在不同系统中登录耗费的时间,减少用户登录出错的可能性

l  实现安全的同时避免了处理和保存多套系统用户的认证信息

l  减少了系统管理员增加、删除用户和修改用户权限的时间

l  增加了安全性:系统管理员有了更好的方法管理用户,包括可以通过直接禁止和删除用户来取消该用户对所有系统资源的访问权限



实现机制:


单点登陆的技术实现机制


用户第一次访问系统的时候,被引导到认证系统中进行登录,根据登录信息,认证系统进行身份校验,如果通过校验,返回给用户一个认证的凭据(ticket),用户再访问别的应用的时候,就会将ticket带上,作为自己认证的凭据,应用系统接受到请求后,会把这个ticket送到认证系统进行校验,检查ticket的合法性,如果通过校验,用户就可以不用再次登录访问其他应用系统了。




Cookie实现机制


SSO的实现机制不尽相同,大体分为Cookie机制和Session机制两大类。

由于后面我们讲的开源产品CAS采用的就是Cookie机制,所以在这里重点讲Cookie的实现机制。

如图所示,表示的是用Cookie机制实现的流程:



Cas简介


Cas定义:


CAS(Central Authentication Service)是 Yale 大学发起的一个企业级的、开源的项目,旨在为 Web 应用系统提供一种可靠的单点登录解决方法(属于Web SSO)。


CAS 开始于 2001 年, 并在2004 年 12 月正式成为 JA-SIG 的一个项目。


特点:


l  开源的企业级单点登录解决方案

l  CAS Server为需要独立部署的Web应用

l  CAS Cllient支持非常多的客户端(这里指单点登录系统中的各个Web应用),包括Java,.Net,PHP,Perl,Apache,uPortal,Ruby等。


结构体系:


从结构体系看,CAS包括两部分:CASServerCAS Client


CAS Server


负责完成对用户的认证工作,需要独立部署,CAS Server会处理用户名/密码等凭证(Credentials)。


CASClient


负责处理对客户端受保护资源的访问请求,需要对请求方进行身份认证时,重定向到CAS Server进行认证。(原则上,客户端应用不再接受任何的用户名密码等Credentials


CASClient与受保护的客户端应用部署到一起,以Filter方式保护受保护的资源。



原理及协议过程


Cas基础协议:



CAS 请求认证的时序图:



对于访问受保护资源的每个 Web 请求,CAS Client 会分析该请求的 Http 请求中是否包含 Service Ticket,如果没有,则说明当前用户尚未登录,于是将请求重定向到指定好的 CAS Server 登录地址,并传递 Service (也就是要访问的目的资源地址),以便登录成功过后转回该地址。用户在第 3 步中输入认证信息,如果登录成功,CAS Server 随机产生一个相当长度、唯一、不可伪造的 Service Ticket,并缓存以待将来验证,之后系统自动重定向到 Service所在地址,并为客户端浏览器设置一个 Ticket Granted CookieTGC),CAS Client 在拿到Service 和新产生的 Ticket 过后,在第 56 步中与 CAS Server 进行身份合适,以确保 Service Ticket 的合法性。


在该协议中,所有与 CAS 的交互均采用 SSL 协议,确保,ST TGC 的安全性。协议工作过程中会有 2 次重定向的过程,但是 CAS Client CAS Server 之间进行 Ticket 验证的过程对于用户是透明的。


另外,CAS 协议中还提供了 Proxy (代理)模式,以适应更加高级、复杂的应用场景。







版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

单点登录cas jasig学习笔记

1 什么是单点登录   单点登录(Single Sign On , 简称 SSO )是目前比较流行的服务于企业业务整合的解决方案之一, SSO 使得在多个应用系统中,用户只需要登录一次就可以访问所...

cas单点登录学习笔记 .

CAS 单点登录使用详解 ============================================================================== 开发环...

Cas(单点登录框架)的学习笔记

Cas的基本过程(笔记)Cas基本流程功能图 1.访问web-one应用 2.是否有ticket? 3.没有就重定向到登录界面。在Client中的web.xml文件配置 CASF...

CAS单点登录学习笔记

CAS 单点登录 HTTP Status 500 - javax.net.ssl.SSLHandshakeException:sun.security.validator.ValidatorExcep...

CAS单点登录数据库配置操作学习记录笔记

最近一直在折腾cas这个开源项目的应用,虽然在大神眼里,它有很多缺陷,但是对于很多人来说,还是一个能个使用的项目,毕竟自己构造轮子需要的水平太高。 做的过程中参考了很多大神的帖子,现在总结写篇文章,...

jasig cas单点登录配置笔记之二

http://downloads.jasig.org/cas-clients/

单点登录cas学习心得

学习cas单点登录已经是半年多前了,一直没想

单点登录学习(3)CAS客户端配置

上一节中介绍了CAS服务器端的配置,服务已经run起来了,接下来就新建另一个web工程,该工程通过先前的CAS Server统一认证 客户端的配置主要是4个filter配置 1.Authentic...

单点登录学习(2)CAS服务器端配置编程

1.配置tomcat7的SSL访问    Step1:生成.keystore文件               命令行:keytool -genkey -keyalg RSA -alias tomc...

SSO单点登录学习之CAS中央认证服务

转载自:http://hi.baidu.com/chris_zcl/item/779c333e47be065b80f1a764 SSO单点登录学习之CAS中央认证服务 什么是C...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Cas单点登录学习笔记
举报原因:
原因补充:

(最多只允许输入30个字)