企业信息门户单点登录系统的实现

计 算 机 工 程 第 31 卷 第17期

Vol.31 № 17 Computer Engineering · ·网络与通信

文章编号:1000—3428(2005)17—102—03

文献标识码:A

2005年9月

September2005

中图分类号:TP18

企业信息门户单点登录系统的实现

谭立球1,2,费耀平2,李建华2

(1. 中南大学信息科学与工程学院,长沙 410075 ;2. 中南大学网络中心,长沙 410075)

摘 要:介绍了一个企业信息门户中单点登录系统的实现。系统实现了基于Cookies的单点登录系统,解决了SSO中Cookies不能跨域共享的问题,采用Cookie和Cookie Server来共同保存用户身份信息,具有较好的安全性。同时采用Web服务来实现统一的身份认证,实现了基于LDAP的用户身份信息的保存,最后提出了企业信息门户中一种基于用户、用户组、应用以及角色相结合的权限管理方法。 关键词:企业信息门户;单点登录;Cookies;Web服务;访问控制

Realization of Single Sign-on in Enterprise Information Portal

TAN Liqiu1,2, FEI Yaoping2, LI Jianhua2

(1. Information Science and Engineering College, Central South University, Changsha 410075 ;

2. Network Center, Central South University, Changsha 410075)

【Abstract】A single sign on system based on Cookies in enterprise information portal is presented, which solves the problem that the Cookiescannot support across-domain share. Further more the security is assured using Cookies and Cookie server to keep user’s credential information. Andit uses Web services to construct user authentication, uses LDAP to keep user information. At last, the paper proposes a new access control methodbased on user, user group, application and role in EIP.

【Key words】Enterprise information portal; Single sign-on; Cookies; Web service; Access control

企业信息门户[1](Enterprise Information Portal, EIP)就是通过统一的入口将企业所有应用集成起来,给不同层次的使用者提供信息服务,实现一次登录、多点通行。企业信息门户涉及Portal、内容管理、数据集成、单点登录等多方面的内容,而单点登录则是必须首先需要解决的问题。

目前有多种单点登录系统的实现,在这些系统中,其实现方法分为两种:一种是建立在PKI,Kerbose和用户名/口

一种是建立在Cookie的基础上,如IBM 令存储的基础上[2,4,5],

Websphreer, Bea WebLogic。

1 系统的结构

在企业信息门户中,由于面向的对象是整个Internet,用户群有各式各样,既有一般的普通用户,也有能为企业带来实际收益的增值用户,并且应用系统也不断增加,因此要求新系统在加入企业信息门户时,修改较小,最好有通用的接口供其调用,并且对于单点登录,无论用户通过门户登录,还是通过某个应用站点登录,都能做到单点登录,全网通行。

整个系统的中心为认证服务器、Cookie服务器和Ldap服务器。认证服务器是提供系统的认证服务,其主要支持的业务有提供用户注册服务、向所有应用系统提供认证服务,同时提供用户调用接口。Cookie服务器则保存当前活跃状态的Cookie信息。Ldap服务器则保存所有用户相关信息。企业门户网站和其他的应用网站在企业门户的单点登录系统中地位都是对等的,也就是只要在任何一个应用站点上进行登录,就相当于登录了整个信息门户。在每个应用中,都通过调用认证服务器的Web认证服务来实现用户身份的认证。在每个应用系统中,我们采用了二次鉴权,也就是用户统一集中管理,单点登录只解决用户登录和用户能否有进入某个应用的权限问题,而在每个业务系统的权限则由各自的业务系统进行控制。其原因是这些应用系统都有自己的权限和资源管理策略,并且都已经在各自的业务系统内部实现了。如果要采用统一集中的权限控制策略,那么各自的应用系统的修改都比较大。这种方式,对于所有系统都是自己开发时比较合适,而对于第三方系统以及以后新的应用系统的加入,都带来非常多的不方便,影响业务的正常运行,基于以上考虑,在系统中采用基于权限分散的统一认证系统来实现。

本文分别从共享Cookie、跨域认证、基于Web Service的统一认证、LDAP用户信息的保存以及分布式统一认证系统的实现上进行介绍。

2 共享Cookie的实现

在企业信息门户的应用中,大部分应用都是B/S结构的。由于HTTP协议是一种无状态的信息,对于一个Web站点来

作者简介:谭立球(1970—),男,博士生,主研方向:数据集成,电子政务,智能网站;费耀平、李建华,教授 收稿日期:2004-07-27 E-mail:[email protected]

——102

