「千锋大数据开发学院」CAS实现SSO 单点登录原理( 三 )
下面为代理应用( helloService )获取 PGT 的过程: (注: PGTURL 用于表示一个 Proxy 服务 , 是一个回调链接; PGT 相当于代理证; PGTIOU 为取代理证的钥匙 , 用来与 PGT 做关联关系;)
本文插图
CAS实现SSO单点登录原理
如上面的 CAS Proxy 图所示 ,**CAS Client **在基础协议之上 , 在验证 ST 时提供了一个额外的PGT URL( 而且是 SSL 的入口 ) 给 CAS Server, 使得 CAS Server 可以通过 PGT URL 提供一个 PGT 给 CAS Client。
CAS Client 拿到了 PGT(PGTIOU-85 … ..ti2td), 就可以通过 PGT 向后端 Web 应用进行认证 。
下面是代理认证和提供服务的过程:
本文插图
CAS实现SSO单点登录原理
如 上图所示 ,Proxy 认证与普通的认证其实差别不大 ,Step1,2 与基础模式的 Step1,2 几乎一样 , 唯一不同的 是 ,Proxy 模式用的是 PGT 而不是 TGC, 是 Proxy Ticket ( PT )而不是 Service Ticket。
3.2.3. 辅助说明
CAS 的 SSO 实现方式可简化理解为: 1 个 Cookie 和 N 个 Session。CAS Server 创建 cookie , 在所有应用认证时使用 , 各应用通过创建各自的 Session 来标识用户是否已登录 。
用 户在一个应用验证通过后 , 以后用户在同一浏览器里访问此应用时 , 客户端应用中的过滤器会在 session 里读取到用户信息 , 所以就不会去 CAS Server 认证 。 如果在此浏览器里访问别的 web 应用时 , 客户端应用中的过滤器在 session 里读取不到用户信息 , 就会去 CAS Server 的 login 接口认证 , 但这时CAS Server 会读取到浏览器传来的 cookie ( TGC ) , 所以 CAS Server 不会要求用户去登录页面登录 , 只是会根据 service 参数生成一个 Ticket, 然后再和 web 应用做一个验 证 ticket 的交互而已 。
3.3. 术语解释
CAS 系统中设计了 5 中票据: TGC 、 ST 、 PGT 、 PGTIOU 、 PT。
? Ticket-granting cookie(TGC) :存放用户身份认证凭证的 cookie, 在浏览器和 CAS Server 间通讯时使用 , 并且只能基于安全通道传输( Https ) , 是 CAS Server 用来明确用户身份的凭证;
? Service ticket(ST) :服务票据 , 服务的惟一标识码 , 由 CAS Server 发出( Http 传送) , 通过客户端浏览器到达业务服务器端;一个特定的服务只能有一个惟一的 ST ;
? Proxy-Granting ticket ( PGT ):由 CAS Server 颁发给拥有 ST 凭证的服务 ,PGT 绑定一个用户的特定服务 , 使其拥有向 CAS Server 申请 , 获得 PT 的能力;
? Proxy-Granting Ticket I Owe You ( PGTIOU ) : 作用是将通过凭证校验时的应答信息由 CAS Server 返回给 CAS Client, 同时 , 与该 PGTIOU 对应的 PGT 将通过回调链接传给 Web 应用 。Web 应用负责维护 PGTIOU 与 PGT 之 间映射关系的内容表;
? Proxy Ticket (PT) :是应用程序代理用户身份对目标程序进行访问的凭证;
其它说明如下:
? Ticket Granting ticket(TGT) :票据授权票据 , 由 KDC 的 AS 发放 。 即获取这样一张票据后 , 以后申请各种其他服务票据 (ST) 便不必再向 KDC 提交身份认证信息 (Credentials) ;
? Authentication service(AS) --------- 认证用服务 , 索取 Credentials, 发放 TGT ;
? Ticket-granting service (TGS) --------- 票据授权服务 , 索取 TGT, 发放 ST ;
? KDC( Key Distribution Center ) ---------- 密钥发放中心;
4. CAS 安全性
CAS 的安全性仅仅依赖于 SSL。 使用的是 secure cookie。
推荐阅读
- cnBeta微软正在为Outlook.com开发“智能撰写”功能
- 兰州新闻网美国疫情数据为何矛盾混乱
- ZAKER| 不必在意巴菲特看空航空业,数据解析
- 证券数据宝重磅!华为成立“5G汽车生态圈”,对标特斯拉实现终极无人驾驶
- 『Java』java数据结构系列——什么是数据结构
- 兄弟篮球前AMVP却并非合格领袖,同曦男篮需做出改变,数据足够出彩
- 靓科技解读Thing,a16z、5.15亿美金的数据加密股票基金:找寻下一个Big
- 长沙晚报打造“中国软件开发者产业中心城市”,长沙携手CSDN
- 长沙城事吃吃吃、买买买成主流,五一消费数据出炉
- 大数据邦新基建之大数据中心规划设计原则和内容,选址很关键
