基于RBAC的 CRM动态用户访问控制模型研究
2009-03-20梁莹
梁 莹
[摘 要] 通过研究CRM用户管理系统的特点,提出一种新型的基于RBAC的CRM动态用户访问控制模型。并进一步给出了基于J2EE架构的实现模型。
[关键词] 客户关系管理;基于角色的访问控制; J2EE架构
[中图分类号]F270.7;TP315[文献标识码]A[文章编号]1673-0194(2009)02-0071-02
1 引 言
客户关系管理(Customer Relationship Management,CRM) 源于以“客户为中心”的新型商业模式。CRM的目标是一方面通过提供更快速和周到的优质服务吸引和保持更多的客户,另一方面通过对业务流程的全面管理来降低企业的成本。 CRM系统作为实施CRM的技术手段,利用网络和信息技术,针对营销、销售、客户服务、客户交互和客户分析等面向客户的业务领域提供了一个业务自动化平台。该平台集成了企业内部和外部应用,支持企业管理人员、营销人员 、客户等的沟通和协作,其用户管理具有用户类别多、角色交叉重叠、功能权限细分、数据访问权限细分、权限动态变化、需要个性化的信息服务等特点,因此如何对用户访问控制进行建模和实现是一个比较突出的问题。
基于角色的访问控制(Role-Based Access Control,RBAC) 引入角色这一中介,将访问许可权限分配给角色,然后再将角色授权给用户。通过分配角色给用户,降低了访问控制的复杂性。本文在RBAC模型基础上,通过增加团队来满足CRM中的动态数据访问控制。同时通过增加个性化数据集服务,建立面向用户的个性化服务模型,既可实现用户当前的、明确的需求,也能满足用户长远的、潜在的信息需求。
2 RBAC模型
RBAC的核心思想是把访问权限赋给角色而不是用户,用户通过它所属的角色来获得访问权限[1]。基于角色的访问控制(Role-Based Access Control,RBAC)模型,较以往的自主型访问控制(Discretionary Access Control,DAC)模型和强制型访问控制(Mandatory Access Control,MAC)模型相比,具有更强的灵活性和更广泛的适用性。它主要引入了角色这一概念,角色的实质是一个或一群用户在组织内可执行的操作的集合。在RBAC内,角色为访问控制的主体,角色决定了用户对资源所拥有的权限以及可以执行的操作,其中访问控制策略在RBAC中主要体现为用户/角色、角色/权限和角色/角色之间的关系,另外, RBAC中引入 “角色继承”机制,即子角色继承其父角色的所有属性和权限。RBAC具有如下特点:授权管理灵活;授权管理机制更加接近实际、更加社会化;用户、角色和权限是多对多的关系;系统的操作用户与数据对象没有直接的联系。RBAC模型如图 l所示。
3 基于J2EE的CRM的设计
3. 1系统的3层体系结构
J2EE架构本身不支持RBAC。系统是在Web应用与EJB容器之间,通过扩展数据业务逻辑层来实现RBAC系统的。CRM系统遵循J2EE规范,采用了先进的3层体系结构,分别为数据表示层、数据业务逻辑层和数据存储层,分别运行于Web服务器、应用服务器和数据库服务器,系统中的业务逻辑层是整个系统的核心,部分业务逻辑位于Web服务器端,另一部分位于应用服务器端。该架构一个显著的特点:CRM系统中基于RBAC的授权访问、角色管理和客体的操作授权主要由角色管理 Servlets组件来实现。系统中数据存储层的部分授权访问是由角色管理 Servlet和 EJB组件协同完成的。本文主要介绍与RBAC系统相关的实现。系统基于J2EE架构的受限访问模型原理如图2所示。
3. 2CRM 中基于RBAC的实施
对CRM用户访问控制进行建模,首先需要分析CRM系统的用户管理和服务特点[2]。
(1)用户类别多、权限变化快。CRM系统不仅涉及企业销售部、市场部、财务部、人事部 、售后服务部等多个部门的几十个职能角色 ,而且涉及企业不同等级的交易客户、潜在客户等角色。企业由于业务变化,有经常性变动员工权限的需要。
(2)用户职能交叉重叠。CRM系统涉及的角色之间存在复杂的业务关系。不同部门或职能的用户会进行同样的操作,例如销售部经理和员工都可以进行餐费申请操作。
(3)数据隔离。在CRM系统中销售人员对资源(如客户资源)的访问是受限制的,他们只能查看到自己负责的客户信息,不能访问其他员工负责的客户信息,因而需要很好的数据隔离措施。
(4)需要个性化应用。每个用户随着业务范围的扩展和工作的进展,需要个性化的信息服务。
在基于 Web的RBAC应用中,用户访问过程实质上是一个客户程序与组件间的交互过程。具体过程简要描述如下:用户登录,欲访问后台数据库系统,首先要建立同RBAC系统的会话连接,用以检测用户的合法性;RBAC系统指定用户的角色,从而确定其访问许可,其中这些角色的选择符合角色的限制条件、角色等级限制和最小权限原则;利用访问组件,实现该角色所具有的相应的系统操作功能。用户经选择某项功能,访问控制组件将创建用户同RBAC系统的会话,用户取得授权,然后通过数据库访问组件对数据库进行访问,并进一步返回结果。
CRM 中的整个RBAC系统的实现主要依赖于Servlet、EJB组件。其中访问控制组件是RBAC系统的核心,访问控制组件由3个主要模块组成:授权管理模块、访问主体关系管理模块和权限分配模块[3]。授权管理模块提供对授权的基本维护管理,如增加、删除、修改等,同时实现对授权之间的互斥、包容关系的定义;访问主体关系管理模块负责处理访问控制系统中各用户、各种角色与不同职能部门机构之间的授权关系管理;权限管理模块负责对用户、角色的添加、删除、权限分配等操作,同时实现特殊授权的指派处理。
4 结束语
基于角色的访问控制(RBAC)是信息与网络安全领域的一种较新的访问控制技术。本文在J2EE平台上结合组件技术,提出了一种基于Web角色的RBAC应用模型,围绕企业客户关系管理的实际需求,对RBAC在系统中的设计实现进行了分析,并对实现CRM系统中基于J2EE的访问控制做了探讨。
主要参考文献
[1] 李仲,杨宗凯,刘威. 一种基于 RBAC的实现动态权限管理的方法[J]. 计算机技术与发展,2006,16(10):1-4.
[2] 夏志雄,张曙光. RBAC在基于Web管理信息系统中的应用[J]. 计算机应用研究,2004(7):198-199.
[3] 沈显君,庄超,杨进才,等. 基于RBAC的移动代理安全策略[J]. 计算机工程与设计,2005,26(2):329-331.