说,它是很难区分不同的访问用户,于是W3C联盟提出了采用Cookie对客户端信息进行标注。Cookie 是一小段文本信息,伴随着用户请求和页面在 Web 服务器和浏览器之间传递。用户每次访问站点时,Web 应用程序都可以读取 Cookie 包含的信息。Cookie包含的信息主要有Cookie名称、Cookie值、Cookie有效期、域名、URL路径、安全标志。Cookie信息常用Session Cookie和持久Cookie的方式来保存。在采用Cookie来存储用户信息时,将所有的信息都存储在客户端,存在安全隐患。因而在系统中,采用Cookie和Cookie_inf来保存用户认证信息,其中Cookie保存在客户端,而Cookie_inf保存在Cookie Server中,其中Cookie中只包含Cookie 的ID号,产生Cookie的Web服务器编号,以及用MD5加密后的摘要信息,用户加密的信息包括用户号码、Cookie ID、www服务器ID以及用户浏览器的IP地址组成。Cookie_inf则实质包含认证所需的用户相关信息,包括:

Cookie ID:它由认证服务器唯一生成,并且号码是足够长,可以减少用户欺骗攻击的风险。

用户信息: 包括用户登录的用户名和密码,其中密码与Ldap中保存的用户密码都是一样,为MD5加密以后的摘要。

Web Server ID: 就是在那个服务器上发起登录的。

用户身份信息:它来自Ldap Server,主要包括用户的权限信息。 用户浏览器IP:通过与用户IP的绑定,也就是SSO认证肯定是发自同一个IP地址,而来自不同IP的SSO请求同一Cookie可以看成是欺骗性的请求。

Cookie生成时间:Cookie在认证服务器中首次生成的时间。 Cookie 失效时间:它是对用户登录后没有及时退出而进行的一个安全补充,在失效时间段过后,可以将Cookie看成一个废弃的Cookie。

服务器。

(8) 应用A Web 服务器将生成的Cookie及数据返回给浏览器。

如果用户已经通过SSO认证了,现在需要访问同域名的应用B,那么其流程为:

(1) 用户向应用B发出请求,同时提交了Cookie。

(2) 应用B调用服务,根据Cookie的ID号码,向认证服务器发出验证请求。

(3) 认证服务器向Cookie Server请求Cookie_inf。 (4) 将Cookie_inf结果返回给认证服务器。 (5) 认证服务器将Cookie_inf返回给应用B。

(6) 应用B根据Cookie_inf的内容,生成应用返回给用户。

3 跨域认证的实现

由于安全原因,W3C联盟在提出Cookie时规定Cookie不能跨域共享,也就是Cookie能在同级域名及其子域名下实现共享,如对于域App.com,那么其子域Sub.App.com与同级域名站点Host1.App.com,Host2.App.com的Cookie能实现共享,而不能与域名App2.com共享该Cookie。为了解决企业信息门户中不同域名应用之间单点登录的问题,通过www主机之间的互相信任的机制实现跨域共享的实现,其SSO认证流程如图3所示。

建立在Cookie和Cookie_inf基础上的系统单点登录的认 证流程如图2所示。

图3 跨域认证流程

假设用户需要访问App.com站点,而App.com的信任主机为App1.com、App2.com等,那么其认证流程如下:

图2 单点登录系统认证流程

对于用户初次登录,认证流程为:

(1) 用户输入用户名和口令,并提交到应用A Web 服务器。 (2) Web 服务器接到用户名和口令后,向认证服务器发起请求认证服务。

(3) 认证服务器向Ldap Server 认证用户信息,验证用户名和密码。 (4) 将认证结果返回给认证服务器,如成功,则将用户身份信息返回。

(5) 认证服务器将相关信息生成Cookie_inf, 登记到Cookie Server中。

(6) 将登记结果返回认证服务器。

(7) 认证服务器将Cookie ID及Cookie_inf返回给应用A Web

(1)用户访问App.com站点。

(2)由于App.com的SSO Cookie 不存在,因此可以推论用户没有在App1.com登录,根据主机间相互信任的机制,重定向到App1.com,并且包括初始的URL地址。

(3)如果用户曾经登录到了App1.com,那么Cookie会随着http请求发出,如果用户没有登录,那么可以在仿照上一步骤选择App.com的另一信任站点,再次进行重定向。

(4)App1.com发送http 重定向到最初的服务器(App1.com),并且用SSO Cookie作为参数。

(5)浏览器重定向到App.com,并且将App1.com的SSO Cookie作为参数。

