ASP平台安全认证技术的研究与实现

摘要:随着应用服务提供商(ASP)商业模式在国内的发展,为满足ASP平台集成多种异构应用系统的实际需求,提出了一种采用统一安全认证技术进行轻量级应用集成的解决方案。方案中采用目录服务数据库统一存储用户身份和权限信息,使用会话令牌保证用户身份的持久有效性,通过策略代理保护应用服务资源的安全,并对用户的访问进行统一授权和控制。为实现用户在平台和应用系统之间的单点登录,提出了结合令牌和代理进行身份信息传递与验证的实现方案,尤其是解决了跨域单点登录的难题。该方案已成功应用于“上海电信理想商务ASP平台”。

0 引言

在国家863计划与各地政府的大力支持下,我国企业信息化进程正在如火如荼地展开,中小型企业由于资金和技术的缺乏,信息化建设仍困难重重。ASP(Application Service Provider,应用服务提供商)模式的出现无疑给中小企业信息化发展带来了一种最佳的商业实现手段。企业以低廉的价格,通过租用的形式从ASP提供商那里获得所需的各种信息化产品,如ERP、CRM、SCM、PDM等,并且可以享受优质的售后服务与技术支持[1]。

ASP模式的产生在另一方面又为应用系统集成带来了新的发展机遇,作为ASP提供商,为了最大程度满足企业用户的需要,在ASP平台中往往会尽可能多地集成各类应用系统,如同时集成了OA、ERP、CRM、SCM等等。而集成的这些应用软件可能来自传统的软件商,也可能来自其它ASP提供商。这种层层嵌套的模式,虽然给用户提供了使用上的方便,但却给ASP提供商开发企业平台带来了较大的难度。此外,整个平台的安全认证体系也决定了系统集成的难易程度,采用统一的身份认证,资源授权与用户管理,可以替代各应用系统中不同的认证与授权方式,方便集成接口的设计,开发工作也大大简化。

1 ASP平台安全认证问题的提出

ASP模式在中国的发展刚刚起步,许多关键技术仍处于研究与验证阶段,ASP平台与应用系统之间的集成方式也多种多样,除了轻量级的界面集成,还有不同应用系统之间的数据集成,以及基于整个平台的业务流程的集成,数据集成与业务集成虽然在许多企业实际应用种是十分需要的,但基于目前的技术力量,这些方式的集成还远没达到商业运作阶段的要求,因此,在现阶段,ASP提供商通常采用的方法仅是一种基于用户界面的集成,通过利用一些较为成熟的EP(Enterprise Portal,企业门户)系统,并加上统一的身份认证与授权技术来达到最轻量级的平台与应用的集成。这种方式集成度虽然不高,但轻便灵活,易于实现,可以适应集成多种异构系统的需要[2]。

基于对ASP模式与集成技术的研究,我们认为作为一个较为完善的ASP平台,它应该包括企业门户、安全认证子系统、运营支撑子系统、使能子系统和业务运作子系统五个部分,如图1中灰色部分所示,其中安全认证子系统又是由身份管理,身份认证和资源授权三大模块组成,该子系统的设计实现正是目前ASP平台最急需解决的问题,也是本项目实施中的ASP平台首要关键模块。



图1  ASP平台基础架构(灰色部分)

在传统信息技术应用模式下,各种应用系统都提供各自独立的用户身份认证和策略管理的功能,这些异构的、分散的应用系统一旦集成到一个统一的ASP平台之后,情况就变得极为复杂。如果用户的身份和权限还是由这些应用系统自己去管理,那么对于认证体系的实现和重要资源的保护就不可能得到严格的控制,ASP平台会存在许多严重的安全隐患,管理也会变得非常繁琐。此外,如果用户在登录ASP平台经过一次认证后,在登录这些不同的应用系统或在其间切换时,还需要不断地输入身份信息,必然会造成其对平台性能的不满。因此,ASP平台就必须提供一种机制,让所有的用户在平台门户中进行一次性的登录,在身份得到确认后,可随意地访问各种应用系统。这种随意的访问还必须是基于授权的,即在用户对资源访问之前,必须经过ASP平台访问控制系统的检查,以保证该用户对该资源有使用权限。这样,不仅可以避免多系统入口的风险,也可为平台的管理提供了极大的便利。

基于这样的思想,可以在ASP平台中设置专门的认证服务器,将所有应用系统的用户信息都存储在该服务器的数据库中,进行统一的用户管理。使用单点登录(SSO)技术可以实现用户一次登录,随意访问的需求;使用LDAP目录服务器可以方便地存储用户、角色、权限及策略信息。

