单点登录
单点登录 概念
单点登录(SingleSign On , 简称 SSO )是目前比较流行的服务于企业业务整合的解决方案之一, SSO使得在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。
解决方案
如收费的有UTrust、惠普灵动等,开源的有CAS、Smart SSO等,其中应用最为广泛的是CAS。
CAS 简介
CAS(CentralAuthentication Service)是一款不错的针对 Web 应用的单点登录框架。
CAS 组成
结构上看包括两部分,
(1)CAS Server 为需要独立部署的 Web应用,
(2)CAS Client 为非常多的客户端提供支持,这个客户端指单点登录系统中的各个 Web 应用,包括 Java, .Net, PHP, Perl,Apache, uPortal, Ruby 等。
CAS 原理和协议
图是 CAS最基本的协议过程:
(1)CAS Server需要独立部署,主要负责对用户的认证工作;
(2)CAS Client 负责处理对客户端受保护资源的访问请求,需要登录时,重定向到 CAS Server。
(3)CAS Client 与受保护的客户端应用部署在一起,以 Filter方式保护受保护的资源。对于访问受保护资源的每个 Web 请求,CAS Client 会分析该请求的 Http 请求中是否包含 ServiceTicket(服务票据,由 CAS Server发出用于标识目标服务)
如果没有,则说明当前用户尚未登录,于是将请求重定向到指定好的 CAS Server 登录地址,并传递 Service(也就是要访问的目的资源地址),以便登录成功过后转回该地址。
如果有,则说明当前用户已经登录,直接访问目的资源地址。
(4)用户输入认证信息,如果登录成功,CAS Server 随机产生一个相当长度、唯一、不可伪造的 ServiceTicket,并缓存以待将来验证,之后系统自动重定向到 Service 所在地址,并为客户端浏览器设置一个 Ticket GrantedCookie(CAS会话标识)
(5)CAS Client 在拿到 Service 和新产生的 Ticket 过后,在第 5,6 步中与 CAS Server进行身份核实,以确保 Service Ticket 的合法性。
(6)在该协议中,所有与 CAS 的交互均采用
SSL 协议 ,确保,ST 和 TGC 的安全性。协议工作过程中会有 2次重定向的过程,但是 CAS Client 与 CAS Server 之间进行 Ticket 验证的过程对于用户是透明的。
(7)另外,CAS 协议中还提供了 Proxy (代理)模式,以适应更加高级、复杂的应用场景,具体介绍可以参考 CAS官方网站上的相关文档。
个人总结:
- 浏览器输入要访问的服务地址,服务地址即客户端验证是否有ticket,首次访问时ticket一定为空
- 访问地址重定向到服务端,将访问的客户端地址一并发给服务端,作用是验证完成后重定向回到要访问的客户端程序
- 服务端需要登录验证,输入用户名密码进行身份验证
- 验证通过后,服务端会生成一个ticket,并缓存已备 后续的验证
- 重定向service地址即客户端地址并将ticket发送给客户端,客户端发起与服务端的ticket校验
- 验证成功服务端返回用户名等信息
博文转载:
CAS单点登录学习笔记一之CAS基本概念
基于CAS实现单点登录(SSO):工作原理
- 大小: 19.9 KB
分享到:
相关推荐
这篇名为"CAS单点登录学习笔记五之CAS服务器数据源"的博客文章,很可能是作者对CAS服务器配置数据源部分的深入解析。数据源是应用程序连接和操作数据库的关键组件,对于CAS服务器来说,它用于存储和管理用户的认证...
CAS整合LDAP实现单点登录学习笔记 包含所有过程。
中央认证服务(Central Authentication Service,简称CAS)是一个广泛使用的企业级单点登录(Single Sign-On,简称SSO)解决方案,最初由耶鲁大学的Ja-SIG社区开发。其主要功能是允许用户使用单一的登录凭证访问多个...
单点登录(Single Sign-On, SSO)是一种网络身份验证技术,允许用户在一次登录后访问多个相互关联的应用系统,而无需再次输入凭证。CAS(Central Authentication Service)是基于Java的开源SSO协议实现,由JA-SIG...
CAS整合LDAP实现单点登录的原理及部署学习笔记,cas实现单点登录,ldap负责账户管理
文件"为CAS单点登录服务器增加验证码功能 - waitingmyself的日志 - 网易博客.mht"可能详细记录了这个过程。 3. **RememberMe功能**: RememberMe功能允许用户在一段时间内无需重新登录。CAS支持RememberMe,通过在...
CAS(Central Authentication Service)是基于Java的开源身份验证框架,由JA-SIG组织开发,用于实现单点登录(Single Sign-On, SSO)。这个压缩包文件包含了一系列的学习笔记,可以帮助我们深入了解CAS的工作原理和...
**JASIG CAS 3 学习笔记 1 —— 开始之旅** JASIG CAS(Central Authentication Service)是一款开源的身份验证系统,广泛应用于多应用系统中的单点登录(Single Sign-On, SSO)。CAS 3 是其第三个主要版本,提供了...
本项目为全栈工程师学习笔记,不求最深最好,开源技术搬运工 其他项目:Spring Cloud微服务学习笔记 Spring Boot项目实践 Java体系知识点汇总: : 网站资源链接 S3基本使用事件 数据库隔离等级验证 常用JVM命令...
Java并发编程是Java开发中必不可少的一部分,涉及到多线程、同步机制、线程池以及并发工具类等多个核心知识点。以下是对这些主题的详细说明: 1. **线程安全与锁 Synchronized 底层实现原理**: 线程安全是指在多...
spring security方面的学习资料,包含:Spring+Security+3+与+CAS单点登录配置;Spring+Security3中文教程;Spring-Security安全权限管理手册;Spring+Security文库;还有一个学习笔记!
本笔记整理涉及了JUC的内存可见性、volatile关键字以及CAS算法和原子变量等多个方面,以下是对这些知识点的详细说明。 ### 内存可见性 在多线程环境下,内存可见性是指当一个线程修改了某个共享变量的值,其他线程...
总结来说,微机原理与接口技术涵盖了从基本存储元件如SRAM的设计和使用,到复杂的中断系统管理,这些知识点构成了理解微机系统运行的基础。通过深入学习和实践,我们可以更好地掌握微机如何执行指令、如何与其他硬件...