(6)Web服务器将Cookie 发送到认证服务器进行认证。

(7)认证服务器向Cookie Server获取该Cookie的Cookie_inf。 (8)Cookie Server返回Cookie_inf结果。 (9)认证服务器将Cookie及Cookie_inf返回App.com,App.com生成本域名的Cookie.

(10)将Cookie及应用返回给用户浏览器。

4 基于Web Service的统一认证

Web Service是一个独立的、基于标准的应用,它是基于互联网标准和XML技术来实现的,用以描述、发布到网络

—103—

供其他应用程序调用服务。Web Service的主要目标就是在现有的各异构平台的基础上构筑一个通用的与平台、语言无关的技术层。各种不同平台的应用依靠这个技术层来实施彼此的连接和集成。Web Service是一种部署在Web上的对象/组件,具备完好的封装性、松散耦合等特征。就DCOM、CORBA、RMI等分布式对象模型而言,Web Service能实现客户端与系统提供服务之间实现一种松散的耦合,通过XML/SOAP实现基于Internet情况下的消息交换;WSDL对服务进行描述;UDDI对服务进行注册。在系统中采用Web Service对认证服务进行封装,其一般的实现步骤如下[1]:

(1) 开发认证应用SSOLogin,该应用可通过JavaBean、EJB实现,该应用的输入参数为用户浏览器IP、发起SSO登录的Web服务器ID、用户名、密码。返回参数为Cookie ID、Cookie_inf;

(2) 为Web Service创建服务描述文件WSDL; (3) 在应用服务器中布置Web Service;

(4) 将Web Service发布到本地UDDI注册中心;

(5) 应用程序客户端检索WSDL文件产生一个客户端代理对象; 客户端通过所产生的客户端代理对象而实现对Web (6) 应用时,Service的调用。

6 权限管理

随着企业门户上的应用越来越多,所有的系统都共享一

套基本的用户数据。权限管理的任务是控制每个用户在每个应用的访问权限,而此访问权限并不包括用户每个业务的具体权限,因为每个用户进入每个系统后,在每个业务系统中还要对用户进行二次鉴权。在本系统提出了一套基于用户、用户组、业务和角色相结合的身份控制,实现如下:

设系统定义了m个用户分别为U1、U2、…、Uj、…、Um 设系统定义了n个业务分别为A1、A2、…、Ai、…、An

设系统定义了p个用户组分别为G、G2、…、Gk、…、Gp。用户组为用户和其他用户组的的组合,表达为:

Gk=[U1][∪U2][∪…][∪Um][∪G1][∪G2][∪…][∪Gk-1][∪Gk+1][∪Gp]

式中[]表示可选的意思,该公式表明,一个用户组可以定义为数个用户及其它用户组的组合。

设系统定义了q个角色组分别为R1、R2、…、Rl、…、Rq。角色为业务与其他角色的组合,表达为:

Rl=[A1][∪A2][∪…][∪An][∪R1][∪R2][∪…][∪Rk-1][∪Rk+1][∪…][∪Rq]

该式表明,一个角色组可以定义为数个角色及其他角色组的 组合。那么对于用户Uj(j∈{1,2,…,m})来说,其权限可以定义为

P[Uj]=U(P[Gk]∩Uj∈Gk)[UA1][UL][UAn][UR1][UL][URq]

k=1p

发布后可在Web工程的WSDL文件下面找到两个.wsdl 文件: SSOLogin-service.wsdl,SSOLogin-binding.wsdl。SSOLogin-service.wsdl文件主要描述了这个Web services的服务访问点,SSOLogin-binding.wsdl文件则描述了这个Web services的通信消息的数据结构、每个访问点支持的操作、特定的端口类型的具体协议和数据格式规范的绑定等信息,其具体的含义可以参考使用WSDL部署 Web服务[6]。

也就是用户Uj 的业务权限可以用用户所属的用户组权限与单独授予的业务权限以及所授予的角色权限来表达。

通过以上设置,可以获得灵活多变的权限控制组合,如对一个用户授权,他既可以集成所在用户组的权限,又可单独授予其某一业务的权限,同时也可授予某些角色的权限。

5 LDAP目录服务器的使用

LDAP的英文全称是Lightweight Directory Access

都简称为LDAP。它是基于X.500标准的,与X.500Protocol,

