APP下载

基于细粒度权限质检管理系统的研究与设计

2018-01-02涂小琴

软件 2017年12期
关键词:细粒度身份验证数据表

涂小琴,吴 晟

(1. 云南师范大学文理学院,云南 昆明 650222;2. 昆明理工大学,云南 昆明 650222)

基于细粒度权限质检管理系统的研究与设计

涂小琴,吴 晟

(1. 云南师范大学文理学院,云南 昆明 650222;2. 昆明理工大学,云南 昆明 650222)

本文首先针对现行RBAC模型的角色管理权限粒度不够细化的特点,提出了一种改进的细粒度权限模型,并详细描述了该改进模型的特点和身份验证的具体过程。并结合实际的质量检测管理系统,从数据库设计和角色管理两个方面,阐述了改进的细粒度权限控制在.NET中的设计与实现的具体过程。

权限粒度;细粒度;身份验证;访问控制

0 引言

数据库权限设计是管理信息系统的一个重要组成部分。合理的权限设置可以有效地保护数据,方便用户操作。依据员工的工作岗位及业务操作的不同来设置权限,可以防止无关人员的越权操作,从而保护数据库安全,防止信息泄露。

本文应云南省信息检测中心的实际需求,以质量检测综合信息管理系统为背景,开发了一个集样品信息录入、检测结果登记、审核、批准、报表生成等为一体的信息管理系统,实现了分析测试管理工作的网络化无纸化办公,使分析测试中心的样品检测工作更加高效便捷。该系统在权限访问控制方面,采用细粒度与现行的 RBAC[2],[5](基于角色的访问控制)相结合,一方面提高了授权工作的灵活性和高效性,另一方面又能根据具体的实际需要分配“最小化”[1,5]的用户权限集,实现了细粒度权限控制的需求。

1 问题的提出

1.1 现存访问控制模型

访问控制(Access Control)[3]是从计算机系统的处理功能方面对数据提供保护,其目标是为了防止非法用户进入系统或合法用户对系统资源非法使用。

RBAC基于角色的权限访问控制(Role-Based Access Control),这种方式可以灵活的设置用户角色,灵活的设置用户的权限,可以人为的对很多的页面进行保护,弥补了自主访问的不足点。同时,用户并不直接对功能模块,而是由用户所赋予的角色来定,角色确定了用户能够访问的权限。这样就大大的提高了授权的效率。

1.2 RBAC模型存在的问题

由于RBAC是基于角色的访问控制,而“角色”是一系列权限的集合。因此,该访问方式将权限的集合作为分配的基本单元。管理员授予用户固定服务器角色或固定数据库角色,以执行特定的操作,但这些角色的权限通常会远远超出简单任务的需要。“最少特权”的原则,要求用户只能拥有完成工作所需的最低权限,因此,为达到小目标而分配用户高级角色就违背了该原则。

这就给更细化的授权问题带来了不便。因此,需要一种改进的更细分的访问控制方式来解决实际的问题。

2 细粒度访问控制的引入

2.1 概念介绍

粗粒度:仅在类别层面上关注对象,不关注对象的特定的实例;例如,本系统中,对检测样品的查询,统计等操作,对所有的用户都一视同仁,并不具体区分用户的级别,是普通用户还是特殊用户。

细粒度:是对粗粒度的进一步补充,是在考虑粗粒度的基础上,进一步关注具体对象的实例,属于业务逻辑的一部分。

简单来说,细粒度权限问题就是判断操作者在何种情况下对某种资源进行了怎样的操作。权限控制过程,就是判断该问题是否满足的过程。

操作者:权限的所有者和使用者(包括用户,群组,角色等)。

资源:权限针对的具体对象(资源,模块等)操作:具体的操作权限[7,8]。

操作环境;权限正常使用的环境和上下文(满足身份验证或是满足操作条件)。

操作者,角色,用户、资源之间的关系如图 1所示。

