基于角色的权限管理策略在企业信息系统中的应用

时间:2022-10-01 09:15:35

基于角色的权限管理策略在企业信息系统中的应用

摘要:对权限管理及RBAC模型进行简要描述,在此基础上提出了基于角色并具体应用于Web开发模式下的权限管理体系,文中对于权限管理的具体实现进行了较为详细的描述。实践证明这种权限管理架构使得权限管理更加灵活、高效,具有一定的普遍适用性。

关键词:访问控制;基于角色的访问控制;权限管理; 架构;B/S

中图分类号:TP311文献标识码:A文章编号:1009-3044(2008)35-2329-03

Apply the RBAC strategy to enterprise Information Systems

LI Ting

(Zhenjiang Electrical and Mechanical Higher Vocational Technical School, Zhenjiang 212016, China)

Abstract: This article briefly introduced privilege management and role based access control model. The paper gave a kind of privilege management framework which based on RBAC model, and it can be applied to WEB applications. Through the concrete implementation of the project, it has proved that this method is simple, flexible, efficient and universal applicable.

Key words: access control; RBAC; privilege management; framework; B/S

1 引言

访问控制是网络安全防范和保护的主要核心策略,它的主要任务是保证网络资源不被非法使用和访问。访问控制涉及的领域很广,方法也很多,通常访问控制策略可以划分为自主访问控制(DAC)、强制访问控制(MAC)和基于角色的访问控制(RBAC)三种[1-2],这些策略都有各自适用的领域。

访问控制的基本概念有:1) 主体(Subject)。主体是指主动的实体,是访问的发起者,它造成了信息的流动和系统状态的改变,主体通常包括人、进程和设备。2) 客体(Object)。客体是指包含或接受信息的被动实体,客体在信息流动中的地位是被动的,是处于主体的作用之下,对客体的访问意味着对其中所包含信息的访问。3) 访问(Access)。访问(Access)是使信息在主体(Subject)和客体(Object)之间流动的一种交互方式。4) 访问许可(Access Permissions)。访问控制决定了谁能够访问系统,能访问系统的何种资源以及如何使用这些资源。

RBAC模型能妥善的解决权限管理中的动态分配与回收问题,近年来受到学术界和业界的普遍关注[1-2],并逐渐成为企业信息系统应用中处理访问控制的主要方法。本文是在简要介绍RBAC模型的基础上,通过具体企业信息系统讨论了基于RBAC模型的实现问题。

2 基于角色的访问控制策略

美国George Mason大学信息系统和系统工程的R.Sandhu等人在对RBAC进行深入研究的基础上,于1996年提出了一个基于角色的访问控制参考模型,对于角色访问控制产生了重要影响,被称为RBAC96模型[3-5]。RBAC96模型系统全面的反映了RBAC多个方面的特点,将RBAC的几个主要方面全部包括了进去。同时RBAC96模型包含了四个相互关联的子模型,分别为RBAC0、RBAC1、RBAC2及RBAC3模型,这四种子模型具有较强的层次感,并以此很好的表现出了RBAC本身的多层次性。图1所示为RBAC3模型,即统一模型,这种模型所涉及的应用较广。

RBAC3模型的核心关系包括:

1) USERS、ROLES、OPERATIONS和OBJECTS分别表示用户、角色、操作和对象的集合;

2) UA⊆USERS × ROLES为一个用户和角色间分配的多对多关系;

3) (r:ROLES)2USERS表示把角色r分配给一组用户;

4) PERMISSIONS=2(OPERATIONS x OBJECTS)为许可的集合;

5) PA⊆PERMISSIONS × ROLES为许可到角色的多对多分配关系;

6) (r:ROLES)2PERMISSIONS为分配的许可的集合,即把角色r映射到一组许可上;

7) SESSIONS=the set of sessions;

8) session_users(s:SESSIONS)USERS为会话用户关系,即把会话s映射到对应的用户上;

9) session_roles(s:SESSIONS)2ROLES为会话角色关系,即把会话s映射到一组角色上。

RBAC3模型的等级关系包括:

1) RH ⊆ ROLES × ROLES是一个ROLES上的偏序关系,叫作继承关系,它允许将某些角色定义为另一个角色的子角色,通过角色之间的继承关系,间接的拥有其子角色所定义的权限,角色层次把角色组织了起来,越底层的角色拥有的权限越普遍;

2) authorized_ users(r:ROLES)2USERS即把角色r映射到当前角色等级的用户中;

3) authorized_permissions(r:ROLES) 2PERMISSIONS为角色r映射到角色等级上的一组许可。

3 控制策略的实现

在开发企业信息系统的过程中,我们通过引入RBAC模型,提出了一套适用于企业信息管理系统的基于角色的权限控制应用架构。应用这种架构,可以直接将企业的组织结构映射到信息系统中,使得对用户的管理更加直观,较大程度的简化了权限管理工作[6-7]。