不同的是LDAP支持TCP/IP。LDAP中的信息都被存储在目录中,LDAP不是关系型数据库,它的信息目录结构类似于UNIX的文件系统,这种树-叶结构使LDAP有很好的扩充性,而且查询速度比关系型数据库要快。大多数的LDAP服务器都为读密集型的操作进行专门的优化,也就是如果应用中信息读取操作很多,而修改信息很少的话,那么可以采用LDAP数据库。从LDAP服务器中读取数据的时候会比从专门为 OLTP优化的关系型数据库中读取数据快一个数量级。

因而系统采用LDAP来保存用户信息,除了可以有很快的检索效率,同时因为存储采用目录树结构,可以对用户进行分组控制。例如,如果想让甲公司人事部下的所有用户来访问某项应用,那么可以用“ou=人事部,u=甲公司”所指向的用户对象来访问应用A。在具体的应用过程中,系统采用Active Directory作为用户信息保存,在初始阶段,需要在Active Directory管理器中创建一个类别,该类具有如下属性:

公用名:inetOrgPerson LDAP显示名:inetOrgPerson 唯一的X500对象ID:1.21.23.25.2 父类别:organizationalPerson 类别类型:结构

在“常规”页中,类别改为“inetOrgPerson”

在“关系”页中添加父类别“mailRecipient”,添加可能的上级、“person”、“top”。 “organizationalPerson”

7 小结

本文介绍了一个企业信息门户中单点登录系统的实现,

系统实现基于Cookies的单点登录系统,解决了SSO中Cookies不能跨域共享的问题,采用Cookies和Cookie Server来共同保存用户身份信息,具有较好的安全性。同时采用Web服务来实现统一的身份认证,实现了基于LDAP的用户身份信息的保存,最后提出了企业信息门户中一种基于用户、用户组、应用以及角色相结合的权限管理方法。目前该系统仅实现了基于B/S的单点登录认证,今后将考虑把SSO引入到B/S应用与C/S应用相结合,同时考虑启用与LDAP相结合的证书机制,进一步加强系统的安全性。

参考文献

1 孙晋文, 肖建国.基于Web Services的现代企业内容管理与知识集成技术[J].计算机工程, 2003, 29(20): 72-74

2 李小平, 阎光伟, 王轩峰等. 基于公开密钥基础设施的单点登录系统的设计[J].北京理工大学学报, 2002, 22(2):209-213

3 Samar V. Single Sign-on Using Cookies for Web Applications. IEEE 8th International Workshops on Enabling Technologies: Infrastructure for Collaborative Enterprise. Palto Alto, Califorina 1999-06:16-18 4 刘启新, 蒋东兴, 石 碞等. 网络应用系统统一口令认证的研究与实现[J]. 计算机工程, 2000, 26(增刊): 56-58

5 任 栋, 刘连忠. Web应用环境下安全单点登录模型的设计[J].计算机工程与应用,2002,38(24):174-176

6 柴晓路, 梁宇路. Web Services技术、构架和应用.北京:电子工业出版社, 2003-01

——104

计 算 机 工 程 第 31 卷 第17期

Vol.31 № 17 Computer Engineering · ·网络与通信

文章编号:1000—3428(2005)17—102—03

文献标识码:A

2005年9月

September2005

中图分类号:TP18

企业信息门户单点登录系统的实现

谭立球1,2,费耀平2,李建华2

(1. 中南大学信息科学与工程学院,长沙 410075 ;2. 中南大学网络中心,长沙 410075)

摘 要:介绍了一个企业信息门户中单点登录系统的实现。系统实现了基于Cookies的单点登录系统,解决了SSO中Cookies不能跨域共享的问题,采用Cookie和Cookie Server来共同保存用户身份信息,具有较好的安全性。同时采用Web服务来实现统一的身份认证,实现了基于LDAP的用户身份信息的保存,最后提出了企业信息门户中一种基于用户、用户组、应用以及角色相结合的权限管理方法。 关键词:企业信息门户;单点登录;Cookies;Web服务;访问控制

Realization of Single Sign-on in Enterprise Information Portal

TAN Liqiu1,2, FEI Yaoping2, LI Jianhua2

(1. Information Science and Engineering College, Central South University, Changsha 410075 ;

2. Network Center, Central South University, Changsha 410075)

【Abstract】A single sign on system based on Cookies in enterprise information portal is presented, which solves the problem that the Cookiescannot support across-domain share. Further more the security is assured using Cookies and Cookie server to keep user’s credential information. Andit uses Web services to construct user authentication, uses LDAP to keep user information. At last, the paper proposes a new access control methodbased on user, user group, application and role in EIP.

【Key words】Enterprise information portal; Single sign-on; Cookies; Web service; Access control

