综合业务系统单点登录(SSO)解决方案 一. SSO (Single Sign-on)原理 SSO 分为Web-SSO 和桌面SSO。桌面 SSO 体现在操作系统级别上。Web-SSO 体现在客户端,主要特点是: SSO 应用之间使用 Web 协议 ( 如 HTTPS) ,并且只有一个登录入口。我们所讲的 SSO,指 Web SSO 。 SSO 的体系中,有下面三种角色: User(多个) Web 应用(多个) SSO 认证中心(一个) SSO 实现包含以下三个原则: 所有的登录都在 SSO 认证中心进行。 SSO 认证中心通过一些方法来告诉 Web 应用当前访问用户究竟是不是通过认证的用户。 SSO 认证中心和所有的 Web 应用建立一种信任关系。 二. CAS 的基本原理 CAS(Central Authentication Service) 是 Yale 大学发起的构建 Web SSO 的 Java 开源项目。 1. CAS 术语解释 SSO-Single Sign On,单点登录 TGT-Ticket Granting Ticket,用户身份认证凭证票据 ST-Service Ticket,服务许可凭证票据 TGC-Ticket Granting Cookie,存放用户身份认证凭证票据的 cookie 2. CAS 的结构体系 CAS Server CAS Server 负责完成对用户信息的认证,需要单独部署,CAS Server 会处理用户名 / 密码等凭证 (Credentials) 。 CAS Client CAS Client 部署在客户端,当有对本地 Web 应用受保护资源的访问请求,并且需要对请求方进行身份认证,重定向到 CAS Server 进行认证。 3. CAS 协议 基础协议 上图是一个基础的 CAS 协议, CAS Client 以 过滤器的方式保护 Web 应用的受保护资源,过滤从客户端过来的每一个 Web 请求,同时, CAS Client 会分析 HTTP 请求中是否包请求 Service Ticket( 上图中的 Ticket) ,如果没有,则说明该用户是没有经过认证的, CAS Client 会重定向用户请求到 CAS Server ( Step 2 )。 Step 3 是用户认证过程,如果用户提供了正确的认证信息 , CAS Server 会产生一个随机的 Service Ticket ,会向 User 发送一个 Ticket granting cookie (TGC) 给 User 的浏览器,并且重定向用户到 CAS Client (附带刚才产生的 Service Ticket),Step 5 和 Step6 是 CAS Client 和 CAS Server 之间完成了一个对用户的身份核实,用 Ticket 查到 Username ,认证通过。 在该协议中,所有与 CAS 的交互均采用 SSL 协...