摘 要:在知识管理系统中,特别是文档管理系统中,为方便指派管理,多采用把用户分为用户组的方式进行用户-角色指派和权限组进行权限-角色指派,但其中的用户组和权限组在RBAC中无对应概念。ARBAC模型包含3个子模型,其中的RRA可实现对用户和权限的分组管理。为了与RBAC统一,可采用RRA实现对用户和权限的分组管理。
关键词:知识管理;访问控制;RBAC RRA
知识文档管理是知识管理系统的重要组成部分。文档访问控制管理主要解决不同人对不同文档的访问权限问题,完善的访问控制体制能确保文档管理的高度安全性,保障知识文档信息的完整性和可靠性。由于文档管理系统中存在大量文档,系统中能够访问文档的用户数量庞大,因此如何有效地实现针对文档的访问控制是一个重要问题。本文主要针对文档管理中的用户和权限管理,探讨如何通过有效方便的用户管理,实现对文档的有效管理。
基于角色的访问控制技术——RBAC,作为信息完全领域的一种新技术,正不断受到重视。在RBAC96[1]中与用户管理相关的是RRA97[2]。RRA97引入了3种角色概念:Abilities、Groups、UP-Roles,分别称为能力角色、组角色和混合角色。其成员分别由权限或其他能力角色、用户或其他组角色、权限和用户以及其他混合角色构成。3种角色可分别记做A、G和UPR。
RRA定义了两种指派操作:can-assigna和can-assigng[3]。can-assinga比照PRA定义的能力角色和权限之间的关系,实质就是将不可分割的权限组织成一个整体;can-assigng是比照URA定义的组角色和用户之间的关系,对用户进行分组。相应地,定义了各自的revoke操作。参考文献[5]涉及了如何对用户进行分组和对用户组管理。
1 RRA的实现
1.1 RRA基本操作
RRA中,通过将用户和权限进行分组,分别指派给组角色和能力角色实现对用户和权限的分组管理。本文将实现RRA中的以下问题:用户-组角色指派与撤销、权限-能力角色指派与撤销、组角色-角色指派与撤销、能力角色-角色指派与撤销、组角色管理、能力角色管理。
用户-组角色指派与撤销过程的实质是将用户分配到合适的组角色中,并将用户从组角色中删除,实现用户的分组管理。借用URA定义,可将其过程定义为:
定义1 用户-组角色指派关系can-assignUGAR×CR×2G。其中,AR、CR含义同URA,G为组角色。CR中的角色也为组角色。
定义2 用户-组角色撤销关系can-revokeUGAR×2G。其中,AR、G含义同定义1。
用户-组角色指派过程中存在指派先决条件,因而需要在RRA实现中体现出来,本文将考虑该因素。
权限-能力角色指派与撤销过程实质是将权限进行分组管理,通过将不可分离的权限组织成一个权限组来方便角色-权限指派。借用PRA可将其关系定义为:
定义3 权限-能力角色指派关系can-assignPAAR×CR×2A。其中,AR、CR含义同URA,A为能力角色。CR中的角色也为能力角色。
定义4 权限-能力角色撤销关系can-revokePAAR×2A。其中,AR、A含义同定义3。
定义5 组角色-角色指派关系can-assignGAR×CR×2R。组角色-角色撤销关系can-revokeGAR×2R。其中,AR、CR含义同URA,R为角色。
定义6 能力角色-角色指派关系can-assignAAR×CR×2R。组角色-角色撤销关系can-revokeAAR×2R。其中,AR、CR含义同URA,R为角色。
组角色更多的是反映用户的组织结构,因而存在着组角色之间的上下级和包含关系,为了和RBAC统一,可将这种关系看作继承关系。
定义7 组角色G之间的继承关系GHG×G为组角色G之间的偏序关系。
相应地,能力角色之间也存在着上下包含关系,同样可用继承关系定义。
定义8 能力角色A之间的继承关系AHA×A为能力角色A之间的偏序关系。
在实际应用中,组角色、能力角色的创建与维护由系统管理员完成。
1.2 主要表结构及其之间的关系
1.2.1 用户-组角色及组角色-角色之间的关系
用户、组角色及组角色、角色之间的关系如图1所示。其中,各表的含义分别为:
User:用户基本信息,主要是用户编号、用户名和密码。
Role:角色基本信息,主要包括角色编号、角色名。
UserRoleAssignment:用户-角色指派关系,主要是用户编号和角色编号之间的对应关系。
UserGroupAssignment:用户-组角色指派关系,主要是用户编号和组角色编号之间的关系。
GroupRoleAssignment:组角色-角色指派关系,主要是组角色编号和角色编号之间的关系。
GroupRole:组角色基本信息,主要是组角色编号,组角色名和组角色之间的继承关系。
URA-CR:用户-角色指派时应当满足的指派先决条件。
UGA-CR:用户-组角色指派时应当满足的指派先决条件。
1.2.2权限-能力角色及能力角色-角色之间的关系
权限、能力角色及能力角色、角色之间的关系,如图2所示。其中,各表的含义分别为:
Permission:权限基本信息,主要是权限编号、权限名、该权限对应的操作和针对的对象。
Role:角色基本信息,同上小节。
PermissionRoleAssignment:权限-角色指派关系,主要是权限编号和角色编号之间的关系。
PermissionAbilityAssignment:权限-能力角色指派关系,主要是权限编号和能力角色编号之间的关系。
AbilityRole:能力角色基本信息,主要是能力角色编号、能力角色名和能力角色之间的继承关系。
AbilityRoleAssignment:能力角色-角色指派关系,主要是能力角色编号和角色编号之间的关系。
PRA-CR:权限-角色指派先决条件,字段含义同上小节。
PAA-CR:权限-能力角色指派先决条件,字段含义同上小节。
PRA-CR,PAA-CR表中数据的关系同UGA-CR和URA-CR表。
2 实际应用
在规划局的知识管理系统中实现了利用RRA实现对用户和权限的分组管理。系统结构如图3所示。
2.1 用户分组管理
由于系统中用户较多,同一科室的工作人员的权限稍有不同。由于RBAC本身要求在进行角色设置时(此处的角色指PRA过程中的角色)尽量减少角色数量,以便简化角色继承关系的管理,而在本系统中的角色设置时考虑到用户实际组织结构的设置、角色名与职位名相同。在实际工作中,某些工作人员可能暂时具有不属于该科室的权限。此时可先建立一个用户组角色,为该组角色指派相应的角色,然后将该组角色指派给多个工作人员。由于用户组角色不进入角色继承系统,因而对原有角色继承关系不需要修改。同时利用组角色进行用户-角色指派,由于对多个工作人员只需要进行一次用户-用户组角色的指派操作,而不需要进行多次用户-角色的指派操作,因而当用户组中用户较多时,此法可减少用户-角色指派操作数量。
2.2 权限分组管理
该系统中,用户具有对知识管理系统中操作文档的权限,而操作权限可进一步细分为查询、录入、修改、打印等权限,需将这些权限作为一个整体指派给角色,不宜分开指派。此时可将这类不能分开的权限指派给能力角色,再将能力角色指派给角色即可。将权限指派给能力角色后,不同能力角色之间可形成继承关系。
针对知识文档管理系统中,通过将用户和权限进行分组,方便地实现用户-角色指派和权限-角色指派管理。对用户-组角色指派、权限-能力角色指派和撤销关系作了定义。设计了实现RRA需要的表,并给出了表之间的关系。同时,实现了指派先决条件的表示和存储,该指派先决条件可实现角色之间的互斥约束关系。最后,给出了一个具体的例子说明RRA的应用。
参考文献
[1] RAVI S. Role-based access control models[J]. IEEE Computer,1996,29(2):38-47.
[2] RAVI S,VENKATA B. The ARBAC97 model for rolebased administration of roles[J].TISSEC,1999,2(1):105-135.
[3] RAVI S,QAMAR M. The RRA97 model for role-based admini stration of role hierarchies[C]. In Procee-dings of 13th Annual Com puter Security Application Conference,Scottsdale,AZ, December 7-11,1998.
[4] 何海云,张春,赵战生.基于角色的访问控制模型分析[J].计算机工程,1999,(8):39-44.
[5] OSBORN S. GUO Y.Modeling users in role-based access control[M]. ACMRBAC,2000.