企业信息门户[1](Enterprise Information Portal, EIP)就是通过统一的入口将企业所有应用集成起来,给不同层次的使用者提供信息服务,实现一次登录、多点通行。企业信息门户涉及Portal、内容管理、数据集成、单点登录等多方面的内容,而单点登录则是必须首先需要解决的问题。

目前有多种单点登录系统的实现,在这些系统中,其实现方法分为两种:一种是建立在PKI,Kerbose和用户名/口

一种是建立在Cookie的基础上,如IBM 令存储的基础上[2,4,5],

Websphreer, Bea WebLogic。

1 系统的结构

在企业信息门户中,由于面向的对象是整个Internet,用户群有各式各样,既有一般的普通用户,也有能为企业带来实际收益的增值用户,并且应用系统也不断增加,因此要求新系统在加入企业信息门户时,修改较小,最好有通用的接口供其调用,并且对于单点登录,无论用户通过门户登录,还是通过某个应用站点登录,都能做到单点登录,全网通行。

整个系统的中心为认证服务器、Cookie服务器和Ldap服务器。认证服务器是提供系统的认证服务,其主要支持的业务有提供用户注册服务、向所有应用系统提供认证服务,同时提供用户调用接口。Cookie服务器则保存当前活跃状态的Cookie信息。Ldap服务器则保存所有用户相关信息。企业门户网站和其他的应用网站在企业门户的单点登录系统中地位都是对等的,也就是只要在任何一个应用站点上进行登录,就相当于登录了整个信息门户。在每个应用中,都通过调用认证服务器的Web认证服务来实现用户身份的认证。在每个应用系统中,我们采用了二次鉴权,也就是用户统一集中管理,单点登录只解决用户登录和用户能否有进入某个应用的权限问题,而在每个业务系统的权限则由各自的业务系统进行控制。其原因是这些应用系统都有自己的权限和资源管理策略,并且都已经在各自的业务系统内部实现了。如果要采用统一集中的权限控制策略,那么各自的应用系统的修改都比较大。这种方式,对于所有系统都是自己开发时比较合适,而对于第三方系统以及以后新的应用系统的加入,都带来非常多的不方便,影响业务的正常运行,基于以上考虑,在系统中采用基于权限分散的统一认证系统来实现。

本文分别从共享Cookie、跨域认证、基于Web Service的统一认证、LDAP用户信息的保存以及分布式统一认证系统的实现上进行介绍。

2 共享Cookie的实现

在企业信息门户的应用中,大部分应用都是B/S结构的。由于HTTP协议是一种无状态的信息,对于一个Web站点来

作者简介:谭立球(1970—),男,博士生,主研方向:数据集成,电子政务,智能网站;费耀平、李建华,教授 收稿日期:2004-07-27 E-mail:[email protected]

——102

说,它是很难区分不同的访问用户,于是W3C联盟提出了采用Cookie对客户端信息进行标注。Cookie 是一小段文本信息,伴随着用户请求和页面在 Web 服务器和浏览器之间传递。用户每次访问站点时,Web 应用程序都可以读取 Cookie 包含的信息。Cookie包含的信息主要有Cookie名称、Cookie值、Cookie有效期、域名、URL路径、安全标志。Cookie信息常用Session Cookie和持久Cookie的方式来保存。在采用Cookie来存储用户信息时,将所有的信息都存储在客户端,存在安全隐患。因而在系统中,采用Cookie和Cookie_inf来保存用户认证信息,其中Cookie保存在客户端,而Cookie_inf保存在Cookie Server中,其中Cookie中只包含Cookie 的ID号,产生Cookie的Web服务器编号,以及用MD5加密后的摘要信息,用户加密的信息包括用户号码、Cookie ID、www服务器ID以及用户浏览器的IP地址组成。Cookie_inf则实质包含认证所需的用户相关信息,包括:

Cookie ID:它由认证服务器唯一生成,并且号码是足够长,可以减少用户欺骗攻击的风险。

用户信息: 包括用户登录的用户名和密码,其中密码与Ldap中保存的用户密码都是一样,为MD5加密以后的摘要。

Web Server ID: 就是在那个服务器上发起登录的。

用户身份信息:它来自Ldap Server,主要包括用户的权限信息。 用户浏览器IP:通过与用户IP的绑定,也就是SSO认证肯定是发自同一个IP地址,而来自不同IP的SSO请求同一Cookie可以看成是欺骗性的请求。

Cookie生成时间:Cookie在认证服务器中首次生成的时间。 Cookie 失效时间:它是对用户登录后没有及时退出而进行的一个安全补充,在失效时间段过后,可以将Cookie看成一个废弃的Cookie。

