SSO单点登录原理剖析
转载于:http://www.cnblogs.com/gxbk629/p/4473569.html
CAS实现SSO单点登录原理
1. CAS 简介
1.1. What is CAS ?
CAS 开始于 2001 年, 并在 2004 年 12 月正式成为 JA-SIG 的一个项目。
1.2. 主要特性
2、 支持多种认证机制: Active Directory 、 JAAS 、 JDBC 、 LDAP 、 X.509 Certificates 等;
3、 安全策略:使用票据( Ticket )来实现支持的认证协议;
4、 支持授权:可以决定哪些服务可以请求和验证服务票据( Service Ticket );
6、 支持多种客户端: Java 、 .Net 、 PHP 、 Perl 、 Apache, uPortal 等。
2. SSO 单点登录原理
2.1. 什么是SSO
单点登录( Single Sign-On , 简称 SSO )是目前比较流行的服务于企业业务整合的解决方案之一, SSO 使得在多个应用系统中,用户只需要 登录一次 就可以访问所有相互信任的应用系统。
2.2. SSO 原理
2.2.1. SSO 体系中的角色
2.2.2. SSO 实现模式的原则
2、 SSO 认证中心通过一些方法来告诉 Web 应用当前访问用户究竟是不是已通过认证的用户;
3、 SSO 认证中心和所有的 Web 应用建立一种信任关系,也就是说 web 应用必须信任认证中心。(单点信任)
2.2.3. SSO 主要实现方式
例如 SecureID,WebID ,现在被广泛使用的口令认证,比如 FTP 、邮件服务器的登录认证,这是一种简单易用的方式,实现一个口令在多种应用当中使用。
3. CAS 的基本原理
3.1. 结构体系
从结构体系看, CAS 包括两部分: CAS Server 和 CAS Client 。
3.1.1. CAS Server
CAS Server 负责完成对用户的认证工作 , 需要独立部署 , CAS Server 会处理用户名 / 密码等凭证(Credentials) 。
3.1.2. CAS Client
负责处理对客户端受保护资源的访问请求,需要对请求方进行身份认证时,重定向到 CAS Server 进行认证。(原则上,客户端应用不再接受任何的用户名密码等 Credentials )。
CAS Client 与受保护的客户端应用部署在一起,以 Filter 方式保护受保护的资源。
3.2. CAS 原理和协议
3.2.1. 基础模式
1. 访问服务: SSO 客户端发送请求访问应用系统提供的服务资源。
2. 定向认证: SSO 客户端会重定向用户请求到 SSO 服务器。
4. 发放票据: SSO 服务器会产生一个随机的 Service Ticket 。
5. 验证票据: SSO 服务器验证票据 Service Ticket 的合法性,验证通过后,允许客户端访问服务。
6. 传输用户信息: SSO 服务器验证票据通过后,传输用户认证结果信息给客户端。
3.2.1. CAS 如何实现 SSO
当用户访问另一个应用的服务再次被重定向到 CAS Server 的时候, CAS Server 会主动获到这个 TGC cookie ,然后做下面的事情:
1) 如果 User 持有 TGC 且其还没失效,那么就走基础协议图的 Step4 ,达到了 SSO 的效果;
2) 如果 TGC 失效,那么用户还是要重新认证 ( 走基础协议图的 Step3) 。
3.2.2. CAS 代理模式
该模式形式为用户访问 App1 , App1 又依赖于 App2 来获取一些信息,如: User -->App1 -->App2。
CAS Client 拿到了 PGT(PGTIOU-85 … ..ti2td) ,就可以通过 PGT 向后端 Web 应用进行认证。
3.2.3. 辅助说明
3.3. 术语解释
CAS 系统中设计了 5 中票据: TGC 、 ST 、 PGT 、 PGTIOU 、 PT 。
Ø Proxy Ticket (PT) :是应用程序代理用户身份对目标程序进行访问的凭证;
Ø Authentication service(AS) --------- 认证用服务,索取 Credentials ,发放 TGT ;
Ø Ticket-granting service (TGS) --------- 票据授权服务,索取 TGT ,发放 ST ;
Ø KDC( Key Distribution Center ) ---------- 密钥发放中心;
4. CAS 安全性
CAS 的安全性仅仅依赖于 SSL 。使用的是 secure cookie 。
4.1. TGC/PGT 安全性
从基础模式可以看出, TGC 是 CAS Server 通过 SSL 方式发送给终端用户,因此,要截取 TGC 难度非常大,从而确保 CAS 的安全性。
4.2. ST/PT 安全性
CAS 协议规定,无论 Service Ticket 验证是否成功, CAS Server 都会清除服务端缓存中的该Ticket ,从而可以确保一个 Service Ticket 不被使用两次。
CAS 规定 ST 只能存活一定的时间,然后 CAS Server 会让它失效。默认有效时间为 5 分钟。
ST 必须足够随机,如果 ST 生成规则被猜出, Hacker 就等于绕过 CAS 认证,直接访问 对应的服务。
5. 参考资料
1、 https://wiki.jasig.org/display/CASUM/Introduction
2、 http://www.jasig.org/cas/protocol/
3、 http://www.ibm.com/developerworks/cn/opensource/os-cn-cas/index.html
4、 http://www.blogjava.net/security/archive/2006/10/02/sso_in_action.html
5、 http://baike.baidu.com/view/190743.htm
SSO单点登录原理剖析相关推荐
- cas跨域单点登录原理_CAS实现SSO单点登录原理
1. CAS 简介 1.1. What is CAS ? CAS ( Central Authentication Service ) 是 Yale 大学发起的一个企业级的.开源的项目,旨 ...
- java单点登录跨域_深入浅出让你理解跨域与SSO单点登录原理与技术
原标题:深入浅出让你理解跨域与SSO单点登录原理与技术 一:SSO体系结构 SSO SSO英文全称Single Sign On,单点登录.SSO是在多个应用系统中,用户只需要登录一次就可以访问所有相互 ...
- SSO单点登录原理详解
本文主要对SSO单点登录与CAS.OAuth2.0两种授权协议的关系和原理进行详细说明. 1. 基础概念 术语解释 SSO-Single Sign On,单点登录 TGT-Ticket Grantin ...
- asp 退出登录修改cookie能进入后台_深入浅出让你理解跨域与SSO单点登录原理与技术...
一:SSO体系结构 SSO SSO英文全称Single Sign On,单点登录.SSO是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统.它包括可以将这次主要的登录映射到其他应用 ...
- JavaWeb - SSO单点登录原理之基于CAS(一)
一.单系统登录机制 1.http无状态协议 web应用采用browser/server架构,http作为通信协议.http是无状态协议,浏览器的每一次请求,服务器会独立处理,不与之前或之后的请求产生关 ...
- XSS跨站脚本攻击防御和Cookie,及SSO单点登录原理
XSS又称CSS,全称Cross SiteScript,跨站脚本攻击,是Web程序中常见的漏洞,XSS属于被动式且用于客户端的攻击方式,所以容易被忽略其危害性.其原理是攻击者向有XSS漏洞的网站中输入 ...
- 深入理解跨域SSO单点登录原理与技术
文章目录 1 SSO体系结构 1.1 SSO 1.2 体系结构 1.3 Token(令牌) 1.4 同域SSO原理分析 token的生成 token过期移除 认证流程 1.5 跨域SSO原理分析 分析 ...
- CAS实现SSO单点登录原理介绍
一.结构体系 从结构体系看, CAS 包括两部分: CAS Server 和 CAS Client . 1. CAS Server CAS Server 负责完成对用户的认证工作 , 需要独立部署 , ...
- 学习CAS实现SSO单点登录
学习CAS实现SSO单点登录 网上找了几篇比较详细的教程,在这记录一下: 原理: CAS实现SSO单点登录原理 教程: 1.CAS实现单点登录(SSO)经典完整教程 2.SSO之CAS单点登录实例演示 ...
最新文章
- SSL剥离工具sslstrip
- php 获取js变量
- 第三方支付账务系统设计难点 16
- after不显示_web前端入门到实战:css实现单行、多行文本超出显示省略号
- oracle 查看用户、权限、角色
- python的知识点运用_Python基础知识点
- 985翻译硕士都在找的这款软件
- 多比特杯第四届ACM程序设计竞赛同步赛
- 微信淘宝客机器人分享
- 华硕飞行堡垒笔记本电脑驱动程序不能使用如何解决
- java工作日志,如何写工作日志
- 知行:成长的迭代之路
- 2021年危险化学品经营单位主要负责人考试试卷及危险化学品经营单位主要负责人模拟考试
- 【数学思维】最大值与上确界
- Master和Slave是什么意思
- 华为鸿蒙官网商城,再见安卓!鸿蒙版京东App上架华为商城:正式版最快6月见...
- 开源一个中国象棋 alpha zero 程序
- Thinkphp5实战之留言板
- 浏览器调用打印功能打印页面内容(可全局打印,可局部打印)
- psm倾向得分匹配法举例_倾向得分匹配法 PSM
热门文章
- 计算机底层:ASCII码、区位码、国标码、汉字机内码,还有字形码和输入输出编码之间的关系以及介绍
- Json文件转换为Excel文件!涉及读文件,时间戳转化,写文档
- 我在淘宝卖织梦源码的日子
- rrt算法 c语言,未知环境下改进的基于RRT算法的移动机器人路径规划
- 如何用Linux系统搭建天堂2初章服务端
- 攻防世界can_has_stdio?
- 密码疑云 (1)——加密与签名
- BC95 低功耗的NB-IoT 无线通信模块
- 北斗gps卫星时钟服务器(时钟装置)助力某天文台青海观测站
- 【邪恶古堡】一款手机游戏|塔防类|主角是反派/魔王|敌人是勇士/英雄|需要救公主|放置陷阱/障碍|乱入|安卓|苹果