2 ASP平台安全认证技术的实现方案

2.1 单点登录技术的应用

SSO是指通过一次身份认证即可访问多种不同资源[3]。这种认证方式不仅增加了系统的安全性,还最大程度上提高了企业员工的工作效率。SSO的理论基础是J2EE中的安全技术(JAAS),它的实现主要分成两类:一类是使用认证代理进程(proxy process)在用户和各个应用系统交互过程中,代替用户完成相应应用的认证过程,如IBM Tivoli Access Manager;另一类是建立独立的认证平台,利用策略管理软件实现访问策略控制和SSO,如Sun ONE Identity Server。ASP平台由于集成了多项来自不同厂商的应用系统,在部署上可能需要跨越因特网,因此为了保证数据传输的安全性以及对应用系统的最小改造量,在单点登录上采用第二类方式实现较为适宜,其原理如下。

用户访问ASP平台门户,在身份得到认证服务器的验证后,该用户即可拥有一个带有令牌的Cookie,其身份信息就包含在这个令牌中,此后用户访问平台其它资源时,部署在应用资源端的策略代理就会根据令牌确认其身份,省去了用户重复输入认证信息的麻烦。

ASP平台集成的应用软件系统通常分布在其各自的IDC中,用户在ASP平台中切换应用时无疑会要涉及到跨域访问,而一旦跨域,用户所持有的、保存在Cookie中的令牌就会随之消失,SSO将无法完成。为解决跨域SSO的问题,可在ASP平台认证服务器上建立一个CDC(Cross Domain Controller,跨域控制器),在各个应用服务器上建立CD SSO Servlet,通过CDC和CD SSO Servlet之间的通讯保证跨域的SSO的实现。其具体流程如图2所示:



图2  跨域单点登录的实现流程

① 当用户访问域2时,请求被策略代理截获。
② 跨域单点登录Servlet检查请求中是否带有令牌,有则放行,没有则返回域1。
③ 域1中跨域控制器检查其中是否有令牌,没有则要求用户验证,有则将令牌发送给域2。域2发现令牌,即允许用户访问其资源。
④ 当用户再访问域3时,仍通过跨域单点登录Servlet向域1跨域控制器发送信息。
⑤ 域1将令牌发送给域3,域3即可允许用户访问其资源。

2.2 访问控制技术的应用

访问控制技术一般可分为自主访问控制、强制访问控制与基于角色的访问控制(RBAC,Role Based Access Control)三种实现方法[4],ASP平台采用RBAC方法,其优点在于用户与权限不直接发生关联,而是通过角色将用户与权限联系起来,从本质上说角色是一组权限的集合,通过为用户分配角色即可达到对资源进行访问控制的目的。ASP平台采用统一的资源授权机制,即在用户通过认证访问应用资源之前都必须与平台认证服务器进行权限校验,正确后方允许进入。其具体流程如下图所示:



图3 访问控制的实现流程

① 用户登录ASP平台,经身份认证后,向应用资源发出请求;
② 用户对资源的请求被部署于应用服务器端的策略代理截获,策略代理将其身份信息传递到认证服务器进行其权限的判定;
③ 认证服务器通过与LDAP数据库中为该资源所定义的策略进行比较从而作出判断,或者允许访问,或拒绝访问。

上述流程中所谓的应用资源,主要包括了两种形式,一种是URL,它可以是一个静态页面、媒体文件,也可以是一个URL所代表的应用;另一种是J2EE容器或者说一个应用程序。而策略代理(Policy Agent)则是部署于应用服务器端的一个认证系统组件,用于截获用户对于资源的请求,并将其认证信息转发给认证服务器,策略代理组件不仅可以安装在企业内部的应用服务器上,也可以部署在外部其它ASP提供商的应用服务器以及Web代理服务器上,可以充分保证整个平台系统中的所有需保护的资源都得到安全认证。

对于每项应用资源,必须通过定义相应的策略对其进行访问控制,一条策略通常包含规则、主体和条件三个组成部分(策略=规则+主体+条件):

 规则,即指对何种资源具有怎样的一种操作,如对某URL资源允许用户访问;
 主体,即该规则是针对何种角色或用户组,如LDAP目录服务器中的一组用户;
 条件,即该规则在何种条件下生效,如指定可以访问的时间和IP地址范围等。

