基于角色的ERP权限管理设计与实现

时间:2022-06-30 09:51:55

基于角色的ERP权限管理设计与实现

摘要:探讨了RBAC技术在ERP系统权限管理中的应用,介绍了RBAC在权限管理中的优势。分析了ERP系统权限管理所要达到的目标,完成了一个基于角色的ERP权限管理的设计与实现。

关键词:RBAC;角色;ERP;权限管理;JSP

中图分类号:TP311文献标识码:A 文章编号:1009-3044(2008)11-20214-02

1 引言

随着Internet的发展及基于Internet服务的迅速崛起,管理网络化已成为趋势。基于Web的ERP(企业资源计划)系统以其独特的优势,掀起了新的潮流。首先,基于Web的信息管理摆脱了地域上的限制,使信息系统的管理更加方便,只要能上网的地方,就是基于Web的管理系统可以运行的地方,它使得远程办公、无纸办公、远程管理成为可能。其次,它的快捷性极大地提高了企业的工作效率。但由于网络信息的共享特性.系统的安全问题变得越来越突出,具有越来越重要的地位。因此对用户进行权限划分是保证系统安全的重要措施之一。

对于在企业环境中的访问控制方法,一般有三种:

① 自主型访问控制(DAC):是在确认主体身份及所属的组的基础上,对访问进行限定的一种控制策略,访问控制策略保存在一个矩阵中,行为主体,列为客体。

② 强制型访问控制(MAC):是指系统强制主体服从事先制订的访问控制政策。它主要用于多层次安全级别的军事应用中。

③ 基于角色的访问控制(RBAC):该技术主要研究将用户划分成与其在组织结构体系相一致的角色,以减少授权管理的复杂性,降低管理开销和为管理员提供一个比较好的实现复杂安全政策的环境。

本文将基于角色的权限管理方法用于基于JSP的ERP系统中,以方便灵活地对网页的访问权限进行控制。

2 RBAC概述

基于角色的访问控制(RBAC)一般包括:用户(User)、角色(Role)、权限(Privilege)和数据对象(Data Object)。各个实体问的相互关系为:用户是发 访问操作和存取要求的主动方,是对数据对象进行操作的主体(Subject);权限是对某一数据对象进行某一种特定的操作的权利;数据对象即访问控制的客体(Object),通常是被调用的程序或存取的数据访问;角色就是用户在系统内可执行的操作的集合,是RBAC中引入的一个重要概念。角色作为联系用户和权限的中间桥梁,一个角色与权限的联系可以看作是该角色拥有的一组权限的集合,与用户关联又可以看作是若干具有相同身份的用户的集合,用户和角色以及角色和权限之间都是多对多的关系。一个登录于某系统的用户,可以通过他所具有的角色的权限来判断其可访问的系统资源和对系统资源可以进行的操作。图1是RBAC基本的工作原理图。

在ERP系统中为了更好的被人们所理解,一般把角色称作职位或者职务,职位是按企业的业务需求来设计的,一个具体职务代表了在日常工作中处理某些事务的权利。这样做不但方便了程序员和客户之间的沟通,也简化了管理员的权限管理操作,增强了系统的可读性。

另外由于该企业是一个既有上游客户和下游客户的中间供商,所以时常有客户要登录系统。这些客户以及一些实习人员等都是阶段性用户,为了安全起见要控制他们的访问时效性。本系统在用户信息中添加了一状态列, 用于动态控制用户访问系统的可用性。

同时基于本系统的许多不同部门使用的相对独立的应用子系统。各个应用子系统是由不同组的软件开发人员并行开发的,而各子系统的开发进度不同。为了便于权限管珲,将系统访问权限管理从各个子系统中提取出,形成独立于各应用子系统的安全管理系统。各子系统的访问权限都在该安全管理系统中进行集中管理。只需在数据库中添加数据对象,当系统运行时,会自动将所有角色对新添数据对象的操作权限默认设置为最低权限(为了安全起见默认为最低权限,也可以由客户自定义默认权限)。减少了管理员的工作量。如果需要详细设置,可在角色管理页面对需要修改的角色进行修改。

3 权限数据库设计

数据库采用的是Microsoft SQL Server2000 Enterprise,权限管理中涉及的表有四类,分别是:

①权限表;用来保存所有的功能菜单的表;

②用户表;用户表除了存储用户的登录信息,还用来存储用户的基本信息。基本信息可以根据客户的要求自定义添加。

③角色表;角色先按部门划分,然后按访问类型再分类。。

④用户一角色表和角色一权限表;用来保存用户与角色及角色与权限之间关系的表。

4 权限管理实现

4.1 B/S三层体系结构

系统网络结构采用B/S(Browser/Server)三层体系结构,数据资源和客户机将被应用服务器分隔开(如图3所示),应用服务器上存储和运行应用逻辑。其着重客户机对应用服务器的请求,客户端访问的是应用程序,由应用程序对数据进行查询和存取,这样就能保证数据不被非法使用和篡改。同时,这种结构也提高了系统的性能,简化了用户的管理。

4.2 开发工具的选择

开发环境是Windows 2000 Server Enterprise + SQL Server 2000;

开发工具是My Eclipse;

采用JSP(JavaServer Page)技术,其与ASP技术相比具有更显著的优点:

① 更高的执行效率和开发效率。JSP 作为Java平台的一部分,拥有Java编程语言“一次编写,随处运行”的特点。

② 健壮的存储管理和安全性。JSP页面的内置脚本语言是基于Java编程语言的,而且所有的JSP页面都被编译成Java Servlet,JSP页面就具有Java技术的所有优点。

③ 更广的平台适应性。几乎所有平台都支持Java,JSP+JavaBean,它们可以在任何平台下通行无阻。

4.3 MVC设计模式

MVC是J2EE平台上推荐的一种设计模式,它把一个应用的输入、处理、输出流程按照视图、控制、模型的方式进行分离,将WEB应用分为三层:控制层、模型层、视图层.也称为控制器、模型、视图。

4.4 登录用户的访问流程

图5所示为用户访问表单页面流程图:用户在访问应用服务器之前,首先向身份认证服务器证实自己的身份和角色。然后读取角色的信息并用session值存储,由session值来判断菜单选项的可用性(若权限不足,灰色显示)以及具体表单页面的按钮可用性(例如“添加”、“删除”、“修改”等按钮)。

5 结束语

本系统主要有以下优点:

(1)通过浏览器由管理员在前台对用户进行授权,避免了管理员在后台即数据库侧对各个表操作的复杂性.操作比较简单易行而且可靠,并且授权可以精确到数据库中的每一个表;

(2)采用了JSP技术和B/S 3层网络架构,表现层充分利用了JSP的安全特性,增强了系统的安全性能:中间层采用组件封装了基于角色的权限管理(RABC)的应用逻辑,极大地提高了系统的稳定性、可扩充性和移植性。

参考文献:

[1] Ravi S sandhu. Role-Based Access Control Models[J]. IEEE Computer,1996.

[2] 刘晓华,张健,周慧贞. JSP应用开发详解(第3版)[M]. 北京:电子工业出版社,2007.

[3] Bruce Eckel. Thinking In Java Fourth Edition[M]. Prentice Hall PTR,2006.

[4] 陈刚. Eclipse从入门到精通(第2版)[M]. 北京:清华大学出版社,2007.

注:本文中所涉及到的图表、注解、公式等内容请以PDF格式阅读原文

上一篇:构造一个安全的数据库 下一篇:求解函数优化问题的遗传算法