2.2 细粒度权限的身份验证过程

在细粒度权限中,用户的身份验证是一个复杂的过程。如图2所示。在细粒度身份验证的过程中,根据实际需要,我们把用户分成不同的角色,或者用户组,身份验证的过程,不但要验证该用户本身的身份,还要验证它是属于哪个角色,属于哪个具体的群组。而访问授权是根据角色来设置的,该角色可以访问哪些资源,不可以访问哪些资源。因此还要进一步判断,该角色或是该群组是否具有某种操作权限,针对具体的模块是否具备某种操作权限。只有当所有的判断均为真,系统才允许该用户登陆。这个过程需要适时地查看数据表,只有所有的信息都验证通过,才允许用户进行操作。

图1 细粒度权限模型各概念的关系图Fig.1 Relation diagrams of fine grained permission model concepts

2.3 细粒度权限的不足

细粒度的权限控制与业务逻辑具有很大的相关性。针对不同的业务逻辑,常常使用不同的权限控制策略。因此,从这种意义上讲,粗粒度的权限控制更有通用性,便于将其形成为一个模型架构,更有重用价值;而将细粒度的权限控制就不行。因此细粒度控制一般与粗粒度相结合,才能更高效地解决权限控制问题。

3 细粒度权限控制在.NET中的设计与实现

权限设计的过程主要包括两个部分:正向授权和负向授权。正向授权,指在开始时,假定主体没有任何权限,然后根据需求授予权限,适用于权限要求严格的系统。负向授权,指在开始时,假定主体有所有权限,然后将某些特殊权限收回。正向授权包括三个步骤:创造权限、分配权限、使用权限[6]。

1. 正向授权

(1)创造权限

在权限设计和实现的过程中,设计者会将整个系统划分为不同的功能模块,每个不同的模块应该分配哪些权限。在本系统中以其它管理中的科室管理为例,该模块用户应该具备查看、增加、修改、删除等某一具体科室的权限,在创造权限时,还没有将权限与具体的角色用户绑定,只是逻辑意义上的权限。

(2)配权限

在RBAC模型中,权限是与角色对应起来的。将固定的权限授予某个角色,该角色就拥有了一系列的操作许可。分配权限正是管理员将逻辑意义上权限具体化的过程。本系统中,仍以其他管理中的科室管理为例,管理员将修改某一科室的操作权限授予计量所所长,那么计量所所长就拥有了修改本科室的权限。

(3)使用权限

用户使用管理者分配的权限可以访问系统的某个具体模块。用户是权限的具体使用者,只有管理员设置过的权限,用户才可以使用,只有用户所在的角色拥有的权限才可以使用。本系统例如只有特殊用户(管理员)才能对某个数据信息进行删除操作,普通的用户未经授权是不允许的。

图2 细粒度身份验证的具体流程Fig.2 The specific process of fine-grained authentication

2. 负向授权:收回权限。

用户的操作权限(增加、删除、修改、查找)的控制,主要通过以下几个方面来实现:数据库权限设计、角色管理。以下就分两个方面来具体阐述细粒度权限在.NET中的设计和实现。

3.1 数据库权限设计

根据本系统的实际需求,我们设计了8个数据表来进行数据库的权限设计:角色权限表、角色表、用户角色表、用户表、科室表、角色功能表、功能说明表、功能模块表。在这几个数据表中,科室表对应于细粒度模型中的群组表(Group),功能模块表和功能应用表两部分对应于模型中的资源(Resource)。各数据表的具体字段及对应关系如图3。

在设计数据表时,设计特定的字段,通过修改特定字段的值来实现权限控制。比如,角色权限表中的Value字段和角色表中的Power字段,都是一个由0或1组成的字符串。而功能模块表中的功能ID字段表示该功能在角色表的Value字段中位置,如果该位置对应的数值是0,表示该角色无此权限,如果值为 1,则表示该角色拥有此权限。角色权限表中的 value值显示了角色是否拥有该操作权限的情况。通过数据表的这种字段设置,在用户登录时,系统通过检测该角色的Power值,便可对用户进行权限控制。

