基于CAS实现单点登录(SSO):工作原理
2014-09-02 07:46
411 查看
工作中使用到了SSO,网上看到了这个博客的一系列文章感觉不错,转载收藏
源地址/article/1646998.html 系列文章的第一篇
单点登录(SingleSign On , 简称 SSO )是目前比较流行的服务于企业业务整合的解决方案之一, SSO使得在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。
SSO的解决方案很多,比如收费的有UTrust、惠普灵动等,开源的有CAS、Smart
SSO等,其中应用最为广泛的是CAS。
CAS(CentralAuthentication Service)是一款不错的针对 Web 应用的单点登录框架。
CAS从结构上看包括两部分,CAS Server 为需要独立部署的 Web应用,CAS
Client 为非常多的客户端提供支持,这个客户端指单点登录系统中的各个 Web 应用,包括 Java, .Net, PHP, Perl,Apache, uPortal, Ruby 等。
CAS Server需要独立部署,主要负责对用户的认证工作;
CAS Client 负责处理对客户端受保护资源的访问请求,需要登录时,重定向到 CAS Server。图是 CAS最基本的协议过程:
CAS Client 与受保护的客户端应用部署在一起,以 Filter方式保护受保护的资源。对于访问受保护资源的每个 Web 请求,CAS Client 会分析该请求的 Http 请求中是否包含 ServiceTicket(服务票据,由 CASServer发出用于标识目标服务)
如果没有,则说明当前用户尚未登录,于是将请求重定向到指定好的 CAS Server 登录地址,并传递 Service(也就是要访问的目的资源地址),以便登录成功过后转回该地址。
如果有,则说明当前用户已经登录,直接访问目的资源地址。
用户输入认证信息,如果登录成功,CAS Server 随机产生一个相当长度、唯一、不可伪造的 ServiceTicket,并缓存以待将来验证,之后系统自动重定向到 Service 所在地址,并为客户端浏览器设置一个 Ticket GrantedCookie(CAS会话标识)
CAS Client 在拿到 Service 和新产生的 Ticket 过后,在第 5,6 步中与 CAS Server进行身份合适,以确保 Service Ticket 的合法性。
在该协议中,所有与 CAS 的交互均采用 SSL 协议,确保,ST 和 TGC 的安全性。协议工作过程中会有 2次重定向的过程,但是 CAS Client 与 CAS Server 之间进行 Ticket 验证的过程对于用户是透明的。
另外,CAS 协议中还提供了 Proxy (代理)模式,以适应更加高级、复杂的应用场景,具体介绍可以参考 CAS官方网站上的相关文档。
了解CAS工作原理后,接下来会进行单点登录的实例演示。
源地址/article/1646998.html 系列文章的第一篇
单点登录(SingleSign On , 简称 SSO )是目前比较流行的服务于企业业务整合的解决方案之一, SSO使得在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。
SSO的解决方案很多,比如收费的有UTrust、惠普灵动等,开源的有CAS、Smart
SSO等,其中应用最为广泛的是CAS。
CAS 介绍
CAS(CentralAuthentication Service)是一款不错的针对 Web 应用的单点登录框架。CAS从结构上看包括两部分,CAS Server 为需要独立部署的 Web应用,CAS
Client 为非常多的客户端提供支持,这个客户端指单点登录系统中的各个 Web 应用,包括 Java, .Net, PHP, Perl,Apache, uPortal, Ruby 等。
CAS 原理和协议
CAS Server需要独立部署,主要负责对用户的认证工作;CAS Client 负责处理对客户端受保护资源的访问请求,需要登录时,重定向到 CAS Server。图是 CAS最基本的协议过程:
CAS Client 与受保护的客户端应用部署在一起,以 Filter方式保护受保护的资源。对于访问受保护资源的每个 Web 请求,CAS Client 会分析该请求的 Http 请求中是否包含 ServiceTicket(服务票据,由 CASServer发出用于标识目标服务)
如果没有,则说明当前用户尚未登录,于是将请求重定向到指定好的 CAS Server 登录地址,并传递 Service(也就是要访问的目的资源地址),以便登录成功过后转回该地址。
如果有,则说明当前用户已经登录,直接访问目的资源地址。
用户输入认证信息,如果登录成功,CAS Server 随机产生一个相当长度、唯一、不可伪造的 ServiceTicket,并缓存以待将来验证,之后系统自动重定向到 Service 所在地址,并为客户端浏览器设置一个 Ticket GrantedCookie(CAS会话标识)
CAS Client 在拿到 Service 和新产生的 Ticket 过后,在第 5,6 步中与 CAS Server进行身份合适,以确保 Service Ticket 的合法性。
在该协议中,所有与 CAS 的交互均采用 SSL 协议,确保,ST 和 TGC 的安全性。协议工作过程中会有 2次重定向的过程,但是 CAS Client 与 CAS Server 之间进行 Ticket 验证的过程对于用户是透明的。
另外,CAS 协议中还提供了 Proxy (代理)模式,以适应更加高级、复杂的应用场景,具体介绍可以参考 CAS官方网站上的相关文档。
了解CAS工作原理后,接下来会进行单点登录的实例演示。
相关文章推荐
- 基于CAS实现单点登录(SSO):工作原理
- SSO单点登录学习总结(3)—— 基于CAS实现单点登录实例
- SSO 基于CAS实现单点登录 实例解析(二)
- SSO 基于Cookie+fliter实现单点登录(SSO):工作原理
- SSO单点登录学习总结(3)—— 基于CAS实现单点登录实例
- SSO 基于CAS实现单点登录 实例解析(二)
- SSO 基于CAS实现单点登录 实例解析(二)
- SSO 基于Cookie+fliter实现单点登录(SSO):工作原理
- (转)基于CAS实现单点登录(SSO):cas client端的退出问题
- 基于CAS的单点登录SSO[5]: 基于Springboot实现CAS客户端的前后端分离
- IT忍者神龟之基于CAS实现单点登录(SSO)之配置CAS服务端的数据库查询认证机制(一)
- [原]基于CAS实现单点登录(SSO):cas client端的退出问题
- SSO 基于CAS实现单点登录 实例解析(二)
- [原]基于CAS实现单点登录(SSO):登录成功后,cas client如何返回更多用户信息
- SSO 基于Cookie+fliter实现单点登录(SSO):工作原理
- 基于CAS实现单点登录(SSO):自定义登录验证方法
- SSO单点登录学习总结(3)—— 基于CAS实现单点登录实例
- 【cas基础】SSO基于cas实现单点登录
- CAS实现单点登录(SSO)经典完整教程
- CAS协议介绍和在apache使用cas实现单点登录sso