您的位置:首页 > 其它

单点登录和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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: