论文部分内容阅读
摘要:为了实现Web环境下露头资料信息的共建共享机制,一套完备的用户权限控制模块必不可少。在经典RBAC(Role-based Access Control)模型基础上扩展一种考虑内容保密级别的权限控制模型,文章详细描述了该模块的功能设计和数据库设计,并在ASP.NET MVC框架下完成开发。开放式露头资料信息系统的用户权限控制模块的实现,可为同类互联网信息系统中的权限控制提供通用的解决方案。
关键词:权限控制;RBAC;露头;信息系统;ASP.NET MVC
中图分类号:TP311.5
文献标识码:B
文章编号:1006-8228(2020)09-50-04
Design and implementation of the access control module in openoutcrop information system
Zhang Yiru, Long Yingbo, Chen Huan, Li Jin, Li Shuchen, Liu Yuangang
(School of Geosciences. Yangtze UniversitL Wuhan, Hubei 430100, China)
Abstract: In order to realize the co-construction and sharing mechanism of outcrop information in the web environment. acomplete set of user access control module is necessary. Based on the classic RBAC (Role-based Access Control) model. an accesscontrol model is expended with the consideration of content security level. The function design and database design of the useraccess control module are described in detail, and the module is developed with ASP.NET MVC framework. The implementation ofthe user access control module of the open outcrop information system can provide a general solution for the access control insimilar Internet information systems.
Key words: access control; RBAC; outcrop; information system; ASP.NET MVC
0引言
露頭资料是地质研究中最直观、最真实、最详细的第一手资料。随着互联网、大数据时代的发展,传统的露头资料迫切需要实现网上开放共享。为此,笔者开发了一套互联网上的“开放式露头资料信息系统”。对于该系统,用户权限控制模块必不可少。权限控制是多用户信息系统中最基本的安全策略实现方式,用于系统管理员对整个系统的用户进行组织管理和信息资源进行分配控制。基于角色的访问控制RBAC( Role-based Access Control)是目前最流行的权限控制策略,其优势在于系统管理员能够按照部门、企业的安全政策划分不同的角色,执行特定的任务[1]。美国George Mason大学对经典的RBAC模型进行了系统研究,提出了基本模型、角色分级模型、角色限制模型和统一模型[2],为相关行业标准的制定奠定了基础[3]。软件工程界对RBAC模型的研究与改进一直延续至今。文献[4]为了应对大型应用系统中大量用户的分类分层次管理,提出了一种ARBAC(Administration Model for RBAC)模型;文献[5]针对Web环境中资源访问控制的需要,提出结合XACML基于属性的访问控制ABAC(Attribute-based AccessControl)模型;文献[6]将权限控制封装为独立于业务系统的服务,实现了基于Web Services技术的统一权限系统架构;文献[7]提出了一种基于属性和信任的ATRBAC(Attribute and Trust based RBAC)模型,用于解决云计算环境中用户权限滥用和访问控制粒度太粗等问题。这些研究表明,在特定的应用系统和应用环境下,仍需对经典的RBAC模型进行必要的扩展或定制。
本文针对开放式露头资料信息系统的权限控制需求,基于RBAC权限控制模型开展相关权限管理功能和数据库设计,并运用ASP.NET MVC开发框架实现对应的用户权限控制功能模块,从而为Web环境下露头资料的开放共享提供安全保障。
1权限控制模型设计
经典的RBAC模型将系统权限控制抽象为角色、资源和权限的组合关系。系统中权限控制业务流程可以概括为“某类用户(角色)”是否可以对“某类资源(资源)”进行“某种访问操作(权限)”。其中角色、资源和权限构成了访问权限三元组。据文献[1]中概念,权限是对一个或多个资源进行特定模式访问的操作许可,其本质取决于系统业务所操作的资源特性。本文所开发的开放式露头资料信息系统中资源包括两大类,一类是系统提供的针对露头资料的查询、浏览、更新、插入、下载、导入和统计分析等功能,它们表现为相关的功能接口、页面的URL(Universal Resource Locator)以及页面上的按钮等;另一类是系统中各类露头资料数据,它们表现为系统针对不同级别用户在界面上动态呈现的数据目录和数据集等。鉴于此,笔者采用一种考虑内容“保密级别”的RBAC模型实现系统的权限控制(见图1)。模型一方面对用户可操作功能按角色分配权限;同时,对用户的可访问内容通过相关资料的“保密级别”及用户或角色的“涉密级别”进行控制,其中“涉密级别”用于指派用户或者角色的可访问资料的最高级别。约定如下:当涉密级别小于保密级别时,信息对用户不可见,当涉密级别大于或等于保密级别时,用户可以浏览相关的内容,但对信息内容的具体操作仍然受用户所属角色对应的功能权限约束。 2功能设计
权限控制功能模块主要实现露头资料信息系统的用户管理和权限控制,主要的功能包括系统登录、用户管理、权限管理、角色管理、菜单和按钮管理等。
(1)系统登录:提供系统登录界面,对输入的用户认证信息进行验证,通过用户所属角色确定该用户能够调用的操作集合,根据用户能够调用的操作集合和用户的涉密级别确定对应的首页菜单等功能元素和内容目录,最后将用户及其权限信息存入会活缓存中。
(2)用户管理:新用户通过注册填写用户名、口令、真实姓名、单位、所属部门、职务等信息,系统验证用户信息的合理性,验证通过后,系统为用户分配默认角色和默认涉密级别;老用户通过个人设置功能修改自己的基本信息或密码;系统管理员登录后可通过用户管理功能查看用户信息表,对用户信息做增加、删除、查询和修改操作。
(3)角色管理:通过角色管理模块创建和管理角色,可以按照用户组织管理和权限分配的需要把用户分为若干角色,比如,一般用户、VIP用户、数据管理员、系统管理员等。通过角色与用户、角色与权限的关联,实现用户权限的批量分配,提高权限管理效率。
(4)权限管理:系统管理员通过定义角色,给用户分配角色的方式为用户授予权限。功能权限设置针对功能为不同角色设置权限,为了便于管理,还采用分组的方式将具有相近操作或相同主题操作的权限划分到同一分组中。内容权限设置是针对不同的保密级别,分别向不同涉密级别的用户开放数据访问权限,系统约定只有当用户的涉密级别不小于内容的保密级别时,内容对该用户才可见。
(5)菜单和按钮管理:管理系统菜单和功能按钮,对菜单和按钮进行增加、删除、查询和修改操作,维护每项菜单、按钮的名称、图标、可见性、URL地址等信息,通过菜单级别维护多级菜单之间的级联关系。
3数据库设计
按照本文设计的权限控制模型,对数据库进行概念设计,归纳抽象出一套数据库概念模型,采用E-R图表示(见图2-图4)。图2中包括用户、角色、权限三个实体,图中连接线表示各实体之间的关系。其中,用户与角色之间、角色与权限之间分别存在多对多的关系,即一个用户可以同时被分配多个角色,一个角色也可以分配给多个用户;一个角色可以具有多项权限,一项权限也可以被分配给多个角色。图3中描述的是权限与菜单两者之间一对多的关系,即一个菜单只能对应一个权限,而一个权限可以关联到多个菜单上;权限与其他功能元素如按钮,也存在类似的一对多关系。图4中描述用户和职务、用户和部门之间的关系,用户和职务之间存在多对多的关系,用户可以兼任多个职务,具有相同职务的用户也可能不只一人;部门与用户之间是一对多的关系,即一个用户只能属于一个部门。
概念模型中并没有明确建立用户和露头资料之间的联系,但用户、角色两个实体内均定义了“涉密级别”字段,同时露头资料集实体内定义了“保密级别”,通过用户、角色的“涉密级别”和露头资料集的“保密级别”相比较,可以快速判断特定用户或角色对特定露头资料集的可访问性,进而控制内容的访问权限。
4技术实现
本系统采用了ASP.NET MVC开发框架,它将整个系统的开发过程大致分成三个单元,即视图(View)、控制器(Controller)和模型(Model)。系统技术架构如图5所示,Model是数据模型,通过实体框架模型(Entity Framework)建立与数据库的对象关系映射,从而对数据库进行存取和处理;Controller是控制器,在系统中扮演调度者的角色,负责客户端请求的路由映射,一方面对客户端发起的请求进行处理或转发,另一方面负责将Model传递的数据提交给指定View。View是视图,属于用户接口层组件,一方面负责将Controller传递的数据渲染到页面上,另一方面负责将用户填报的参数传给Controller处理。数据层面,系统采用ADO.NET买体框架模型的CodeFirst模式建立对象/关系映射,形成对数据库服务器SQL Server的连接。应用这项技术,开发中仅仅需要在Model中将用户、角色、权限等实体封装成对应的实体类,系统运行时即可在SQL Server数据库中自动创建这些实体对应的关系表,极大地提高本系统数据库设计、开发和维护的效率。
采用以上技術架构,开发了露头资料信息管理系统,并基于本文设计的权限控制模型,实现了配套的权限管理模块。系统运行主界面如图6所示,当用户登录系统后,系统根据用户角色获取用户权限集合,并将用户及其权限信息存放到会话缓存中,在主页中就会根据用户的角色显示对应的功能和内容列表。系统后台实现了用户权限配置功能,图7是在系统后台对角色权限进行设置的操作界面,界面中权限按照管理员设置的分组分别罗列,通过勾选列表中的权限可方便地将权限与所选角色绑定。
5结束语
本文基于RBAC模型实现了网上开放式露头资料信息系统中的权限管理模块。应用表明,RBAC模型是一种实用高效的权限控制系统,便于用户分类和角色划分,可实现Web信息系统中细粒度的权限管理。同时,通过分别设置用户、角色的涉密级别和信息内容的保密级别,可实现系统中内容的分级管理,是对经典RBAC模型有效扩展。软件开发过程中,采用ASP.NET MVC和ADO.NET实体框架模型作为技术框架,降低了开发难度和工作量,对软件开发效率有极大提升。下一步将对本文所实现的权限控制模块做进一步完善,增强权限管理功能的可定制性和可扩展性,从而为同类系统提供一套通用的解决方案。
参考文献(References):
[1]何海云,张春,赵战生.基于角色的访问控制模型分析[J].计算机工程,1999.8:39-41,44
[2]Sandhu R,Conyne EJ, LfeinsteinH, et al. Role based accesscontrol model[J].IEEE Computer Society, 1996.29(2):38-47
[3]ANSI INCITS 359-2004. Role Based Access Control [S].
[4]Sandhu R,Munawer Q. The ARBAC97 model for role-based administration of role hierarchies [C]. Proc of14th AnnuaIComputer Security Applications Confer-ence.1998:39-49
[5]沈海波,洪帆.Web服务中结合XACML的基于属性的访问控制模型[J].计算机应用,2005.12.49-51,60
[6]刘玮玮,黄清政.基于Web Services改进的统一权限系统的研究与实现[J].计算机时代,2015.5: 38-40
[7]余波,台宪青,马治杰.云计算环境下基于属性和信任的RBAC模型研究[J].计算机工程与应用,2020:1-13
收稿日期:2020-04-24
基金项目:国家自然科学基金项目(41701537);长江大学大学生创新训练计划项目(2019038)
作者简介:张怿如(1999-),女,湖北随州人,本科生,主要研究方向:GIS软件开发与应用的研究。
通讯作者:龙颖波(1981-),女,湖北宜昌人,硕士,实验师,主要研究方向:地理信息科学的研究。
关键词:权限控制;RBAC;露头;信息系统;ASP.NET MVC
中图分类号:TP311.5
文献标识码:B
文章编号:1006-8228(2020)09-50-04
Design and implementation of the access control module in openoutcrop information system
Zhang Yiru, Long Yingbo, Chen Huan, Li Jin, Li Shuchen, Liu Yuangang
(School of Geosciences. Yangtze UniversitL Wuhan, Hubei 430100, China)
Abstract: In order to realize the co-construction and sharing mechanism of outcrop information in the web environment. acomplete set of user access control module is necessary. Based on the classic RBAC (Role-based Access Control) model. an accesscontrol model is expended with the consideration of content security level. The function design and database design of the useraccess control module are described in detail, and the module is developed with ASP.NET MVC framework. The implementation ofthe user access control module of the open outcrop information system can provide a general solution for the access control insimilar Internet information systems.
Key words: access control; RBAC; outcrop; information system; ASP.NET MVC
0引言
露頭资料是地质研究中最直观、最真实、最详细的第一手资料。随着互联网、大数据时代的发展,传统的露头资料迫切需要实现网上开放共享。为此,笔者开发了一套互联网上的“开放式露头资料信息系统”。对于该系统,用户权限控制模块必不可少。权限控制是多用户信息系统中最基本的安全策略实现方式,用于系统管理员对整个系统的用户进行组织管理和信息资源进行分配控制。基于角色的访问控制RBAC( Role-based Access Control)是目前最流行的权限控制策略,其优势在于系统管理员能够按照部门、企业的安全政策划分不同的角色,执行特定的任务[1]。美国George Mason大学对经典的RBAC模型进行了系统研究,提出了基本模型、角色分级模型、角色限制模型和统一模型[2],为相关行业标准的制定奠定了基础[3]。软件工程界对RBAC模型的研究与改进一直延续至今。文献[4]为了应对大型应用系统中大量用户的分类分层次管理,提出了一种ARBAC(Administration Model for RBAC)模型;文献[5]针对Web环境中资源访问控制的需要,提出结合XACML基于属性的访问控制ABAC(Attribute-based AccessControl)模型;文献[6]将权限控制封装为独立于业务系统的服务,实现了基于Web Services技术的统一权限系统架构;文献[7]提出了一种基于属性和信任的ATRBAC(Attribute and Trust based RBAC)模型,用于解决云计算环境中用户权限滥用和访问控制粒度太粗等问题。这些研究表明,在特定的应用系统和应用环境下,仍需对经典的RBAC模型进行必要的扩展或定制。
本文针对开放式露头资料信息系统的权限控制需求,基于RBAC权限控制模型开展相关权限管理功能和数据库设计,并运用ASP.NET MVC开发框架实现对应的用户权限控制功能模块,从而为Web环境下露头资料的开放共享提供安全保障。
1权限控制模型设计
经典的RBAC模型将系统权限控制抽象为角色、资源和权限的组合关系。系统中权限控制业务流程可以概括为“某类用户(角色)”是否可以对“某类资源(资源)”进行“某种访问操作(权限)”。其中角色、资源和权限构成了访问权限三元组。据文献[1]中概念,权限是对一个或多个资源进行特定模式访问的操作许可,其本质取决于系统业务所操作的资源特性。本文所开发的开放式露头资料信息系统中资源包括两大类,一类是系统提供的针对露头资料的查询、浏览、更新、插入、下载、导入和统计分析等功能,它们表现为相关的功能接口、页面的URL(Universal Resource Locator)以及页面上的按钮等;另一类是系统中各类露头资料数据,它们表现为系统针对不同级别用户在界面上动态呈现的数据目录和数据集等。鉴于此,笔者采用一种考虑内容“保密级别”的RBAC模型实现系统的权限控制(见图1)。模型一方面对用户可操作功能按角色分配权限;同时,对用户的可访问内容通过相关资料的“保密级别”及用户或角色的“涉密级别”进行控制,其中“涉密级别”用于指派用户或者角色的可访问资料的最高级别。约定如下:当涉密级别小于保密级别时,信息对用户不可见,当涉密级别大于或等于保密级别时,用户可以浏览相关的内容,但对信息内容的具体操作仍然受用户所属角色对应的功能权限约束。 2功能设计
权限控制功能模块主要实现露头资料信息系统的用户管理和权限控制,主要的功能包括系统登录、用户管理、权限管理、角色管理、菜单和按钮管理等。
(1)系统登录:提供系统登录界面,对输入的用户认证信息进行验证,通过用户所属角色确定该用户能够调用的操作集合,根据用户能够调用的操作集合和用户的涉密级别确定对应的首页菜单等功能元素和内容目录,最后将用户及其权限信息存入会活缓存中。
(2)用户管理:新用户通过注册填写用户名、口令、真实姓名、单位、所属部门、职务等信息,系统验证用户信息的合理性,验证通过后,系统为用户分配默认角色和默认涉密级别;老用户通过个人设置功能修改自己的基本信息或密码;系统管理员登录后可通过用户管理功能查看用户信息表,对用户信息做增加、删除、查询和修改操作。
(3)角色管理:通过角色管理模块创建和管理角色,可以按照用户组织管理和权限分配的需要把用户分为若干角色,比如,一般用户、VIP用户、数据管理员、系统管理员等。通过角色与用户、角色与权限的关联,实现用户权限的批量分配,提高权限管理效率。
(4)权限管理:系统管理员通过定义角色,给用户分配角色的方式为用户授予权限。功能权限设置针对功能为不同角色设置权限,为了便于管理,还采用分组的方式将具有相近操作或相同主题操作的权限划分到同一分组中。内容权限设置是针对不同的保密级别,分别向不同涉密级别的用户开放数据访问权限,系统约定只有当用户的涉密级别不小于内容的保密级别时,内容对该用户才可见。
(5)菜单和按钮管理:管理系统菜单和功能按钮,对菜单和按钮进行增加、删除、查询和修改操作,维护每项菜单、按钮的名称、图标、可见性、URL地址等信息,通过菜单级别维护多级菜单之间的级联关系。
3数据库设计
按照本文设计的权限控制模型,对数据库进行概念设计,归纳抽象出一套数据库概念模型,采用E-R图表示(见图2-图4)。图2中包括用户、角色、权限三个实体,图中连接线表示各实体之间的关系。其中,用户与角色之间、角色与权限之间分别存在多对多的关系,即一个用户可以同时被分配多个角色,一个角色也可以分配给多个用户;一个角色可以具有多项权限,一项权限也可以被分配给多个角色。图3中描述的是权限与菜单两者之间一对多的关系,即一个菜单只能对应一个权限,而一个权限可以关联到多个菜单上;权限与其他功能元素如按钮,也存在类似的一对多关系。图4中描述用户和职务、用户和部门之间的关系,用户和职务之间存在多对多的关系,用户可以兼任多个职务,具有相同职务的用户也可能不只一人;部门与用户之间是一对多的关系,即一个用户只能属于一个部门。
概念模型中并没有明确建立用户和露头资料之间的联系,但用户、角色两个实体内均定义了“涉密级别”字段,同时露头资料集实体内定义了“保密级别”,通过用户、角色的“涉密级别”和露头资料集的“保密级别”相比较,可以快速判断特定用户或角色对特定露头资料集的可访问性,进而控制内容的访问权限。
4技术实现
本系统采用了ASP.NET MVC开发框架,它将整个系统的开发过程大致分成三个单元,即视图(View)、控制器(Controller)和模型(Model)。系统技术架构如图5所示,Model是数据模型,通过实体框架模型(Entity Framework)建立与数据库的对象关系映射,从而对数据库进行存取和处理;Controller是控制器,在系统中扮演调度者的角色,负责客户端请求的路由映射,一方面对客户端发起的请求进行处理或转发,另一方面负责将Model传递的数据提交给指定View。View是视图,属于用户接口层组件,一方面负责将Controller传递的数据渲染到页面上,另一方面负责将用户填报的参数传给Controller处理。数据层面,系统采用ADO.NET买体框架模型的CodeFirst模式建立对象/关系映射,形成对数据库服务器SQL Server的连接。应用这项技术,开发中仅仅需要在Model中将用户、角色、权限等实体封装成对应的实体类,系统运行时即可在SQL Server数据库中自动创建这些实体对应的关系表,极大地提高本系统数据库设计、开发和维护的效率。
采用以上技術架构,开发了露头资料信息管理系统,并基于本文设计的权限控制模型,实现了配套的权限管理模块。系统运行主界面如图6所示,当用户登录系统后,系统根据用户角色获取用户权限集合,并将用户及其权限信息存放到会话缓存中,在主页中就会根据用户的角色显示对应的功能和内容列表。系统后台实现了用户权限配置功能,图7是在系统后台对角色权限进行设置的操作界面,界面中权限按照管理员设置的分组分别罗列,通过勾选列表中的权限可方便地将权限与所选角色绑定。
5结束语
本文基于RBAC模型实现了网上开放式露头资料信息系统中的权限管理模块。应用表明,RBAC模型是一种实用高效的权限控制系统,便于用户分类和角色划分,可实现Web信息系统中细粒度的权限管理。同时,通过分别设置用户、角色的涉密级别和信息内容的保密级别,可实现系统中内容的分级管理,是对经典RBAC模型有效扩展。软件开发过程中,采用ASP.NET MVC和ADO.NET实体框架模型作为技术框架,降低了开发难度和工作量,对软件开发效率有极大提升。下一步将对本文所实现的权限控制模块做进一步完善,增强权限管理功能的可定制性和可扩展性,从而为同类系统提供一套通用的解决方案。
参考文献(References):
[1]何海云,张春,赵战生.基于角色的访问控制模型分析[J].计算机工程,1999.8:39-41,44
[2]Sandhu R,Conyne EJ, LfeinsteinH, et al. Role based accesscontrol model[J].IEEE Computer Society, 1996.29(2):38-47
[3]ANSI INCITS 359-2004. Role Based Access Control [S].
[4]Sandhu R,Munawer Q. The ARBAC97 model for role-based administration of role hierarchies [C]. Proc of14th AnnuaIComputer Security Applications Confer-ence.1998:39-49
[5]沈海波,洪帆.Web服务中结合XACML的基于属性的访问控制模型[J].计算机应用,2005.12.49-51,60
[6]刘玮玮,黄清政.基于Web Services改进的统一权限系统的研究与实现[J].计算机时代,2015.5: 38-40
[7]余波,台宪青,马治杰.云计算环境下基于属性和信任的RBAC模型研究[J].计算机工程与应用,2020:1-13
收稿日期:2020-04-24
基金项目:国家自然科学基金项目(41701537);长江大学大学生创新训练计划项目(2019038)
作者简介:张怿如(1999-),女,湖北随州人,本科生,主要研究方向:GIS软件开发与应用的研究。
通讯作者:龙颖波(1981-),女,湖北宜昌人,硕士,实验师,主要研究方向:地理信息科学的研究。