3.1 权限管理架构

根据权限管理与用户在使用项目过程中权限验证的实际需求,我们将权限管理分为二大功能块:管理模块及WEB应用程序调用模块。管理模块针对于系统管理员,是系统管理员实际操作的模块,通过这个模块系统管理员可以实现用户管理、角色管理、权限(功能点)管理、角色分配管理及角色授权管理。WEB应用程序调用模块承载着对于用户使用应用系统时权限的验证工作,这个工作过程对于普通用户是透明的,即用户不会看到这些模块的处理过程。当用户用某个身份登录系统后,用户身份确认验证模块会根据数据库中的用户信息、用户角色信息及角色权限信息进行权限的验证,如为合法用户,则服务器端将用户身份信息以对象的方式保存在服务器端的Session中,以保证用户在随后的授权操作过程中不需要重新进行登录,当然,验证模块的其它几项,即主窗口权限控制模块、页面权限验证模块、按钮权限验证模块及数据区域访问权限验证模块在用户使用应用系统过程中随时被调用,用来确认用户在系统使用过程中是否具备某一权限的处理能力。权限管理架构如图2所示。

根据项目开发经验,本文将Web应用场景下权限划分为四个方面,即菜单权限、页面访问权限、按钮权限及数据区域访问权限。1) 菜单权限。通过菜单权限的设置,系统可以根据用户的权限灵活的组织应用程序的菜单组成,从而使得各角色用户拥有更好的人机界面。2) 页面访问权限。为了防止非授权的页面访问,必须对每一个页面设置权限,让页面加载初始时就进行页面访问权限的验证,从而允许或禁止该用户访问页面。3) 按钮权限。按钮操作是承载业务处理动作的重要操作方式,通过按钮权限的控制,应用系统可以在同一个页面上实现多个用户针对于同一事务不同阶段的事务处理,从而使得企业信息系统的实现更加的直观和高效。4) 数据区域访问权限。将页面中的数据根据业务处理情况进行群组划分,可以让不同的用户在相同页面上只能处理自己拥有权限的那部分数据。对于其它数据区域,可以根据系统设计的要求选择不显示还是不可操作。

3.2 权限管理数据库实现

针对于上一小节所提及的权限管理架构,分析功能需求,得到如下数据库模型,见图3。模型所涉及的数据字段都比较容易理解,这里就不再进行详述。

3.3 权限管理静态模型

静态模型如图4所示,包括类、类之间的关系。基本的实体是用户类、角色类、权限类、约束类及会话类。角色类和权限类分别特化出两种类别:用户和系统管理员。模型的约束可以有很多种形式,这取决于应用系统的具体需求,本文引入的约束分别为用户约束、权限约束和会话约束。

3.4 系统管理员权限管理程序模块界面

权限管理所涉及的操作页面较多,本文受篇幅所限不可能一一列出,这里只给出了其中三个模块所对应的操作页面。用户管理模块,见图5。角色管理模块,见图6。权限管理模块见图7。

4 总结

权限管理问题历来是信息系统开发过程中的一个重要问题,随着信息化工作的推进,这个问题不是减弱了,而是变得越来越重要。本文描述了访问控制的基本概念,并对于现今较为流行的RBAC模型进行了简要述叙,根据项目开发实际经验及功能需求,文中对于基于RBAC模型并具体应用于Web应用场景下的权限管理具体实现问题进行了较为详细的讨论,并给出了实现方法。实践证明,这种方法对于一般企业进行权限管理具有灵活、方便、高效的特点,具有一定的普遍适用性。

参考文献:

[1] 林磊,骆建彬,邓宪,等.管理信息系统中基于角色的权限控制[J].计算机应用研究,2002(6):82-84.

[2] 欧阳星明,张华哲.大型网络MIS系统中基于角色的权限管理[J].计算机工程与应用,2000(4):138-140.

[3] Ravi S Sandhu,et al.Role-Based Access Control Models[J].Computer IEEE,1996,29(2):38-47.

[4] SANDHU R S,FERRAIOLO D,KUHN R.The NIST model for role-based access control:Towards a unified standard[C]//Proceedings of the Fifth ACM Workshop on Role Based Access Control.Berlin,Germany:ACM,2000:47-63.

[5] Mathew J Moyer,Mustaque Ahamad.Generalized Role-Based Access Control[C].Proceedings-International Conference on Distributed Computing Systems,2001(4):391-398.

[6] 乔颖,须德,戴国忠.一种基于角色访问控制(RBAC)的新模型及其实现机制[J].计算机研究与发展,2000,37(1):37-44.

[7] 蔡昭权.基于业务无关的权限管理的设计与实现[J].计算机工程,2008(5):183-185.

上一篇:高校学生机房的维护与管理 下一篇:工科专业C语言教学方法探析