APP下载

基于RBAC的权限管理设计与自主开发应用

2020-01-03张丽丽邬锡江杨玉梅张冲

现代信息科技 2020年16期

张丽丽 邬锡江 杨玉梅 张冲

摘  要:权限管理是信息系统运用于生产实践的核心功能要素,基于角色的访问控制是比较流行的权限管理模型,它很好地解决了ERP复杂系统的权限管理问题。通过基于RBAC的权限设计研究,以及在华雁智能科技(集团)股份有限公司自主开发的技术服务工作管理系统的应用实现,最终验证该系统可以满足生产环境对权限管理要求,且有良好的扩展性,对自主开发实现权限管理功能有一定指导意义。

关键词:权限管理;基于角色的访问控制;技术服务工作管理系统

中图分类号:TP393.0      文献标识码:A 文章编号:2096-4706(2020)16-0088-04

Design and Independent Development of Authority Management Based on RBAC

ZHANG Lili,WU Xijiang,YANG Yumei,ZHANG Chong

(Whayer Intelligent Technology (Group) Co.,Ltd.,Chengdu  610041,China)

Abstract:The authority management is the core functional element of information system applied in production practice. The theoretical principle of role based access control(RBAC) is a popular data management model,and solves well the problem of authority management in ERP. Through the research of permission design based on RBAC,and the application realization of the IT service task management system for independent development in Whayer Intelligent Technology (Group) Co.,Ltd. Finally,it meets the requirements of production environment for authority management and has good expansibility. This application has certain guiding significance for the independent development and implementation of authority management functions.

Keywords:authority management;RBAC;technical service management system

0  引  言

在企業实际生产环境中,信息管理系统需要面对各个岗位,存在不同级别的业务人员角色,其在信息系统中权限是各不相同的[1]。数据作为企业重要的资产,其隐私泄露和信息安全方面的隐患甚至关乎企业的生产和发展。信息系统是企业管理数据和业务数据的主要载体,对数据进行采集、传导、存储、访问及分析处理,必须要有足够的安全保障措施,进而保障企业正常运转。因此,权限管理[2]是企业对信息系统产生信任的最基本保障,有了这个保障,信息系统才可能被企业所接纳所使用,进入正式生产环境。

20世纪90年代出现的基于角色的权限控制(Role-based Access Control,RBAC):由角色映射权限,由用户映射角色,易扩展、易维护,极大地简化权限运维,并且很好地解决复杂ERP系统的权限管理问题[3]。

在企业信息化建设中,通常是采购商品化通用产品和自主开发混合的信息化建设模式。虽然ERP平台支持二次开发,但实际管理中,由于各种因素,比如ERP数据安全级别很高,会掣肘于安全级别的管理要求,无法满足实际工作对系统便利性的需求。因此对于复杂度不高,个性化定义比较强的需求,企业往往采用自主开发的信息化建设模式,ERP权限管理功能模块是封装在ERP内部的,脱离ERP平台无法复用于其他系统,所以,自主开发的系统的权限管理就需要自行设计和实现。

基于RBAC的权限设计研究有很多,有些研究仅限于对功能权限[4],如增删改查,仅仅是增删改查的权限管理粒度,对于企业实际数据管理存在粒度过于粗放的问题,比如销售合同的查看,还需要细化出区域权限,甚至金额额度权限。其次,对于敏感数据项,需要合理授权,比如额度查看的功能,销售助理不能查看敏感的合同额度等金额类数据项。有些研究的RBAC设计过于复杂,不利于在自主开发系统中进行实践应用。

因此,结合多年ERP实施项目和企业信息化运维工作经验,通过完善基于RABC模型的权限管理,既能满足功能权限、数据范围、数据项等权限粒度,设计又不过度复杂,达到实用管控效果。

本公司需要通过信息化手段强化技术服务工作管理,经过多次选型终没有合适的软件产品匹配,因此本公司决定自主开发实现技术服务工作管理系统。在企业实际生产环境中,技术服务工作管理系统需要面对多个岗位、不同业务人员角色,需要防止数据不适当的拥有、篡改等。而已经部署的ISC、ERP、BFI系统,它们成熟的权限功能模块只能匹配自身平台使用,无法给技术服务工作管理系统复用。同时,技术服务工作管理是公司内部业务系统,对它投入的开发资源相对有限,不具备基于权限中间件的开发能力。技术服务工作管理系统自立权限管理专题,从研究设计开始、编码调试到测试,一步步进行开发实现。最终,技术服务工作管理系统在生产环境下的顺利试运行,验证了本设计模型是可用的、可行的,也是有效的,证实该研究具有一定实践指导意义。

1  设计模型

在技术服务工作管理系统中,对于权限管控的实现,结合过往理论和实践,进行了适度裁剪后的设计,如图1所示。

1.1  模型要素

(1)用户与角色的映射,角色与资源的映射,是多对多的关系;

(2)角色与资源的映射,资源项分为功能权限(Web资源)和数据权限。

