单点登录分析报告

  • 格式:doc
  • 大小:682.50 KB
  • 文档页数:12

下载文档原格式

  / 12
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

单点登录分析报告

Josso介绍

特点

JOSSO 是一个纯Java基于J2EE的单点登陆验证框架,主要用来提供集中式的平台无关的用户验证。

JOSSO 主要特色:

1 100% Java,使用了JAAS,WEB Services/SOAP,EJB, Struts, Servlet/JSP 标准技术;

2 基于JAAS的横跨多个应用程序和主机的单点登陆;

3 可插拔的设计框架允许实现多种验证规则和存储方案;

4 可以使用servlet和ejb Security API 提供针对web应用,ejb 的身份认证服务;

5 支持X.509 客户端证书的强验证模式;

6 使用反向代理模块可以创建多层的单点登陆认证,并且使用多种策略可在每层配置不同的验证模式;

7 支持数据库,LDAP ,XML等多种方式的存储用户信息和证书服务;

8 客户端提供php,asp 的API;

9 目前JBoss 3.2.6 和Jakarta Tomcat 5.0.27 以上版本支持。

由于Josso不能跨域方位,所以放弃此框架。

CAS介绍

Central Authentication Service.

Yale 大学发起的一个开源项目,为Web 应用系统提供一种可靠的单点登录方法,CAS 在2004 年12 月正式成为JA-SIG 的一个项目,是目前比较流行的服务于企业单点登录的解决方案之一,用户只需要登录一次就可以访问所有相互信任的应用系统,是一款不错的针对Web 应用的单点登录开源框架,CAS 的服务器提供了一套易于定制的用户认证器接口,用户可以根据自身企业的在线系统的认证方式,来定制自己的认证逻辑。不论是传统的用户名/密码方式,还是基于安全证书的方式;是基于关系数据库的存储,CAS Server给我们提供了这些常用的验证器模板代码,只要稍作修改,便可灵活使用了。此框架为Java 语言编写,当前版本3.2.1,基于Spring,可以很好的集成客户业务模块,扩展性强,安全性高。

特点

1、开源的企业级单点登录解决方案。

2、100% Java,框架基于Spring,可整合acegi(Spring权限控制)。

3、CAS Server 为需要独立部署的Web 应用。

4、CAS Client 支持非常多的客户端(这里指单点登录系统中的各个Web 应用),包括

Java, .Net, PHP, Perl, Apache, uPortal, Ruby 等。

5、运行环境:任何J2EE容器,不依赖操作系统,跨平台。

框架结构

CAS 包含两个部分:CAS Server 和CAS Client。CAS Server 需要独立部署,主要负责对用户的认证工作;CAS Client 负责处理对客户端受保护资源的访问请求,需要登录时,重定向到CAS Server。

服务器端结构

(cas.war):

客户端结构

(casclient.jar):

客户端的存在方式:

以jar包的方式出现在web应用的web-inf\lib下,在web.xml中加入相应配置即可形成与服务端的认证方式。如下图:

原理协议

单点登录的实现机制不尽相同,大体分为Cookie机制和Session机制两大类。

Session:一种服务器端机制,当客户端访问服务器时,服务器为客户端创建一个惟一的SessionID,以使在整个交互过程中始终保持状态,而交互的信息则可由应用自行指定,因此用Session方式实现SSO,不能在多个浏览器之间实现单点登录,但却可以跨域。Cookie:是一种客户端机制,它存储的内容主要包括: 名字、值、过期时间、路径和域,路径与域合在一起就构成了Cookie的作用范围,因此用Cookie方式可实现单点登录,但域名必须相同。

目前大部分单点登录产品采用的是Cookie机制.

LDAP: Lightweight Directory Access Protocol X.500目录访问协议

SSL握手协议: 认证用户和服务器,确保数据发送到正确的客户机和服务器,

加密数据以防止数据中途被窃取;

维护数据的完整性,确保数据在传输过程中不被改变。

HTTPS: 安全超文本传输协议

由于CAS使用Https协议,要在容器中配制SSL。

CAS的客户端以一个Web应用的Filter运行。当Web应用的某个功能被请求时,Filter就会拦截

应用的URL,从而迫使用户到CAS服务器进行登陆。在所有不同的Web应用中,使用同一个CAS

服务器进行登陆,即可达到单点登陆之目的。

X.509 数字证书:公共密钥,私有密钥。

用户在单点登录服务器的登录页面中,输入用户名和密码。

1、然后单点登录服务器会对用户名和密码进行认证。

2、认证通过之后,单点登录服务器会和应用程序进行一个比较复杂的交互,这通常是

某种授权机制。CAS使用的是Ticket。

3、授权完成后,CAS把页面重定向,回到Web应用。Web应用此时就完成了成功的

登录(当然这也是单点登录的客户端,根据返回的Ticket信息进行判断成功的)。

然后单点登录服务器会在客户端创建一个Cookie。注意,是在用户的客户端,而不是服务端创建一个Cookie。这个Cookie是一个加密的Cookie,其中保存了用户登录的信息。

4、如果用户此时希望进入其他Web应用程序,则安装在这些应用程序中的单点登录客

户端,首先仍然会重定向到CAS服务器。不过此时CAS服务器不再要求用户输入用户名和密码,而是首先自动寻找Cookie,根据Cookie中保存的信息,进行登录。登录之后,CAS重定向回到用户的应用程序。

这样,就不再需要用户继续输入用户名和密码,从而实现了单点登录。

这种单点登录体系中,并没有通过http进行密码的传递(但是有用户名的传递),因此是十分安全的。