服务器。

(8) 应用A Web 服务器将生成的Cookie及数据返回给浏览器。

如果用户已经通过SSO认证了,现在需要访问同域名的应用B,那么其流程为:

(1) 用户向应用B发出请求,同时提交了Cookie。

(2) 应用B调用服务,根据Cookie的ID号码,向认证服务器发出验证请求。

(3) 认证服务器向Cookie Server请求Cookie_inf。 (4) 将Cookie_inf结果返回给认证服务器。 (5) 认证服务器将Cookie_inf返回给应用B。

(6) 应用B根据Cookie_inf的内容,生成应用返回给用户。

3 跨域认证的实现

由于安全原因,W3C联盟在提出Cookie时规定Cookie不能跨域共享,也就是Cookie能在同级域名及其子域名下实现共享,如对于域App.com,那么其子域Sub.App.com与同级域名站点Host1.App.com,Host2.App.com的Cookie能实现共享,而不能与域名App2.com共享该Cookie。为了解决企业信息门户中不同域名应用之间单点登录的问题,通过www主机之间的互相信任的机制实现跨域共享的实现,其SSO认证流程如图3所示。

建立在Cookie和Cookie_inf基础上的系统单点登录的认 证流程如图2所示。

图3 跨域认证流程

假设用户需要访问App.com站点,而App.com的信任主机为App1.com、App2.com等,那么其认证流程如下:

图2 单点登录系统认证流程

对于用户初次登录,认证流程为:

(1) 用户输入用户名和口令,并提交到应用A Web 服务器。 (2) Web 服务器接到用户名和口令后,向认证服务器发起请求认证服务。

(3) 认证服务器向Ldap Server 认证用户信息,验证用户名和密码。 (4) 将认证结果返回给认证服务器,如成功,则将用户身份信息返回。

(5) 认证服务器将相关信息生成Cookie_inf, 登记到Cookie Server中。

(6) 将登记结果返回认证服务器。

(7) 认证服务器将Cookie ID及Cookie_inf返回给应用A Web

(1)用户访问App.com站点。

(2)由于App.com的SSO Cookie 不存在,因此可以推论用户没有在App1.com登录,根据主机间相互信任的机制,重定向到App1.com,并且包括初始的URL地址。

(3)如果用户曾经登录到了App1.com,那么Cookie会随着http请求发出,如果用户没有登录,那么可以在仿照上一步骤选择App.com的另一信任站点,再次进行重定向。

(4)App1.com发送http 重定向到最初的服务器(App1.com),并且用SSO Cookie作为参数。

(5)浏览器重定向到App.com,并且将App1.com的SSO Cookie作为参数。

(6)Web服务器将Cookie 发送到认证服务器进行认证。

(7)认证服务器向Cookie Server获取该Cookie的Cookie_inf。 (8)Cookie Server返回Cookie_inf结果。 (9)认证服务器将Cookie及Cookie_inf返回App.com,App.com生成本域名的Cookie.

(10)将Cookie及应用返回给用户浏览器。

4 基于Web Service的统一认证

Web Service是一个独立的、基于标准的应用,它是基于互联网标准和XML技术来实现的,用以描述、发布到网络

—103—

供其他应用程序调用服务。Web Service的主要目标就是在现有的各异构平台的基础上构筑一个通用的与平台、语言无关的技术层。各种不同平台的应用依靠这个技术层来实施彼此的连接和集成。Web Service是一种部署在Web上的对象/组件,具备完好的封装性、松散耦合等特征。就DCOM、CORBA、RMI等分布式对象模型而言,Web Service能实现客户端与系统提供服务之间实现一种松散的耦合,通过XML/SOAP实现基于Internet情况下的消息交换;WSDL对服务进行描述;UDDI对服务进行注册。在系统中采用Web Service对认证服务进行封装,其一般的实现步骤如下[1]:

(1) 开发认证应用SSOLogin,该应用可通过JavaBean、EJB实现,该应用的输入参数为用户浏览器IP、发起SSO登录的Web服务器ID、用户名、密码。返回参数为Cookie ID、Cookie_inf;

(2) 为Web Service创建服务描述文件WSDL; (3) 在应用服务器中布置Web Service;

(4) 将Web Service发布到本地UDDI注册中心;

(5) 应用程序客户端检索WSDL文件产生一个客户端代理对象; 客户端通过所产生的客户端代理对象而实现对Web (6) 应用时,Service的调用。

