1.概述 
单点登录(Single Sign On),简称为 SSO,是目前比较流行的企业业务整合的解决方案之一。SSO的定义是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。 耶鲁大学(yale)开发的单点登录(Single Sign On)系统称为CAS(Central Authentication Service)被设计成一个独立的Web应用程序(cas.war)。 CAS在2004年12月成为Jasig项目,所以也叫JA-SIG CAS。本文中服务器版本基于4.0.0版本,官网: http://jasig.github.io/cas/4.0.x/index.html

2. CAS 原理和协议

CAS 具有以下特点:

  • 开源的企业级单点登录解决方案。
  • CAS Server 为需要独立部署的 Web 应用。
  • CAS Client 支持非常多的客户端(这里指单点登录系统中的各个 Web 应用),包括 Java, .Net, PHP, Perl, Apache, uPortal, Ruby 等

CAS 包含两个部分: CAS Server 和 CAS Client。

CAS Server 负责完成对用户的认证工作, CAS Server 需要独立部署,有不止一种 CAS Server 的实现。

CAS Server 会处理用户名 / 密码等凭证 (Credentials) ,它可能会到数据库检索一条用户帐号信息,也可能在 XML 文件中检索用户密码,对这种方式, CAS 均提供一种灵活但同一的接口 / 实现分离的方式, CAS 究竟是用何种认证方式,跟 CAS 协议是分离的,也就是,这个认证的实现细节可以自己定制和扩展。

CAS Client 负责部署在客户端(指 Web 应用),原则上, CAS Client 的部署意味着,当有对本地 Web 应用的受保护资源的访问请求,并且需要对请求方进行身份认证, Web 应用不再接受任何的用户名密码等类似的 Credentials ,而是重定向到 CAS Server 进行认证。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 的合法性

 

最新文章

  1. FileReader对象
  2. 安装VMware-tools的问题
  3. Linq To Csv 实例简说
  4. CPU天梯图
  5. Dos下的小技巧
  6. Android中三种计时器Timer、CountDownTimer、handler.postDelayed的使用
  7. 已管理员身份从cmd框进入mysql,及常用的简单操作!
  8. 大受喜欢安卓触控一体机连接云端数据化管理提供例程DEMO
  9. La protezione del puntatore laser
  10. sprintf() 处理 float类型的数字,保留小数位等。
  11. lfs(systemd版本)学习笔记-第3页
  12. 公共技术点(Android 动画基础)
  13. Git 修复 bug 切换分支时,如何保存修改过的代码(即如何保存现场)?
  14. 开源项目CIIP(企业信息管理系统框架).2018.0904版更新介绍
  15. 每天一道剑指offer-二叉树的下一个结点
  16. Oracle入门第二天(上)——基本查询SQL
  17. 【BZOJ】2938 [POI2000]病毒(AC自动机)
  18. sql语句中where,have,on的区别
  19. Django框架之自定义分页
  20. Hive[6] HiveQL 查询

热门文章

  1. UITableViewController的子控件不随着滑动
  2. GET和POST 编码和乱码
  3. (5)在tomcat运行自己的javaweb项目
  4. mysql11---主键普通全文索引
  5. string operation in powershell
  6. 如何用Mac远程桌面连接windows
  7. BZOJ:2819 NIM(树链剖分||DFS序 &&NIM博弈)
  8. Synchronized的使用和注意事项
  9. 【IOI 1998】 Picture
  10. express中cookie的使用和cookie-parser的解读