当前位置:文档之家› 一个Web应用单点登录系统的设计和实现

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

第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 PassportMicrosoft .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年图1Web应用单点登录系统之系统框架图2系统分析设计在我国中小型企业Intranet环境中,一般会有不同时期开发的基于不同技术的Web应用,比如早期采用C GI、Per1编写的基于CGI的运行在Lin ux系统上Web应用,采用微软ASP编写的运行在Windows平台IIS服务器上的应用,采用Java Servlet/JSP编写的运行在不同厂商J2EE应用服务器上的应用,这使得完全采用IB M WebSphere/ Domino服务器成为一种不可能;基于安全、费用、以及企业内部Intranet环境等因素,采用微软的.Net passport解决方案也不可行;由于企业规模和费用问题,中小型企业没有必要和能力购买Site Minder这样的安全产品.鉴于此,开发一个适应中小型企业网络环境简单、应用环境复杂,但是要求开发费用低廉、具有良好适应性的可扩展的单点登录系统就有其现实意义.本文设计的Web应用单点登录系统(以下简称WebSSO系统)借鉴了其他单点登录系统的技术,采用J2EE1 3API实现,运行在J2EE应用服务器实现,适用于企业Intranet环境.系统主要由四个模块构成(如图1,Web应用单点登录系统之系统框架图所示):1)WebGate模块负责用户登录WebSSO系统,提供用户有权访问的Web应用系统列表和访问链接;2)LoginHelper模块负责帮助用户透明登录后台各个Web应用;3)Ac tive Session模块负责保存LoginHelper登录后台Web应用后获得的会话信息,以备用户在有效时间内从其他网页跳转到后台Web应用的页面的时候提供会话信息;4)Policy Mana ger模块负责为Web Gate和LoginHelper模块提供用户在WebSSO系统的用户信息以及各个后台应用系统的该用户相对用的信息,比如用户名和口令、证书等等.用户使用WebSSO系统进行身份验证和单点登录的流程如图2.49第1期一个Web应用单点登录系统的设计和实现1)用户首次登录WebSSO 系统,用户提交含有用户名和口令的Form 表单登录;2)WebGate 模块调用LoginHelper 登录,同时在Active Session 模块中创建当前会话信息;3)WebGate 返回该用户有权访问的后台Web 应用列表,相应的URL 中包含有类似于.Net Pass port P UID 的加密的用户ID;4)用户在WebGate 返回的应用列表中选择一个受保护的后台Web 应用的链接;5)后台Web 应用所在的Web 服务器在解释该链接的URI 部分(比如/ssologin 的/ssologin)的时候会把请求转交给单点登录服务器的LoginHelper 处理;6)LoginHelper 在Active Session 中确认该用户是否是有效会话;7)LoginHelper 以此用户在其要访问的Web 应用中的用户名和口令登录后台Web 应用,并把该Web 应用的会话状态信息保存到Active Session 中;8,9)LoginHelper 把在该Web 应用登录后返回的会话状态信息和Web 页面通过Web 服务器返回给Web 浏览器;10,11)浏览器继续访问刚刚登录过的Web 应用,由于浏览器中有会话状态信息,客户不必再次登录后台应用.图2 WebSSO 单点登陆系统中身份验证的流程3 系统实现要点系统原型是使用Java 语言开发,采用J2EE 1 3API 实现的,运行环境采用IB M WebSphere 应用服务器(也可以采用Apache Tomcat Servlet 引擎),支持多种操作系统和Web 服务器.3 1 WebGate 模块的实现WebGate 使用声明型的J2EE 安全机制,用户输入用户名和口令,提交表单进行登录时,J2EE应用服务器根据配置到用户数据库(原型实现中采用IB M WebSphere 服务器,用户数据库采用LDAP 服务器,也可以采用关系型数据库、或者第三方安全认证系统)进行身份验证.身份验证通过后服务器会创建会话,使用3DES 加密一个SSO ID 并把它保存到客户端Web 浏览器的Cookie 中.在WebGate 的配置文件web.xm1文件中的security-constraint 项目中指明该Web 应用servlet 和jsp 都是受J2EE 安全保护的资源,这些资源分别可以由什么角色去访问;login-config 配置了身份验证方法是FORM,登录页面是logon.jsp.在把这个Web 应用部署到J2EE 应用服务器的时候设置角色和LDAP 用户数据库之间的映射关系.下面部分代码是WebGate 登录页面logon.jsp,其中j_security_check 是J2EE 应用服务器提供的身份验证服务小程序.3 2 LoginHelper 模块的实现系统实现的难点在于LoginHelper 模块,比如如何帮助客户登录不同的后台Web 应用,登录后如何把后台Web 应用返回的会话信息发送给Web 浏览器,如何将后台Web 应用返回的页面发送给Web 浏览器.3 2 1 登录后台Web 应用针对采用不同方式进行身份验证的后台Web 应用,需要开发不同的LoginHelper.下面针对基于Form 表单方式登录、用户会话信息保存在Cookie的Domino Web 服务器为例说明LoginHelper 的实现.大部分Web 应用是在登录页面中使用Form 表单提交用户名和口令等信息进行身份验证,后台服务器根据这些信息到数据库中对用户进行身份验证以后,在服务器为该用户建立一个会话,在Web 浏览器保存该会话的ID !通常保存在Cookie 中.以Domino 服务器为例,Domino 登录页面主要内容如下:50哈尔滨师范大学自然科学学报 2004年51第1期一个Web应用单点登录系统的设计和实现DESIGN AND IMPLEMENTATION OF AWEB SINGLE SIGN ON SYSTEMChen Zhongwei(Shanghai Spareti me Universi ty of Ji ngan Dis trict)ABSTRACTThis paper presents design and implementation of a Web Single sign On system which is suitable for enterprise intranet environment.The syste m supports single sign on across multiple internet domain,several popular operation system and Web servers.Keywords:Web;HTTP;Single sign On;Authentication(责任编辑:李佳云)52哈尔滨师范大学自然科学学报 2004年。

相关主题