`

SSO原理 (CAS)

sso 
阅读更多

CAS原理浅谈

本笔记参考自 SSO原理浅谈

简单的SSO体系结构:

  • User(多个)
  • Web应用(多个)
  • SSO认证中心(1个)

CAS的基本原理

CAS(Central Authentication Service)是Yale大学发起的一个开源项目 CAS是SSO的一种实现.

CAS的结构体系

  • CAS Server

    CAS Server负责完成对用户的认证工作, 需要独立部署

  • CAS Client

    CAS Client部署在客户端,原则上,CAS Client的部署意味着,当有对本地Web应用的受保护访问请求,并且需要对请求方进行身份认证,Web应用不再接受任何的用户名密码等 Credential, 而是重定向到CAS Server进行认证.

原始SSO实现

Web时代还处于初级阶段时,SSO是通过共享cookie来实现, 由于cookie无法跨域,所以如果几个Web应用想做到SSO,要求他们的域名在同一个域,这样各个站点才能共享基于这一域名的cookie,这种方法不灵活而且有不少安全隐患, 已经被抛弃了.

CAS基础协议

../../_images/cas_protocol-1.jpg
  • 上图是一个最基础的CAS协议,CAS Client以Filter方式保护Web应用的受保护资源,过滤从客户端过来的每一个Web请求,同时,CAS Client会分析HTTP请求中是否包请求Service Ticket(上图中的Ticket),如果没有,则说明该用户是没有经过认证的,于是,CAS Client会重定向用户请求到CAS Server(Step 2). Step 3 是用户认证过程,如果用户提供了正确的 Credentials, CAS Server会产生一个随机的Service Ticket, 然后, 缓存该Ticket,并且重定向用户到CAS Client(附带刚才产生的Service Ticket), Service Ticket是不可以伪造的,最后,Step 5 和 Step6 是 CAS Client 和 CAS Server 之间完成了一个对用户的身份核实,用 Ticket 查到 Username ,因为 Ticket 是 CAS Server 产生的,因此,所以 CAS Server 的判断是毋庸置疑的.

    该协议完成了一个很简单的任务,就是 User(david.turing) 打开 IE ,直接访问 helloservice 应用,它被立即重定向到 CAS Server 进行认证, User 可能感觉到浏览器在 helloservcie 和 casserver 之间重定向,但 User 是看不到, CAS Client 和 CAS Server 相互间的 Service Ticket 核实(Validation)过程. 当CAS Server 告知 CAS Client 用户 Service Ticket 对应确凿身份, CAS Client 才会对当前 Request 的用户进行服务.

Note

 

经过Step3之后, CAS Server将用户重定向到CAS Client, 可以将刚才产生的Service Ticket附加在URL中的,这样整个过程就可以不使用Cookie了. 当然了,这个地方使用cookie也是没有问题的,CAS不存在cookie跨域的问题,因为单点控制在CAS Server, CAS Server就只有一个.

CAS代理模式

CAS基础协议已经能够满足大多数的SSO应用,考虑一种更复杂的情况:用户访问hellservice, helloservice又依赖于 helloservice2来获取一些信息,这种情况下,假设helloservice也是需要对User进行身份验证的.

针对这种情况, CAS引入了一种Proxy认证机制, 即CAS Client可以代理用户去访问其他的Web应用.

../../_images/cas_protocol-2.jpg

CAS安全性

CAS的安全性依赖SSL.

TGC/PGT安全性

对于一个CAS用户来说,最重要的就是保护它的TGC(Ticket Granting Cookie), 如果TGC不慎被CAS Server以外的实体获得, Hacker能够找到该TGC, 然后冒充CAS用户访问**所有资源**.

合理设置TGC超时时间, 默认是2个小时 .. note:: 由于有SSL保护,所以TGC(或者ST service ticket, PT proxy ticket)面临的风险主要并非传输窃取, 而是当用户离开电脑后其他人可以直接访问你已经授权的应用,所以设置一个TGC的有效期,可以减少被别人盗用你系统目录下的TGC cookie的风险.

ST/PT安全性

CAS通过以下几个方面让Service Ticket更加安全.

  1. ST只能使用一次.

    CAS协议规定,无论Service Ticket验证是否成功, CAS Server都会将在服务端的缓存中的此ST清除.

  2. ST在一段时间内失效.

    CAS规定Service Ticket只能存活一定的时间,然后CAS Server会让它失效.

  3. ST是基于随机数生成的.

    Service Ticket必须足够随机化,尽可能做到其生成规则无法被猜出.

 
分享到:
评论

相关推荐

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

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

    CAS SSO 原理

    CAS SSO 原理 (转) SSO 是一个非常大的主题,我对这个主题有着深深的感受,自从广州 UserGroup 的论坛成立以来,无数网友都在尝试使用开源的 CAS , Kerberos 也提供另外一种方式的 SSO ,即基于 Windows 域的 SSO...

    架构师熟悉cas技术方案实现sso

    cas sso cas原理 sso原理

    CAS实现sso单点登录原理

    CAS实现sso单点登录原理,可以方便技术人员理解

    cas-server-3.1.1-release.zip_CAS SSO_CAS-server_Cas Server RDBMS

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

    CAS单点登录(SSO)教程

    CAS(Central Authentication Service)是一款不错的针对 Web 应用的单点登录框架,本文介绍了 CAS 的原理、协议、在 Tomcat 中的配置和使用,对于采用 CAS 实现轻量级单点登录解决方案的入门读者具有一定指导作用。

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

    [置顶] SSO单点登录系列2:cas客户端和cas服务端交互原理动画图解,cas协议终极分析 http://blog.csdn.net/ae6623/article/details/8848107 目 录 1 引言 4 1.1 摘要 4 1.2 范围 4 1.3 读者对象 4 1.4 关键词 4 2 ...

    CAS讲义SSO (Single Sign-on)原理等

    CAS讲义SSO (Single Sign-on)原理

    SSO单点登录CAS实现

    该文档以CAS为列,详细讲述了sso登录原理及环境搭建过程,结合项目中的运用,对照文档,可以很清晰的搭建SSO单点登录环境

    sso单点登录之cas配置全过程

    此文档自己亲手从0开始一步一步配置的详尽过程,其中包括keytool创建 、ticket、tomcat配置cas、自定义登录页面,处理服务器返回的乱码,服务退出、cas服务器返回多数据等等文档 包括SSO原理图,以及认证流程图等

    关于SSO技术的CAS技术讲义

    讲述CAS 的基本原理、CAS 的结构体系、CAS 协议、CAS配置的一份资料

    用YALE -CAS实现SSO

    简单而精练的介绍了yalu-cas的原理及其实现

    sso 单点登录原理文档附带流程图片

    sso 当今单点集成的一个主流的方法!IBm websphere 和weblogic都是用这个方式

    SSO单点登录

    详细讲述单点登录的原理和CAS server配置

    SSO单点登录Spring-Security+CAS+使用手册

    单点登录(Single Sign On , 简称 SSO )是目前比较流行的服务于企业业务整合的解决方案之一, SSO 使得在多个应用系统中,用户只...本文介绍了 CAS 的原理、协议、以及配合Spring-Security在 Tomcat 中的配置和使用。

    java-cas单点登录服务端

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

    使用CAS在Tomcat中实现单点登录

    CAS(Central Authentication Service)是一款不错的针对 Web 应用的单点登录框架,本文介绍了 CAS 的原理、协议、在 Tomcat 中的配置和使用,对于采用 CAS 实现轻量级单点登录解决方案的入门读者具有一定指导作用。

    CAS单点登录实现

    使用CAS实现SSO搭建指南;从头开始,最后结合eclipse实现,并介绍如何做出自己想要的程序。

    struts2+cas单点登陆例子

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

Global site tag (gtag.js) - Google Analytics