单点登录和cas
2016-03-02 09:46
330 查看
单点登录中有三种角色:
多个用户,多个Web应用,一个SSO认证中心
单点登录的实现模式:
1、所有登录都由SSO认证中心处理,Web应用本身不处理
2、SSO认证中心和所有的web应用建立一种信任关系,以后Web应用的用户验证都交由SSO来处理,并对结果深信不疑
CAS(Central Authentication Service) 翻译为中央认证服务
1、结构体系
分为CAS Server和CAS Client两部分。其中Server负责真正的验证,而Client部署在Web应用上,当需要对用户请求身份进行验证时,重定向到Server上。
2、CAS协议
Service Ticket=ST 用户的凭据
Credentials =凭据
TGT(Ticket Granting Ticket):通过这个来获取ST
TGC(Ticket granting cookie )
PT (Proxy Ticket) CAS Client的凭据
PGT(Proxy Granting Ticket)
PGT URL(表示一个 Proxy 服务 )
上图是一个最基础的 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 的判断是毋庸置疑的。
CAS代理模式
代理认证模式
整体上来说,就是Client1首先从Server那里拿到PGT代理权,然后在用户张三请求Client1时,Client1通过PGT拿到张三的代理权PT,然后拿着PT去请求Client2,Client2通过这个PT去在Server那里拿到账号,同时Server返回PGT URL给Client2,根据这个PGTURLClient2知道要去返回数据给Client1,最终返回到张三这里。表面是看,就是张三只请求了Client1然后拿到的数据,其实Client1只是个代理者,他代表张三到Client2那里拿到了数据,并完成了Client2的身份验证。
本文参考 http://www.blogjava.net/security/archive/2006/10/02/73199.html
多个用户,多个Web应用,一个SSO认证中心
单点登录的实现模式:
1、所有登录都由SSO认证中心处理,Web应用本身不处理
2、SSO认证中心和所有的web应用建立一种信任关系,以后Web应用的用户验证都交由SSO来处理,并对结果深信不疑
CAS(Central Authentication Service) 翻译为中央认证服务
1、结构体系
分为CAS Server和CAS Client两部分。其中Server负责真正的验证,而Client部署在Web应用上,当需要对用户请求身份进行验证时,重定向到Server上。
2、CAS协议
Service Ticket=ST 用户的凭据
Credentials =凭据
TGT(Ticket Granting Ticket):通过这个来获取ST
TGC(Ticket granting cookie )
PT (Proxy Ticket) CAS Client的凭据
PGT(Proxy Granting Ticket)
PGT URL(表示一个 Proxy 服务 )
上图是一个最基础的 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 的判断是毋庸置疑的。
CAS代理模式
代理认证模式
整体上来说,就是Client1首先从Server那里拿到PGT代理权,然后在用户张三请求Client1时,Client1通过PGT拿到张三的代理权PT,然后拿着PT去请求Client2,Client2通过这个PT去在Server那里拿到账号,同时Server返回PGT URL给Client2,根据这个PGTURLClient2知道要去返回数据给Client1,最终返回到张三这里。表面是看,就是张三只请求了Client1然后拿到的数据,其实Client1只是个代理者,他代表张三到Client2那里拿到了数据,并完成了Client2的身份验证。
本文参考 http://www.blogjava.net/security/archive/2006/10/02/73199.html
相关文章推荐
- SQL Server 2008下日志清理方法
- python的【字典dict】:创建、访问、更新、删除;查看键、值、键值对;遍历;排序
- Official Program for CVPR 2015
- iOS---圆角这个可恶的帧数杀手
- JSTL的c:forEach标签
- JS实现为排序好的字符串找出重复行的方法
- 成都Uber优步司机奖励政策(3月2日)
- Solaris 11, gcc 的安装
- 0302-对IT行业的感思
- java回调函数的使用
- 分段选择器(好用的第三方)---滑动选择对应不同的控制器页面--点击选择不同的控制器页面
- Linux 环境配置
- 堆栈溢出问题 test dword ptr [eax],eax probe page.
- kaggle实战之Titanic(2)-分类器的选择与实现
- 关于类已经定义了的原因
- 树的直径 poj 2631
- c++命名空间
- JSP之Cookie
- poj 3252 Round Numbers
- [国嵌攻略][093][并发服务器设计]