6 权限管理

随着企业门户上的应用越来越多,所有的系统都共享一

套基本的用户数据。权限管理的任务是控制每个用户在每个应用的访问权限,而此访问权限并不包括用户每个业务的具体权限,因为每个用户进入每个系统后,在每个业务系统中还要对用户进行二次鉴权。在本系统提出了一套基于用户、用户组、业务和角色相结合的身份控制,实现如下:

设系统定义了m个用户分别为U1、U2、…、Uj、…、Um 设系统定义了n个业务分别为A1、A2、…、Ai、…、An

设系统定义了p个用户组分别为G、G2、…、Gk、…、Gp。用户组为用户和其他用户组的的组合,表达为:

Gk=[U1][∪U2][∪…][∪Um][∪G1][∪G2][∪…][∪Gk-1][∪Gk+1][∪Gp]

式中[]表示可选的意思,该公式表明,一个用户组可以定义为数个用户及其它用户组的组合。

设系统定义了q个角色组分别为R1、R2、…、Rl、…、Rq。角色为业务与其他角色的组合,表达为:

Rl=[A1][∪A2][∪…][∪An][∪R1][∪R2][∪…][∪Rk-1][∪Rk+1][∪…][∪Rq]

该式表明,一个角色组可以定义为数个角色及其他角色组的 组合。那么对于用户Uj(j∈{1,2,…,m})来说,其权限可以定义为

P[Uj]=U(P[Gk]∩Uj∈Gk)[UA1][UL][UAn][UR1][UL][URq]

k=1p

发布后可在Web工程的WSDL文件下面找到两个.wsdl 文件: SSOLogin-service.wsdl,SSOLogin-binding.wsdl。SSOLogin-service.wsdl文件主要描述了这个Web services的服务访问点,SSOLogin-binding.wsdl文件则描述了这个Web services的通信消息的数据结构、每个访问点支持的操作、特定的端口类型的具体协议和数据格式规范的绑定等信息,其具体的含义可以参考使用WSDL部署 Web服务[6]。

也就是用户Uj 的业务权限可以用用户所属的用户组权限与单独授予的业务权限以及所授予的角色权限来表达。

通过以上设置,可以获得灵活多变的权限控制组合,如对一个用户授权,他既可以集成所在用户组的权限,又可单独授予其某一业务的权限,同时也可授予某些角色的权限。

5 LDAP目录服务器的使用

LDAP的英文全称是Lightweight Directory Access

都简称为LDAP。它是基于X.500标准的,与X.500Protocol,

不同的是LDAP支持TCP/IP。LDAP中的信息都被存储在目录中,LDAP不是关系型数据库,它的信息目录结构类似于UNIX的文件系统,这种树-叶结构使LDAP有很好的扩充性,而且查询速度比关系型数据库要快。大多数的LDAP服务器都为读密集型的操作进行专门的优化,也就是如果应用中信息读取操作很多,而修改信息很少的话,那么可以采用LDAP数据库。从LDAP服务器中读取数据的时候会比从专门为 OLTP优化的关系型数据库中读取数据快一个数量级。

因而系统采用LDAP来保存用户信息,除了可以有很快的检索效率,同时因为存储采用目录树结构,可以对用户进行分组控制。例如,如果想让甲公司人事部下的所有用户来访问某项应用,那么可以用“ou=人事部,u=甲公司”所指向的用户对象来访问应用A。在具体的应用过程中,系统采用Active Directory作为用户信息保存,在初始阶段,需要在Active Directory管理器中创建一个类别,该类具有如下属性:

公用名:inetOrgPerson LDAP显示名:inetOrgPerson 唯一的X500对象ID:1.21.23.25.2 父类别:organizationalPerson 类别类型:结构

在“常规”页中,类别改为“inetOrgPerson”

在“关系”页中添加父类别“mailRecipient”,添加可能的上级、“person”、“top”。 “organizationalPerson”

7 小结

本文介绍了一个企业信息门户中单点登录系统的实现,

系统实现基于Cookies的单点登录系统,解决了SSO中Cookies不能跨域共享的问题,采用Cookies和Cookie Server来共同保存用户身份信息,具有较好的安全性。同时采用Web服务来实现统一的身份认证,实现了基于LDAP的用户身份信息的保存,最后提出了企业信息门户中一种基于用户、用户组、应用以及角色相结合的权限管理方法。目前该系统仅实现了基于B/S的单点登录认证,今后将考虑把SSO引入到B/S应用与C/S应用相结合,同时考虑启用与LDAP相结合的证书机制,进一步加强系统的安全性。

