shimingxy 655736b881 cas
2020-03-07 22:30:02 +08:00

40 lines
2.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<h2>1、CAS简介</h2>
CAS 是 Yale 大学发起的一个开源项目,旨在为 Web 应用系统提供一种可靠的单点登录方法CAS 在 2004 年 12 月正式成为 JA-SIG 的一个项目。CAS 具有以下特点:
【1】开源的企业级单点登录解决方案。
【2】CAS Server 为需要独立部署的 Web 应用。
【3】CAS Client 支持非常多的客户端(这里指单点登录系统中的各个 Web 应用),包括 Java, .Net, PHP, Perl, Apache, uPortal, Ruby 等。
<h2>2、CAS体系结构</h2>
CAS 体系包含两个部分: CAS Server 和 CAS Client。CAS Server 需要独立部署主要负责对用户的认证工作CAS Client 负责处理对客户端受保护资源的访问请求,需要登录时,重定向到 CAS Server。
<img src="{{ "/images/cas/1.jpg" | prepend: site.baseurl }}?{{ site.time | date: "%Y%m%d%H%M" }}" alt=""/>
<h2>3、CAS原理</h2>
CAS 最基本的协议过程:
<img src="{{ "/images/cas/2.jpg" | prepend: site.baseurl }}?{{ site.time | date: "%Y%m%d%H%M" }}" alt=""/>
SSO单点登录访问流程主要有以下步骤
1. 访问服务SSO客户端发送请求访问应用系统提供的服务资源。
2. 定向认证SSO客户端会重定向用户请求到SSO服务器。
3. 用户认证:用户身份认证。
4. 发放票据SSO服务器会产生一个随机的Service Ticket。
5. 验证票据SSO服务器验证票据Service Ticket的合法性验证通过后允许客户端访问服务。
6. 传输用户信息SSO服务器验证票据通过后传输用户认证结果信息给客户端。
<h2>4、 CAS中3个术语</h2>
Ticket Granting ticket (TGT) 可以认为是CAS Server根据用户名密码生成的一张票存在Server端
Ticket-granting cookie (TGC) 其实就是一个Cookie存放用户身份信息由Server发给Client端
Service ticket (ST) 由TGT生成的一次性票据用于验证只能用一次。相当于Server发给Client一张票然后Client拿着这个票再来找Server验证看看是不是Server签发的。