3.2 角色管理

角色的添加、删除、修改等是实现权限控制的重要方面。通过角色管理,实现权限的授予,修改,回收等,以此控制用户的操作。

图3 数据表具体字段与关联Fig.3 Specific fields and associations of data tables

在添加新角色时,先将角色值置 0,然后利用.NET类库中自带的Replace函数将角色值中的对应的功能编号位的值修改为 1。则该角色就具备了对特定模块的特定操作权限,角色与用户对应,当添加新用户时,为用户授予相应的角色,该用户就具备了该角色所有的操作权限。例如,在本系统中,实验室管理模块有四个主要功能:增加、修改、删除、查看。每个功能对应唯一的ID功能代号;建立一个角色(计量所所长),把上面的功能代码加到这个角色拥有的权限中,并保存到数据库中;添加一个员工的账号,并把一种或几种角色赋给这个员工。这样他登录到系统中将会只看到他拥有权限的那些模块。在删除角色时,由于角色与用户对应,角色被删除后,拥有该角色的用户的相应权限也被收回。修改角色时,进入该角色的权限列表,根据需要对相应权限进行选择或修改。

4 总结

本文从数据访问控制的现状出发,分析了现行访问控制的不足,提出了一种改进的细粒度的角色访问控制方法。并以现实中的质量检测信息管理系统为原型,在此基础上阐述了细粒度权限控制在.NET中的设计与实现。

[1] Offer, J. A. Modern Database Management[M]. Beijing: Publishing House of Electronic Industry: 2014: P165-207.

[2] 王静宇, 董景楠, 谭跃生. 满足静态角色分离约束的角色划分方法[J]. 计算机工程, 2017-11.

[3] 陈彦竹, 郝天曙. 基于角色信任度动态监控的访问控制研究[J]. 计算机技术与发展; 2017-7.

[4] 李战怀等. 对象—关系数据库管理系统原理与实现[M].北京: 清华大学出版社; 2014.

[5] 孟宪虎. 马雪英, 邓绪斌.大型数据库系统管理、设计与实例分析—基于SQL Server[M]. 北京: 电子工业出版社;2014: P273-397.

Research and Design of Fine Grained Permission Based Quality Inspection Management System

TU Xiao-qin1, WU Sheng2
(1. The college of arts and sciences Yunnan normal university Kunming 650222;2. kunming university of science and technology 650222 Kunming China)

Firstly, an improved fine-grained permissions model is offered in this thesis, in view of that current role model for RBAC permissions granularity is not enough detailed. And the detailed description of the characteristics and the specific procedure of fine-grained authentication to the improved model is also given.Then,based on the actual Quality Detection Management System, the specific process of design and implementation to improved fine-grained permissions control in . NET are described ,from both Database design and roles management.

Granular permission; Fine-grained permission; Verification of identity; Access control

TP319

A

10.3969/j.issn.1003-6970.2017.12.016

本文著录格式:涂小琴,吴晟. 基于细粒度权限质检管理系统的研究与设计[J]. 软件,2017,38(12):87-89

云南省教育厅科学研究基金项目(No:2016ZDX253)

涂小琴(1981-),女,讲师,主要研究方向:软件工程及数据分析。

猜你喜欢

细粒度身份验证数据表
融合判别性与细粒度特征的抗遮挡红外目标跟踪算法
细粒度的流计算执行效率优化方法
基于列控工程数据表建立线路拓扑关系的研究
基于双线性卷积网络的细粒度图像定位
支持细粒度权限控制且可搜索的PHR云服务系统
Endogenous neurotrophin-3 promotes neuronal sprouting from dorsal root ganglia
图表
基于VSL的动态数据表应用研究
身份验证中基于主动外观模型的手形匹配
ASP.NET中的Forms身份验证的研究