参考文献

1 孙晋文, 肖建国.基于Web Services的现代企业内容管理与知识集成技术[J].计算机工程, 2003, 29(20): 72-74

2 李小平, 阎光伟, 王轩峰等. 基于公开密钥基础设施的单点登录系统的设计[J].北京理工大学学报, 2002, 22(2):209-213

3 Samar V. Single Sign-on Using Cookies for Web Applications. IEEE 8th International Workshops on Enabling Technologies: Infrastructure for Collaborative Enterprise. Palto Alto, Califorina 1999-06:16-18 4 刘启新, 蒋东兴, 石 碞等. 网络应用系统统一口令认证的研究与实现[J]. 计算机工程, 2000, 26(增刊): 56-58

5 任 栋, 刘连忠. Web应用环境下安全单点登录模型的设计[J].计算机工程与应用,2002,38(24):174-176

6 柴晓路, 梁宇路. Web Services技术、构架和应用.北京:电子工业出版社, 2003-01

——104


相关内容

  • 统一身份认证平台
  • 统一身份认证平台设计方案 1) 系统总体设计 为了加强对业务系统和办公室系统的安全控管,提高信息化安全管理水平,我们设计了基于PKI/CA技术为基础架构的统一身份认证服务平台. 1.1. 设计思想 为实现构建针对人员帐户管理层面和应用层面的.全面完善的安全管控需要,我们将按照如下设计思想为设计并实施 ...

  • 探讨校园信息门户平台的设计策略
  • [摘 要]伴随计算机技术的不断发展及校园网的日益普及,数字化校园在信息应用程度方面也在逐渐深化.然而原有系统因所使用的数据库及开发技术不同,信息孤岛现象十分严重.本文基于大学校园信息化集成相关需要,对数字化信息门户系统开展了细化设计,最后详细描述了系统的软件实现及总体结构等. [关键词]校园 信息门 ...

  • 北京科技大学信息门户平台
  • 用户使用手册 北京科技大学信息门户平台 用户使用手册 信息化建设与管理办公室 用户使用手册 目 录 1. 2. 信息门户总体介绍 ..................................................................................... ...

  • 统一用户及权限管理
  • 文件编号: 统一用户及权限管理平台 解决方案及设计报告 版本号 0.9 拟制人 王应喜 日期 2006年6月 审核人__________ 日期___________ 批准人__________ 日期___________ 目录 第一章 1.1 1.2 1.3 1.4 第二章 2.1 2.2 2.3 ...

  • 第二批中职示范校-数字化校园建设方案
  • (项目学校名称)学校 国家中等职业教育改革发展示范学校建设计划项目建设方案 (申请批复) 所属省份 主管部门 编制人员 编制日期 联系方式 (省级教育部门盖章) (盖章) 办公电话 手机号码 电子邮箱 (项目学校名称)学校示范学校项目建设办公室(盖章) 12 "机构代码"是指按照 ...

  • 项目信息门户的概念及实施分析
  • 第33卷第7期2005年7月 同济大学学报(自然科学版) JOURNA L OF T ONG J I UNI VERSITY (NAT URA L SCIE NCE ) V ol. 33N o. 7 Jul. 2005 项目信息门户的概念及实施分析 戴 彬 (同济大学工程管理研究所, 上海 2000 ...

  • 浅谈现代企业信息系统集成应用
  • 经管视线 浅谈现代企业信息系统集成应用 王萌 西北师范大学网络教育学院,兰州石化职业技术学院 徐毅博 甘肃烟草工业有限责任公司 摘要:系统集成是以用户的应用需要和投入资金的规模为出发点,综合应用各种计算机网络相关技术,应用开发等大量技术性工作,使集成后的系统能够满足用户对实际工作要求的全过程.本文针 ...

  • 职业学校数字化校园规划方案
  • 职业学院数字化校园建设规划方案及建设内容 职业学院数字化 校园建设规划方案及建设内容 济南国子数码科技有限公司 二〇一四年七月 目录 第一章数字化校园平台项目建设目标与规划................................................ 2 1.1系统建设目标.... ...

  • 智慧学校系统介绍
  • 智慧学校系统介绍 项目背景 随着新一轮信息技术变革和知识经济的加速发展,信息化正酝酿着重大变革和新的突破,智慧城市已成为当今世界城市发展的共同追求和强劲动力,是城市信息化发展的高级阶段.省在"十二五"期间提出了全省"数字"建设要求:市委市政府以"海洋 ...