通过用户角色的配给,策略代理的部署与设置,以及认证服务器和LDAP服务器中策略的定义,ASP平台可以达到对所有应用资源按照实际需求进行统一的细粒度的保护。

2.3 LDAP目录服务器的应用

目录服务器(Directory Server)在ASP平台安全认证系统中地位举足轻重,它用于存储系统中所有用户的身份信息,角色信息和策略信息。基于轻量级目录访问协议(LDAP)的数据库不同于传统的关系型数据库,其数据信息不是简单地存放在一张张关系表中,而是基于树状目录来存储,这样不仅可以清晰体现一家企业的内部组织结构,还可以使各种数据具有了继承的能力;此外,LDAP数据库中存储的通常是需经常读,但不要经常写的数据,其读取速度比关系型数据库要快至少一个数量级,其数据模式(Schema)也易于扩展。基于LDAP数据库的多方优势,以及安全认证系统中用户身份、角色、权限信息的特点,采用LDAP目录服务器可以保证ASP平台高效稳定地运作,以及应用集成灵活易扩展的需求[5]。



图4 LDAP目录树设计

ASP平台LDAP数据库主要由三颗“树”组成,即在ASP根节点下分别设有用户信息树、角色树和权限树。用户信息树可按照在ASP平台注册的企业用户设置,每个企业即为一个“分支”,企业下面还可设置部门分支,最终企业员工将对应树中的“叶子”节点。角色树的设计可以按照ASP平台超级管理员,企业管理员,部门管理员、员工这样的等级来分配角色。权限树的设计是根据访问控制中各级资源的权限信息来组织,一个单独的应用资源即为一个分支,对该资源的访问策略即为一片树叶[6]。通过这样的一种数据结构,ASP平台系统可以方便地对其用户的认证信息,权限信息进行快速的读取。对于新注册的企业用户或是新集成的应用资源都可以轻而易举地通过挂接分支的方式加以扩展,并予以管理维护。

2.4 统一安全认证对现有系统的改造

应用服务提供商为了满足中小企业信息化的需求,需要ASP平台集成尽可能多的应用系统资源,这些资源当中不仅包括通用的信息化系统如办公自动化(OA)、客户关系管理(CRM)系统等,还包括了许多专业应用服务资源,如面向制造行业的计算机辅助设计与制造(CAD/CAM)系统。因此ASP平台集成的通常是比较成熟的产品,其中一些可能还并不适应ASP这种商业模式。采用统一的安全认证技术可以使这一问题得到较好的解决,且对现有系统的改造将会非常简便,对其运行性能也没有任何影响。

基于统一安全认证的ASP平台在应用集成中将对应用系统做出以下几方面的改造:第一,由于对用户的身份认证集中在平台登录时,且通过单点登录机制中的令牌保证平台用户的合法性,因此应用系统中的认证模块将没有继续存在的必要,它默认接受平台传递给它的用户信息,这些信息可以通过HTTP头、URL等多种方式进行传递。第二,应用系统中的用户信息需要保持与ASP平台LDAP数据库中的一致,因此需要为平台开放其数据库中关于用户信息的表单,并以平台数据库作为权威数据源。第三,ASP平台中只存储用户的基本信息,不涉及其在应用中的权限问题,因此应用系统需要在接受平台传递来的用户信息后对其在该应用中的权限进行设置。通过以上三点的简单改造,应用系统可以与ASP平台实现轻量级的、灵活易扩展的整合,且不涉及应用系统核心业务层的任何内容,其运行性能也将完全由应用系统本身性能来决定,不受平台集成的任何影响。

3 理想商务ASP平台安全认证系统的实现

基于上述ASP平台安全认证系统的基本理论,在国家863基金项目的支持下,上海电信“理想商务”ASP平台已于近期正式上线,该ASP平台集成了办公自动化、客户关系管理、企业邮箱、即时通讯等10多项应用资源,并已发展了上千家企业用户。理想商务ASP平台安全认证系统采用了SUN公司的认证服务器和目录服务器进行统一的用户身份认证与资源授权。SUN认证服务器主要由四个模块组成:访问管理、身份管理、服务管理和委托管理。其中访问管理模块包括了单点登录、策略管理、身份认证和日志管理等功能,该模块是其认证产品的核心,也是实现上文所述的单点登录和访问控制方案的实现基础[7]。