功能权限是对Web资源的操作权分配,如增删改。同时,通过数据范围细化了查看权限的数据粒度。在查看权限上,约束角色的数据范围,比如:西南销售助理只能查看销售区域为西南的销售订单;删除和修改权限上,约束角色是本人的制作单据才允许删除和修改,否则不允许,可有效防止数据篡改。

不可见字段是对“数据项范围”查看权限的细化。有些数据项需要对某些角色不可见或者不允许填写,比如销售金额类字段对于销售助理角色是不可见的,而对销售总监是可见的。

1.2  工作流程

用户登录系统访问页面资源时,激活权限角色。通过传递“操作人”“Web资源名称”来校验功能权限的合法性。将权限校验逻辑封装成一个过程(方法),将会话的参数进行传递,由检验过程反馈校验结果,若用户非法操作,系统则提示无操作权限。

2  开发实现

技术服务工作管理系统开发环境:前端框架Layui;后端:PHP,实现逻辑示例如图2所示。

2.1  Web资源管理

Web资源分为页面和API,API是专门控制资源的使用,本质是一系列功能逻辑,即新增、删除、修改、审定和查看,如图3所示。

一个业务对象的动作,可能会涉及多个API,比如项目的新增,就会涉及新增子项的API、子项搜索的API和保存项目的API。因此,为了保证授权完整性,需要对API按业务对象维护名称以便理解和使用。

Web资源表会自动收集Web资源,当用户使用API资源时,如果未被Web资源表收纳,在发生访问会话时会自动被收到Web资源表。如果已经存在,则不需要重复收纳。

系统管理员只需要定期对Web资源的名称、使用状态进行维护,就可以实现Web资源的可控性。

权限维护时,因超级管理员不能授权下级管理员,无法实现按模块设置下级管理员,因此,从整个系统的维护安全来讲,权限运维工作建议由IT专员担任。

Web资源管理的设计用途为:

(1)让权限管理具有平台控制机制,即陆续上线其他功能模块时,只要掌握这些新模块的Web资源,即可完成授权控制;

(2)能实现系统管理员按功能块的管理,通过强化系统管理员监督角色,使得业务系统权限运维更专业、更可靠、更安全;

(3)业务对象权限运维更易用。业务对象扩展了新的权限项时,只要转化为Web资源,就可以通过分配Web资源而达到使用的目的。

2.2  角色管理

角色管理,系统管理员为系统新增角色,以用来分配Web资源,如图4所示。

2.2.1  角色分配权限

维护角色对应的Web资源,如图5所示。

2.2.2  数据范围

数据范围,默认:创建人等于登录人,即登录人默认拥有查看自己创建的单据。如果对角色查看权限未设置特定的数据范围,则取用默认值,否则按角色的自定义数据范围取值;关键字说明:原则上符合SQL语法即可,如图6所示。

2.3  用户管理

用户管理,系统管理员为系统新增账号,以用来分配角色,让用户账号具有不同的使用权限,如图7所示。

2.4  测试验证

以技术服务工作管理系统的项目单据和项目日志单据为例,整理出这些业务对象配置的权限项,也就是待分配的资源内容,如表1所示,按此表罗列,可保证资源的完整性,避免遗漏等错误。

根据不同的需要,设置了项目经理、技服工程师、技服助理、部门经理等角色,如表1所示,依据权责范围分配个相应角色。新增用户账号、为账号分配角色、登录账号、激活会话、验证账户角色资源权限。

经测试,如此设计和实现的权限管理,是符合公司现有生产环境中对权限管控的要求的,技术服务工作管理系统得以允许进入生产环境试运行。

3  结  论

基于RBAC的权限管理设计,通过在技术服务工作管理系统中实现应用,得以证明此设计,对于权限管控是有效的,是可开发实现的,能满足实际工作场景需要的。

实际工作中,Web资源需要进一步的封装,业务对象的一个动作,被封装为一个Web资源项,这种一对一的关系,会让资源授权更接近业务实际场景,也能大大减少分配权限的运维工作量。这需要结合一定的运维经验,不断地优化系统设计,让资源划分更合理后,再对Web资源按业务对象的动作做封装。

参考文献:

[1] 夏晔.信息系统用户权限管理分析 [J].计算機产品与流通,2020(7):116.

[2] 白嘉萌,寇英帅,刘泽艺,等.云计算平台基于角色的权限管理系统设计与实现 [J].信息网络安全,2020,20(1):75-82.

[3] 张鑫,杨振中,刘帅,等.基于RBAC的权限管理在地震数据共享平台系统中的设计与实现 [J].现代信息科技,2020,4(2):13-14+17.

[4] 汤文亮,李科.基于RBAC模型的权限管理改进研究与实现 [J].计算机工程与设计,2015,36(5):1181-1186+1232.

作者简介:张丽丽(1988—),女,汉族,山东菏泽人,网信组组长,硕士,研究方向:企业信息化建设;邬锡江(1984—),男,汉族,四川成都人,信息系统开发工程师,本科,研究方向:企业信息系统开发;杨玉梅(1984—),女,彝族,四川攀枝花人,信息化专员,本科,研究方向:企业信息化实施;张冲(1995—),男,汉族,四川南充人,信息化专员,本科,研究方向:企业信息化系统开发。