SSO_CAS
时间:2023-03-11 11:12:48 下载该word文档
SSO是一个非常大的主题,我对这个主题有着深深的感受,自从广州UserGroup的论坛成立以来,无数网友都在尝试使用开源的CAS,Kerberos也提供另外一种方式的SSO,即基于Windows域的SSO,还有就是从2005年开始一直兴旺不衰的SAML。
如果将这些免费的SSO解决方案与商业的Tivoli或Siteminder或RSASecureSSO产品做对比,差距是存在的。毕竟,商业产品的安全性和用户体验都是无与伦比的,我们现在提到的SSO,仅仅是WebSSO,即Web-SSO是体现在客户端;另外一种SSO是桌面SSO,例如,只需要作为Administrator登录一次windows2000,我便能够在使用MSN/QQ的时候免去登录的环节(注意,这不是用客户端软件的密码记忆功能,是一种代理用户输入密码的功能。因此,桌面SSO是体现在OS级别上。
今天,当我们提起SSO的时候,我们通常是指WebSSO,它的主要特点是,SSO应用之间走Web协议(如HTTP/SSL,并且SSO都只有一个登录入口。
简单的SSO的体系中,会有下面三种角色:1,User(多个)2,Web应用(多个)3,SSO认证中心(1个)
虽然SSO实现模式千奇百怪,但万变不离其宗:
Web应用不处理User的登录,否则就是多点登陆了,所有的登录都在SSO认证中心进行。SSO认证中心通过一些方法来告诉Web应用当前访问用户究竟是不是张三/李四。
SSO认证中心和所有的Web应用建立一种信任关系,SSO认证中心对用户身份正确性的判断会通过某种方法告之Web应用,而且判断结果必须被Web应用信任。
2.CAS的基本原理
CAS(CentralAuthenticationService是Yale大学发起的一个开源项目,据统计,大概每10个采用开源构建WebSSO的Java项目,就有8个使用CAS。对这些统计,我虽然不以为然,但有一点可以肯定的是,CAS是我认为最简单实效,而且足够安全的SSO选择。
本节主要分析CAS的安全性,以及为什么CAS被这样设计,带着少许密码学的基础知识,我希望有助于读者对CAS的协议有更深层次的理解。
2.1CAS的结构体系