一、SSO作用
提起 SSO 的时候,我们通常是指 Web SSO ,它的主要特点是, SSO 应用之间走 Web 协议 ( 如 HTTP/SSL) ,并且 SSO 都只有一个登录入口。
简单的 SSO 的体系中,会有下面三种角色:
1 , User (多个)
2 , Web 应用(多个)
3 , SSO 认证中心( 1 个)
虽然 SSO 实现模式千奇百怪,但万变不离其宗:
(1) Web 应用不处理 User 的登录,否则就是多点登陆了,所有的登录都在 SSO 认证中心进行。
(2) SSO 认证中心通过一些方法来告诉 Web 应用当前访问用户究竟是不是张三 / 李四。
(3) SSO 认证中心和所有的 Web 应用建立一种信任关系, SSO 认证中心对用户身份正确性的判断会通过某种方法告之
Web 应用,而且判断结果必须被Web 应用信任。
二、sso的解决方案
CAS(Central Authentication Service)是Yale大学发起的一个开源项目CAS是SSO的一种实现.
三、CAS的原理
CAS Server
CAS Server负责完成对用户的认证工作, 需要独立部署
CAS Client
CAS Client部署在客户端,原则上,CAS Client的部署意味着,当有对本地Web应用的受保护访问请求,
并且需要对请求方进行身份认证,Web应用不再接受任何的用户名密码等 Credential, 而是重定向到CAS Server进行认证.
这是一张从网上找来的 CAS 简单实现原理图:
-
![]()
登陆认证流程如下:一个用户登陆应用helloservice,helloservice立即把用户重定向到cas server,也就是上图的步骤1-2.
然后在步骤三,用户输入用户名和密码进行认证。
一旦认证成功,cas server 会进行第4步骤,cas server在响应用户时,
会把Ticket granting cookie (TGC) 存储在用户的浏览器中。
并且把用户重定向到之前浏览的helloservice页面,在重定向的过程中(也就是4步),
cas server 会在用户的请求参数中附加一个随机生成的Service Ticket(简称ST,相当于验证码)。
当用户携带这个验证码向helloservice发起请求时,
helloservice获取到这个 st后进行第5步骤,一旦这个 st 在cas server验证存在后,
这个ST将会被销毁。之后进行第6步,这样整个sso 的登陆和验证就完成了。
四、CAS的搭建
五、CAS的使用
六、开发自己的认证类
cas_server 在验证时失效 原因 apache common pool 版本为2 Spring用的版本为pool 出错。

浙公网安备 33010602011771号