摘要:提出在数控机床信息集成系统中运用基于角色的访问控制技术,实现权限的清晰分明和化原则,防止权限滥用。有效地解决了数控机床信息集成系统中的权限管理问题,降低系统中权限管理的复杂性,提高系统的可维护性。
机床设计行业自身的特点是:设计工作量大,生产技术准备周期长。这种特点在精密机床上表现得尤为明显。由于每种机床的设计参数不同,结构各异,产品设计工作的重复率低。
一般来说,对应于不同的机床产品,都要重复进行设计、工艺、工装、技术文件的准备,设计任务量特别大,参与设计的部门多,时间跨度长,设计过程复杂,产品数据和设计过程管理难度大[1]。数控机床信息集成系统是一个面向多部门、多用户的信息集成系统,系统的访问要求严格,既要求权限清晰分明,又要求防止权限的滥用,需要实现权限的化。传统的访问控制,例如自主型访问控制(DAC),强制型访问控制(MAC)直接对用户进行权限的授予和取消[2]。当用户数量庞大且关系复杂时,权限的管理就变得复杂而困难。一个新权限的加入或者修改都可能导致需对源代码进行的修改。信息集成系统一般由很多个子系统组成,子系统由很多模块组成,模块又由很多功能项组成[3]。
本文提出 RBAC 技术在数控机床信息集成系统中的应用,在信息集成系统中设计和实现基于角色的访问控制,有效的解决在机床设计过程中错综复杂的访问权限控制问题。
1. 系统方案模型
1.1 J2EE 架构
采用 J2EE 企业平台架构构建数控机床信息集成系统。J2EE[4]架构集成了先进的软件体系架构思想,具有采用多层分布式应用模型、基于组件并能重用组件、统一完全模型和灵活的事务处理控制等特点。本信息集成系统逻辑上分为四层:客户层、应用层、业务层和持久层,如图 1 所示。
图 1 信息集成系统逻辑结构图
a. 客户层主要负责人机交互。可以使用户通过Web 浏览器访问,也可以提供不同业务系统的API、Web Service 调用。
b. 应用层封装了用来提供通过Web 访问本系统的客户端的表示层逻辑的服务。
c. 业务层提供业务服务,包括业务数据和业务逻辑,集中了系统业务处理。主要的业务管理模块包括项目管理、人员组织管理、设计信息管理和权限管理等几个部分。
d. 资源层主要负责数据的存储、组织和管理等。资源层提供了大型关系型数据库(如Microsoft SQL Server)的访问。
1.2 RBAC 模型
RBAC[5]即角色访问控制(Role Based Access Control)是由美国Ravi Sandhu 提出的,它解决了具有大量用户,数据客体和各种访问权限的系统中的授权管理问题。其中主要涉及用户,角色,访问权限,会话等概念。用户,角色,访问权限三者之间是多对多的关系。角色和会话的设置带来的好处是容易实施权限原则。在RBAC 模型中,将若干特定的用户集合和某种授权连接在一起。这样的授权管理与个体授权相比较,具有强大的可操作性和可管理性,因为角色的变动远远少于个体的变动。通过引入RBAC 模型,系统的终用户并没有与数据对象有直接的联系,而是通过角色这个中间层来访问后台数据信息。在应用层次上角色的逻辑意义和划分更为明显和直接,因此RBAC 通常使用于应用层的安全模型。
RBAC 区别于原有的角色/用户,采用新型的角色/权限关系,具有以下两个优点:
1) 减小了授权管理的复杂性,降低管理开销。
2) 灵活地支持企业的安全策略,并对企业的变化有很大的伸缩性。
目的是为了隔离 User(即动作主体,Subject)与Privilege(权限,表示对Resource 的一个操作,即Operation+Resource)。
Role 作为一个用户(User)与权限(Privilege)的代理层,解耦了权限和用户的关系,所有的授权应该给予Role 而不是直接给User 或Group。Privilege 是权限颗粒,由Operation 和Resource 组成,表示对Resource 的一个Operation。Role-Privilege 是many-to-many 的关系,这就是权限的。
在以往常见的模型中,对不同数据访问权限的控制主要通过不同用户进入不同的系统界面来实现,这样做的缺点是用户的角色不能设置太多,角色越多,所需要编写的系统界面就越多,这对于数控机床的实际的设计过程来说,会大大加重编程的难度并降低信息集成系统完全实现的可能性。为应对尽可能多的角色要求,本文提出一种通过分析各种角色的权限,来规定不同的角色的权限的方法来控制各个用户的权限。基于角色的访问控制示意图如图2所示。
图2 基于角色的访问控制示意图
基于角色的访问控制机制不同于以往的单层用户权限控制,其在传统的用户权限控制中加入一层角色层,带来以下优点:
1). 权限设置更加灵活多样
通过基于角色的访问控制分离了用户层和权限层,使得不必规定某个特定用户所具有的权限,而只需把权限分成若干集合,这样的集合就是角色。
2). 编程实现更加方便
传统的用户权限机制通过给不同用户设置界面入口来实现赋予不同用户的不同权限,这样,每添加一个用户,就需要改变整个系统的框架。而在用户层和权限层中加入角色层,可以使添加用户变得简洁,并且通过修改角色层来实现权限的赋予,会使编程变得简单。
2 用户需求的分析
在信息集成系统中,所涉及的用户有很多种,从以下的分析就可以看出信息集成系统的权限控制的复杂性。在实际情况中,远不止下面所列的三种用户,这三种用户是为常见的用户,对于数控机床的开发来说,还会有电气控制部分的设计人员,加工程序的设计人员等。
1). CAD 用户的需求分析
本信息集成系统的一个重要功能之一是数控机床床身的可视化设计。可视化设计的一般过程是指定的设计者根据自己的任务调出要修改的基本机床零件的三维模型据,发现与目标模型的差别,并修改基本构件以形成新设计零件。设计过程中要随时与其它环节联络,并检查与不打算修改的构件或总成的干涉与协调。CAD 软件是商业化三维软件,如Pro/E 等。在调出具体的CAD 三维数据模型前,设计者可能需要对该件进行浏览,因此将车身零部件的VRML 模型存入数据库。为了和其它不使用Pro/E 的人员进行模型数据库交流,还可以生成并保存STEP 文件;当然,为了能方便地找到这些数据,数据库内还必须保存参照机床零部件的件号、件名等信息,另外,诸如零部件的二维图图纸号、版本号、日期等也是不可或缺的信息。对干数控机床,还应有该产品的一些说明文件。,为了使设计者在早期对所设计的构件的动态特征有所把握,CAD 工作人员应能从数据库获取CAE 人员对参考机床构件及设计模型动态分析后的信息,因此存有CAE 分析结果图和分析结果描述文件。归纳CAD 人员的需求清单如下:
件号、件名、版本、CAD 模型数据、VRML 模型数据、STEP 文件、日期等。
2). CAE 用户的需求分析
CAE 分析人员在接受到一个新的CAD 模型STEP 文件时,他需要能立即从数据库里查找到该部件在参考机床上的典型载荷,他可能还需要知道在该部件中哪个或哪些零件比较关键,从而应该对其进行重点研究并通知CAD 设计人员。在对新的模型进行了分析计算后,他需要调出参照机床中对应模型的分析结果来进行比较判断。分析结果包括该模型的静态分析以及各阶模态分析。归纳CAE 用户的需求清单如下:
件号、件名、版本、CAE 模型、典型载荷图、静态结果、模态分析结果、结果说明等。
3). 管理人员的需求分析
在企业内部,管理人员因部门不同,项目不同,他们的需求也是各式各样。在本系统中,以企业设计部门级的信息管理定位,故取项目信息管理来统一综合处理有关信息,因为任何一件设计活动都可以定义为一个项目,也必定属于某个项目,项目间的时序、隶属和成果的给出和转移就是设计活动的表现形式,其中的信息就是设计活动的动态信息。比如,有关人事信息的需求简单概括为:管理人员可以知道某部件是由哪些人,在什么时间设计的,以及这些人员的相关信息。管理人员需求说明清单如下:
件号、件名、设计人工号、设计人姓名、设计人所属角色、设计人所属部门、设计人职务、电话号码、E-mail 地址等。
3 权限管理数据库设计
根据RBAC 模型的权限设计思想,建立权限管理系统的对象模型。如图3 所示。
图3 基于角色的数据库结构
对象模型中包含的基本元素主要有:用户、用户组、角色、角色权限、数据对象、资源对象、功能和操作。主要的关系有:分配角色权限、分配用户角色。在基于角色的数据库结构中:
1) 用户:是权限的拥有者或主体。用户和权限实现分离,通过授权管理进行绑定。
2) 用户组:一组用户的集合,具有相同的权限分配。
3) 角色:权限分配的单位与载体。角色通过继承关系支持分级的权限实现。
4) 操作:完成资源的类别和访问策略之间的绑定。
5) 权限:对受保护的资源操作的访问许可,是绑定在特定的资源实例上的。对应地,访问
策略和资源类别相关,不同的资源类别可能采用不同的访问模式。例如,页面具有能打开、不能打开的访问模式,菜单具有显示、不显示的访问模式,文本编辑框具有可编辑、不可编辑的访问模式。同一资源的访问策略可能存在排斥和包含关系。例如,某个数据的可修改访问模式就包含了可查询访问模式。
4 方案的具体实现
用户的登录之后,查找该用户在数据库中所对应的权限并在同一界面中显示不同的菜单模块,继而控制该用户可以操作的功能模块。在建立角色过程中,角色权限(role_privilege)可通过若干个func_id 累加而成;在程序运行中解析角色权限是个相反的过程,要将role_privilege 与func_id 联系,来将role_privilege 分解为权限,以图2 为例,角色权限为1 表示角色具有功能1 到功能4 的所有权限,而角色权限为2 表示角色同时具有角色权限1 所具有的权限并具有功能5 和功能6的权限。
我们可以把以上权限关系表示成 Role 2>Role 1,从某种意义上来说,Role 2 是Role 1的继承,这意味着Role 2 具有Role 1 所有的功能,所有的较高层次的角色继承了较低层次的角色的功能。这种继承我们可以理解为一个用户的所具有的功能多于另一个用户,可以表示成Role 1>Role 2<=>Role 1.Function>Role 2.Function。
5 结语
本文论述了一种基于RBAC 模型的数控机床信息集成系统的实现技术方案。该权限管理模型已成功应用于系统的设计和开发。实践表明,采用基于RBAC 模型的权限具有以下优势:权限分配直观、容易理解,便于使用;扩展性好,支持权限多变的需求;分级权限适合分层的组织结构形式;重用性强。
免责声明: 凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。