角色访问控制模型在管理信息系统中的设计与实现*
2010-11-02丁伟民
丁伟民,王 燕
(潍坊学院,山东 潍坊 261061)
角色访问控制模型在管理信息系统中的设计与实现*
丁伟民,王 燕
(潍坊学院,山东 潍坊 261061)
本文采用基于角色的访问控制模型设计与实现管理信息系统的访问控制功能,以提高管理信息系统的访问控制安全性,使管理信息系统采用角色来充当用户行驶权限的中介,将用户的授权分为角色委派及权限委派两部分组成,实现了操作权限与访问用户分离,降低了的管理复杂度。
角色;管理信息系统;授权;访问控制
管理信息系统(Management Information System)是一个由人、计算机及其他外围设备等组成的能进行信息的收集、传递、存贮、加工、维护和使用的系统。
目前,管理信息系统中普遍存在员工类别繁多,权限更换频繁的现状。在管理信息系统中采用基于角色的访问控制技术是实现系统访问控制安全性能的一个理想选择,一是因为角色的数目比用户少得多,缩小了访问控制的复杂度,二是当用户改变部门或角色时,避免了权力的回收和重新授权,三是当几个用户同时执行同一个任务时,便于动态授权。
1 系统访问控制需求
1.1 操作对象定义
在管理信息系统中,操作对象主要是指系统中访问界面的控制对象,如窗体、菜单、按钮等界面元素。操作对象定义需要实现的功能有对象信息创建、对象信息修改、对象信息删除、对象信息查看。
1.2 权限定义
权限是对系统中操作对象访问的许可,每一项权限是由一个操作对象及对该对象的一个行为构成。在管理信息系统中,权限的定义就是结合操作对象的定义信息。权限定义实现的功能有权限信息创建、权限信息修改、权限信息删除、权限信息查看。
1.3 用户定义
系统的最终使用者是用户,因此必须建立用户的身份认证功能,登记用户的身份信息。每个用户都属于一个部门管理,用户信息是与组织结构结合在一起的,用户信包含所属的部门信息。用户定义实现的功能有用户信息创建、用户信息修改、用户信息删除、用户信息查看。
1.4 角色定义
角色定义内容包括角色基本信息定义、角色的继承信息定义、角色的互斥信息定义三部分。
1.4.1 角色基本信息定义
角色对应于组织中某一特定的职能岗位,系统应提供角色定义工具,根据企业职权、职位以及分担的权利和责任定义相应的角色。在管理信息系统中存在诸多机构层次,每个机构层次都有一些部门,每个部门里一般都有一些固定的职务。这些固定的职务可以定义对应的角色。
1.4.2 角色的继承信息定义
角色继承关系自然的反映了一个组织内部权利和责任的关系。角色之间有相应继承的关系,当一个角色r1继承另一个角色r2时,r1就自动拥有了r2的访问权限。角色继承可以使新定义的角色在已有角色的基础上产生,角色继承关系允许多继承,即一个子角色继承多个父角色。在管理信息系统中的角色继承需要满足以下规则要求:
●子角色可以继承多个父亲角色
●角色之间存在单向继承关系,子角色只能继承上一
层次的父亲角色
●子角色拥有其所有父亲角色的权限,包含直接父亲直到最终
1.4.3 角色的互斥信息定义
角色的互斥关系是用于指定两个角色具有不同的职责,不能让一个用户同时拥有。角色间的互斥关系是固定的,在系统设计阶段,不能随意增加和删除。角色互斥需要满足以下规则要求:
●角色的产生不能从互斥的多个角色中继承
●互斥的角色不能存在继承关系
●互斥的角色具有静态互斥约束关系
互斥的角色存在互斥状态(动态或静态),如果互斥状态为静态,互斥的角色不能委派同一个用户。如果互斥状态为动态,互斥的角色能够委派同一个用户,但只能选择其中的一个角色登陆。
角色定义实现的功能有角色信息创建、角色信息修改、角色信息删除、角色信息查看。
1.5 权限审查
在授权完成后可检查登录用户所拥有的能力表信息,审查给用户的权限是合适,如不合适可重新进行用户委派和收回部分权限的处理。目前系统只能以对用户组管理的模式对一个用户组内的用户进行部分权限收回处理。权限审查实现的功能有用户权限信息查看、用户权限信息撤销。
1.6 用户验证
系统通过定义登录模块验证用户身份是系统安全管理的必须步骤。用户验证的目的就是鉴别用户身份,在管理信息系统中通常使用登陆名、密码两方面内容来验证用户身份。
1.7 角色委派
角色委派建立并维护用户与角色之间的绑定关系。由于角色定义描述了角色以及角色之间继承的关系信息,所以当用户委派某个角色时,用户不仅拥有对应角色自身关联的功能操作,而且用户也拥有其子角色关联的功能操作。角色委派实现的功能有角色用户信息创建、角色用户信息修改、角色用户信息删除。
1.8 权限委派
权限委派建立并维护角色与权限之间的绑定关系。权限委派实现的功能有角色权限信息创建、角色权限信息修改、角色权限信息删除。
2 RBAC模型的应用设计
基于角色的访问控制技术设计思想就是把对用户的授权分成两部份,用角色来充当用户行驶权限的中介。用户与角色之间以及角色与权限之间就形成了两个多对多的关系。
2.1 功能模块设计
根据管理信息系统的访问控制需求,管理信息系统中的角色访问控制功能可以划分为对象定义模块、权限定义模块、角色定义模块、用户定义模块、权限审查模块、用户验证模块、角色委派模块、权限委派模块八个模块,如图1所示。
图1 功能划分
2.2 数据库结构设计
在管理信息系统中,通过创建角色访问控制数据库存储系统访问控制信息,角色访问控制数据库中涉及的实体有:操作对象、权限、角色、用户、角色用户关系、角色权限关系、对象权限关系、角色继承关系、角色互斥关系,其实体间关系如图2所示:
图2 实体关系图
根据实体关系图,设计如下:
①操作对象信息表
对象信息表存储了各功能模块、数据、界面元素(包括菜单、按钮等各种界面上能控制的控件)等的基本信息,主要字段描述如下:
对象编号[主键]、对象名称、对象描述信息、对象级别编号、对象属性、所控制的对象编号。
②权限信息表
权限信息表存储操作对象及其操作许可的基本信息,主要字段描述如下:
权限编号[主键]、权限名称、访问权限(允许、禁止)。
③角色信息表
角色信息表存储角色的基本信息,主要字段描述如下:
角色编号[主键]、角色名称、所属部门编号、角色容量、启用否、启用开始日期、启用结束日期。
④用户信息表
用户信息表存储系统用户的基本信息,主要字段描述如下:
用户编号[主键]、用户登录名、用户名称、登陆密码、最后一次登录的时间、登陆次数、输入密码错误的次数、用户部门编号[外键]、启用否、启用日期、电子邮箱、联系电话、家庭住址。
⑤角色用户关系表
角色用户关系表存储用户与角色之间的关联信息,主要字段描述如下:
关联编号[主键]、角色编号[外键]、用户编号[外键]、说明、备注。
⑥角色权限关系表
角色权限关系表存储角色与权限之间的关联信息,主要字段描述如下:
关联编号[主键]、权限编号[外键]、角色编号[外键]、说明、备注。
⑦对象权限关系表
对象权限关系表存储操作对象与权限的关联信息,主要字段描述如下:
关联编号[主键]、对象编号[外键]、权限编号[外键]、说明、备注。
⑧部门信息表
部门编号[主键]、部门名称、部门说明、备注。
⑨角色继承关系表
角色继承关系表反映了角色的单向继承关系,即只关联存储父亲角色信息。通过分析,管理信息系统中允许多继承,表中字段如下:
关系编号[主键]、角色编号、父亲角色编号[外键]。
⑩角色互斥关系表
互斥角色关系表反映了同一层次中互斥的角色信息,其中一个角色可以存在多个互斥角色。表中字段如下:
关系编号[主键]、角色编号、互斥角色编号[外键]。
3 主要算法描述
3.1 用户的验证与访问界面的生成
输入参数:用户名、密码
算法描述:
①搜索用户信息表,验证用户身份及登陆次数,失败退出。
②创建角色临时表存储用户的角色信息。
③搜索角色用户关系表中用户的角色以及继承的角色信息,并存储到角色临时表,如搜索结果为空,退出。
④遍历角色临时表,根据角色编号搜索角色权限信息表。
⑤根据用户的权限信息设置菜单、相关窗体、按钮的访问属性。
⑥关闭登陆窗体。
⑦显示用户的访问主界面。
3.2 角色委派
角色委派操作是首先在用户列表中选中用户,然后在角色列表中选择委派的角色,进行角色委派算法验证与角色委派信息的保存。
角色委派验证算法描述:
①根据所选角色的编号搜索角色关系表,验证所选角色容量的限制要求,如超过角色容量限制,退出。
②验证用户的部门编号与委派角色所属的部门编号是否一致,否则退出。
③根据所选用户编号遍历所拥有的角色,搜索角色互斥关系表,验证用户拥有的角色与所选角色是否存在互斥关系,存在退出。
④验证用户所选角色是否是用户拥有角色的子角色,如果是,退出。
⑤将委派关系存入角色用户关系表中。
4 结束语
本文根据管理信息系统在安全访问控制方面的实际需求,设计并实现了适用于管理信息系统的基于角色的安全访问控制功能,实现了操作权限与访问用户分离,避免越权行为,降低了管理复杂度。
[1]刘伟,孙玉芳.基于角色访问控制模型及其在操作系统中的实现[J].计算机科学,2003,30(8):166-168.
[2]陈凤珍,洪帆.基于任务的访问控制(TBAC)模型[J].小型微型计算系统,2003,24(3):621-624.
[3]邓集波,洪帆.基于任务的访问控制模型[J].软件学报,2003,14(1):76-82.
[4]王小明,赵宗涛,郝克刚.工作流系统带权角色与周期时间访问控制模型[J].软件学报,2003,14(11):1841-1849.
[5]Ravis,Sandhu.Role-based access control model[J].IEEE computer,1996,29(2):38-47.
(责任编辑:肖恩忠)
TP391
A
1671-4288(2010)06-0049-04
2010-09-12
丁伟民(1979-),男,山东潍坊人,潍坊学院数学与信息科学学院讲师。