一个Web应用单点登录系统的设计和实现

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

第20卷哈尔滨师范大学自然科学学报

Vol.20,No.12004

第1期

NATURAL SCIENCES JOURNAL OF HARBIN NORMAL UNIVERSITY

一个Web 应用单点登录系统的设计和实现

陈重威

(上海市静安区业余大学)

摘要 作者在分析借鉴三种Web 单点登录产品和技术的基础上,设计并实现了一个Web 单点登录系统,该系统适用于企业内部Intranet 应用环境,可以跨多个In ternet 域,可以支持常见的几种操作系统和Web 应用服务器.本文介绍了此系统的设计思路和关键技术,并给出了部分关键代码.

关键词:Web;HTTP;单点登录;身份验证

收稿日期:2003-12-28

陈重威,(1948-),男,上海静安区业余大学计算机系副教授,主要研究方向:计算机网络、数据库

0 引言

经过多年的建设,我国企业中建立起来了一些基于Web 的应用系统,这些系统运行在多种操作系统和应用服务器上面,由不同的技术人员在不同的时期采用不同的技术建立,采用多种相互独立的用户管理、身份验证系统.在当前企业有限的经费预算条件下,如何使用户可以只登录企业信息系统一次就可以访问到企业中多种Web 应用一直是一种挑战.本文在分析三种具有代表性的Web 应用单点登录系统的基础上,针对中小型企业对Web 应用单点登录的要求、其Intranet 环境的特点,给出一个适应于中小型企业Intranet 内常见Web 应用的单点登录系统的设计框架及基于J2EE 的系统实现要点.

1 用户要求和现有产品

1 1 用户环境和要求

企业中基于Web 的应用系统种类繁多,有基于微软Internet Information Server 的运行在Windows 平台上的信息系统,有基于J2EE 应用服务器平台

的业务系统,有基于Lotus Domino 的办公自动化

系统,也有SAP 、ORAC LE 那样的ERP 系统或者财

务系统,这些系统各有各的用户数据库(关系型数据库、Domino 文档数据库、LDAP 服务器等).企业员工在不同应用系统中有不同的帐户!!!用户名和口令,他们需要牢记这些帐户.企业员工特别希望只登录一次就可以透明地访问其他各种应用系统,不再需要在各种应用系统的登录页面中多次输入不同的用户名和口令.

从用户的角度看,Web 应用单点登录系统的使用方法如下:

1 用户访问Web 单点登录系统,服务器返回登录页面,提示用户输入用户名和口令等认证信息;

2 用户登录系统,登录系统返回一个该用户有权访问的应用的列表;

3 自此以后,用户访问其他应用的时候,在用户看来,他不必进行身份验证就可以访问其他Web 应用了;

4 当用户退出一个应用系统,而没有退出∀单点登录系统#,他仍然可以访问其他没有退出登录的应用系统.

1 2现有产品和技术

下面让我们了解一下三家著名公司的Web 应用单点登录的产品和技术.

1 2 1IBM WebSphere单点登录方案

IB M为其WebSphere应用服务器和Lotus Domino服务器开发了一项单点登录技术,该技术的核心是在一个Internet域(比如)中共享含有用户标识的加密的HTTP Cookie,使同一Internet域中的多台WebSphere应用服务器和Domino应用服务器之间做到单点登录.

首先,由参与单点登录的某台服务器生成一组有口令保护的供所有服务器使用的加密密钥!!!公共密钥、私有密钥、3DES密钥;然后在所有服务器中共享这一组密钥,这样服务器之间就建立起来一种信任关系.当用户第一次访问企业In ternet域中服务器的时候,用户必须提供用户名和口令或者证书进行身份验证;如果用户在服务器身份验证成功,服务器产生一个在此Internet域内有效的缺省名称为LtpaToken的加密的H TTP Cookie并将它发送给客户端浏览器,这个Cookie 中包含用户身份的敏感信息:由于该Internet域中WebSphere/Domino应用服务器都可以访问这个Cookie,可以使用共同的密钥解密出C ookie里面包含的用户标识,并且相信这是个有效的用户标识,从而服务器不必再次对客户进行身份验证.这样就达到了在一个Internet域中所有服务器单点登录的目的.

1 2 2Microsoft .NE T Passport

Microsoft .NE T Passport是微软为其客户提供的一项Internet范围的身份验证服务,它可以在多个公共站点和服务上提供单次登录(Single Sign In简称SSI)功能.该服务运作的核心是微软的. Net Passport service服务,参与单点登录的服务器使用微软提供的服务和用户数据库.该技术的核心是参与单点登录的服务器把身份验证工作交给微软Passport服务,信任微软Passport服务通过重定向URL返回的用户信息.

其基本工作机理是:.Net Passport服务器对用户进行身份验证以后在客户端浏览器设置.pass 域的Cookie,包括Ticket Granting C ookie,该Cookie含有.NE T Passport Unique ID(P UID)信息,使用Passport加密密钥加密;然后

.Net Passport服务器在返回给浏览器的指向参与.NE T Passport的网站的重定向URL中包含用户Profile等信息,使用参与.NE T Passport的网站的密钥加密;参与.NET Passport的网站收到微软转来的请求后,该网站服务器的一个服务器组件Microsoft Passport Manager解密出.Net Passport服务器传来的信息,把用户身份验证信息保存在客户端浏览器的Cookie里面.

1 2 3Netegrity SiteMinder单点登录

Netegrity SiteMinder支持跨越多个Internet域、Web服务器、应用服务器的单点登录,支持身份验证,资源授权.

Site Minder代理被设计为Web服务器的插件,代理可以截获发给Web服务器的所有H TTP请求,然后代理到SiteMinder那边进行身份验证、资源授权访问.客户端浏览器访问Web服务器的时候并不知道是SiteMinder代理该Web服务器进行的身份验证和资源授权.这些代理可以做到非常细致的安全访问控制,但是相应服务器需要做一定的配置,工程师搭建单点登录环境的时候配置工作大.

Site Minder也可以配置为所有Web服务器的安全代理服务器,安全代理服务器接收Web浏览器的HTTP(s)请求,把这些请求传递给后台Web 服务器,然后把后台Web服务器传回来的数据返回给Web浏览器.后台返回的页面中所有URL都被安全服务器重写,指向安全服务器,以保证Web 浏览器不会直接访问后台服务器;如果后台Web 服务器需要进行身份验证,那么安全代理服务器将在Web浏览器不知情的情况下自动地登录后台Web服务器.

三种单点登录产品的比较

比较IB M、微软、Netegrity公司的单点登录产品,我们可以得到下面的对比数据:(如表1)从表1我们可以看出,IB M的解决方案除产品外没有额外的费用开销,但是只适合那些只使用IBM WebSphere或者Domino应用服务器的环境;微软的.Net passport用户数据库大,适合企业的面向Internet用户的对外系统!!!比如eBay网上拍卖系统,但是使用费用昂贵!每年都要交给微软服务费用,系统的用户数据库交给微软管理; Netegrity SiteMinder产品功能强大,支持应用类型和系统平台多,但是产品价格昂贵,适合那些资金雄厚的大用户.

48哈尔滨师范大学自然科学学报2004年

相关文档
最新文档