在理想商务ASP平台开发过程中,项目组在SUN目录服务器中定义了LDAP目录树的基本结构,其根为o=idealbiz.com.cn,客户关系管理的应用资源节点为cn=crm,ou=policy,o=idealbiz.com.cn;根据用户信息的属性特点为平台添加数据模式(Schema),如每家企业用户均具有三个基本属性:企业帐号(e-code),用户名(u-code)和密码(passwd);在应用资源(如客户关系管理系统)中部署了策略代理,在策略代理中使用HTTP头的方式将平台用户信息传递给应用系统,并屏蔽了应用系统中的用户认证模块;通过使用SUN提供的管理界面定制了用户角色和应用资源的访问策略,如定义了客户关系管理用户组角色和crm.idealbiz.com.cn的保护策略。为保证ASP平台的安全稳定的运行,项目组使用了双认证服务器和双目录服务器的结构,如图5所示。在两台认证服务器之间设置了集群,当一台出现故障时,可立即由另一台接管所有的用户认证和授权工作;两台目录服务器均配置为主目录服务器,两者之间将定时进行数据的同步,如有需求还可在其他安全环境中部署从目录服务器,对主目录服务器的数据进行定时备份。此外,为了使各个采用关系型数据库存储用户数据的应用系统(如客户关系管理使用的是Oracle数据库)中用户信息与主目录服务器同步,使用了SUN元目录服务器(Meta Directory Server)连接LDAP服务器和RDB服务器,并进行数据格式的转换。



图5 双认证服务器和双目录服务器结构图

4 结束语

基于ASP模式下的应用系统集成与安全认证系统与传统EAI和AAA相比都发生了许多变化,同时也为ASP平台设计和应用集成带来了许多困难。由于应用的不确定性与多样性,平台必须灵活且易于扩展,因此关于安全认证中的身份管理,授权管理就必须有一个统一的子系统来进行控制。利用SUN公司的认证服务器与LDAP目录服务器,可以较为轻松地实现用户统一管理中的单点登录、访问控制与资源授权等功能。当然这些产品只是提供了一些设计基础,在此之上必须利用它们的API进行诸如数据模式(Schema)、策略、应用的扩展,为了能满足大容量用户的需求,同时还必须很好地设计目录服务器的树型结构,以保证大流量的访问控制顺利进行。

随着ASP模式的不断发展,以及各种集成手段,认证技术,授权技术的改进,系统将进行不断地优化升级,平台集成技术将逐步从基于用户界面集成向业务逻辑商业流程集成方向发展,安全认证体系也将得到不断的优化与完善。

参考文献

[1]  ZHOU Nande. Study on ASP-based Information Technology with Multiple Ties [J]. Computer Application Research, 2004, 4: p55~57 (in Chinese) [周南德. ASP模式多层结构信息技术的研究[J]. 计算机应用研究,2004,04:55~57]

[2]  XIAO Wangxian, LIU Jiangning. Research on Model of Enterprise Data Integration [J]. Computer Engineering and Science, 2004, 26(5): p49~51 (in Chinese) [肖万贤,刘江宁. 企业数据集成模型的研究[J]. 计算机工程与科学,2004,26(5):49~51]

[3]  CHEN Hongbing, SUN Xia. Study on Single Sign-on Technology [J]. Computer Time, 2004, 5: p3~4 (in Chinese) [程宏斌,孙霞. 单点登录技术研究[J]. 计算机时代,2004,5:3~4]

[4]  HUANG Kai, CHEN Yun, YAN Ruzhong, et al. Research and Application of Role-based Access Control in B/S System [J]. Computer Engineering and Application, 2003, 20, p227~229 (in Chinese) [黄凯,陈云,阎如忠,等. 基于角色的B/S系统访问控制的研究与应用[J]. 计算机工程与应用,2003,20:227~229]

[5]  ZHANG Jing, TANG Yiping. Realization of RBAC Model Based on LDAP and EJB [J]. Computer Application, 2003, 23: p131~133 (in Chinese) [张锦,汤一平. 基于LDAP和EJB的RBAC模型的实现[J]. 计算机应用,2003,23:131~133]

[6]  TANG Jianping. Construction of Fundamental Information Platform of Enterprise Based on the Technology of LDAP [J]. Computer Application, 2003, 11: p66~68 (in Chinese) [唐建平. 基于LDAP技术的企业基础信息平台构建[J]. 计算机应用,2003,11:66~68]

[7] SUN One Identity Server’s document (in English):http://docs.sun.com/app/docs/doc/817-5706

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值