sso 入门

http://www.cnblogs.com/kingcucumber/archive/2012/12/20/2826200.html

CAS(Central Authentication Service),是耶鲁大学开发的单点登录系统(SSO,single sign-on),应用广泛,具有独立于平台的,易于理解,支持代理功能。CAS 系统在各个大学如耶鲁大学、加州大学、剑桥大学、香港科技大学等得到应用。

  从结构上看,CAS 包含两个部分: CAS Server 和 CAS Client。

  CAS Server 需要独立部署,主要负责对用户的认证工作,CAS Server的实现有多种选择,如Yale CAS Server和ESUP CAS Server等。CAS Server 会处理用户名/ 密码等凭证(Credentials) ,它可能会到数据库检索一条用户帐号信息,也可能在XML 文件中检索用户密码,对这种方式, CAS 均提供一种灵活但同一的接口/ 实现分离的方式, CAS 究竟是用何种认证方式,跟CAS 协议是分离的,也就是,这个认证的实现细节可以自己定制和扩展。

  CAS Client 负责处理对客户端受保护资源的访问请求,需要登录时,重定向到 CAS Server。它其实就我们要认证的业务应用系统,如Web应用。我们去访问Web应用时,会被重定向到CAS Server,要CAS Server来统一认证。目前,CAS Client 支持(某些在完善中)非常多的客户端,包括Java 、.Net 、ISAPI 、Php 、Perl 、uPortal 、Acegi 、ruby 、VBScript 等客户端,几乎可以这样说, CAS协议能够适合任何语言编写的客户端应用。

  下面的我看到的最容易的理解的讲述CAS过程的,原文如下:

  CAS 单点服务器的认证过程,所有应用服务器收到应用请求后,检查 ST 和 TGT ,如果没有或不对,转到 CAS 认证服务器登陆页面,通过安全认证后得到 ST 和 TGT 再重定向到相关应用服务器,在会话生命周期之内如果再定向到别的应用,将出示 ST 和 TGT 进行认证 , 注意 , 取得 TGT 的过程是通过 SSL 安全协议的(换句话说就是如果不用 SSL 协议 , 每访问一个应用服务,就得重新到认证服务中心认证一次)。

  现在,你要去游乐场玩,首先你要在门口检查你的身份(即检查你的ID 和 PASS), 如果你通过验证 , 游乐场的门卫 (AS) 即提供给你一张门卡 (TGT)。这张卡片的用处就是告诉游乐场的各个场所,你是通过正门进来的。现在你有张卡,但是这对你来不重要,因为你来游乐场不是为了拿这张卡的,我们向你的目的出发,恩,你来到一个摩天楼 , 你想进入玩玩。这时摩天轮的服务员(client)拦下你 , 向你要求摩天轮的(ST)票据 , 你说你只有一个门卡(TGT),好的,那你只要把 TGT 放在一旁的票据授权机(TGS)上刷一下。票据授权机(TGS)就根据你现在所在的摩天轮,给你一张摩天轮的票据(ST),哈,你有摩天轮的票据,现在你可以畅通无阻的进入摩天轮里游玩了。当然如果你玩完摩天轮后,想去游乐园的咖啡厅休息下,那你一样只要带着那张门卡(TGT)。到相应的咖啡厅的票据授权机(TGS)刷一下,得到咖啡厅的票据(ST)就可以进入咖啡厅。当你离开游乐场后,想用这张 TGT 去刷打的回家的费用,呵呵,对不起,你的 TGT 已经过期了,在你离开游乐场那刻开始,你的 TGT 就已经销毁了。

  CAS工作原理机制图:

   

你可能感兴趣的:(SSO)