基于动态角色服务权限控制的物联网平台设计

2021-05-07 07:54瑶,陈
计算机测量与控制 2021年4期
关键词:动态联网模型

查 瑶,陈 朋

(1.浙江工业大学 信息工程学院,杭州 310023; 2.浙江工业大学 计算机科学与技术学院,杭州 310023)

0 引言

物联网平台作为数据驱动业务解决方案在各个领域变得非常流行[1]。平台是物联网生态系统的主要部分之一,可实现物联网设备和端点管理,数据采集和分析。

随着互联网技术的飞速发展,简单的Web服务不足以满足实际应用需求。技术产品和系统变得越来越复杂,系统之间的资源共享与业务协同的问题也迫切需要解决[2]。以传统的面向对象方式构建的物联网平台,在后期管理的升级和更改中变得越来越困难。并且在设备管理过程中,用户角色各异,容易引起角色自我定位模糊,无法确切地获取相应的权限和信息[3]。传统的物联网平台访问控制的模型应用于完整的Web服务,其中包含许多操作,每个操作都提供某些特殊功能。如果要为用户提供较少的选定操作的访问权限,则需要提供与这些操作相对应的单独的Web服务[4]。

为了解决未知角色的复杂权限定义和平台后期的扩展性问题,通常使用基于角色的访问控制方法,因为它为组而不是单个用户提供访问控制,并且易于扩展,用户根据他们在网络中获取的角色访问资源[5]。目前国内、外对角色的访问控制方法研究主要有对平台功能模块化研究和动态角色权限研究。在对平台的功能模块化研究上,Magnusson等人[6]将模块化和产品平台策略视为实现共性的独特概念机会。在给定的背景下评估这些概念的适用性。Shamsuzzoha和Helo[7]通过阐述设计指南的基本原理提出了一个概念模型,并且在将各种组件与产品平台连接以开发具有成本效益的产品变体之前可以实施清单。Halstenberg等人[8]开发了目标导向的模块化方法,用于相对于所追求的目标定义模块化产品架构概念。在针对公司的特定情况定制体系结构计划时,没有万能的。特定环境需求下的模块化产品设计非常重要[9]。

在对动态角色权限研究上,文献[10]提出了一种访问控制方法。他们扩展了XACML-RBAC配置文件,将管理员作为角色之一,执行诸如创建/删除角色,更改角色权限和用户分配角色等操作。Zhu等人[11]提出了一种访问基本服务的模型,该模型属于复合Web服务的其他安全域。在此模型中,基本Web服务的策略文件被组合,并且提供者分析这些文件以构造复合服务的访问控制策略。此方法不允许自动组合基本Web服务的访问控制策略文件。李蔚等人[12]提出一个扩展模型,在RBAC模型[13]的基础上,将权限细化,添加对象、操作、域和分组等4个元素,同时提出域的可继承性和一种表示域之间的层级关系的方法,该方法可以管理角色下的数据内容和操作,将更细粒度化权限功能。当前基于角色的访问控制方法或模型[14]都强调要考虑整个Web服务或复合服务中的Web服务分支。如果需要访问Web服务的某些选定操作,或通过向用户提供适当的服务访问特权并向用户动态授予特权,则不能使用这些方法,同时部分系统操作复杂,难以商业化。

综上所述,本文针对传统的用户权限定义和平台的扩展性的缺点,拟利用layui框架对物联网平台进行研究,提出一种基于动态角色服务权限控制物联网平台的拟议系统,解决了未知角色在Web服务中权限管理问题。在物联网平台上实现该方法。首先在系统架构上,根据访问Web服务的用户的目的和需求,提供基于角色的动态用户服务,然后在应用访问控制精确到操作级别上细粒度化,进一步细化访问控制粒度[15]。最后嵌入到平台采用的模块化设计中。

1 平台总体设计

本文提出的基于动态角色服务权限控制的物联网平台设计如图1所示。

图1 物联网平台设计图

该平台设计由功能模块设计、平台系统流程图、RBAC模型和数据库设计共4部分组成。

第一部分:由于用户在使用物联网平台的整个过程中,每个用户都带有不同属性,衍生出不同的未知角色,对设备整个生命周期中,角色的权限需求进行分析,根据系统需求,将物联网平台划分为6个模块;第二部分:以角色为中心,建立流程图,使不同的模块相串联;第三部分:根据RBAC的基本模型,建立物联网平台的角色模型;第四部分:根据角色的不同权限和功能,对数据库建表,然后针对部分功能提供更细粒度的访问控制。

2 功能模块设计

对于为提供可选服务的用户定制的各种类型的软件融合服务的需求不断增长,设备在使用的过程中,使用者担当的角色类型各异,每个角色对于权限规划也不明确。在该环境下,可以根据用户的目的和需求组合使用服务,建立以角色为中心的一个模型,通过向用户提供适当的服务访问特权并向用户动态授予特权。

根据市场需求,基于动态角色服务权限控制的物联网平台包括6个主要功能模块:数据查询、权限更新记录、设备管理、运营管理、用户管理、角色管理,如图2所示。其中用户管理和角色管理模块属于动态角色权限的设计,而数据查询、报警查询、设备管理、运营管理模块则是围绕于角色设计功能性模块,整个设计反映了RBAC模型中访问控制的核心思想。

图2 系统功能框架图

3 系统流程

3.1 现有系统

在现有物联网平台的系统中,整体流程一般是基于身份访问展开的[16-17]。系统的流程如图3所示。访问系统的主体是用户,用户类型各异。一旦用户发送了请求会话,就开始判别用户类型,检查与该用户相关联的权限集,然后分配给不同等级用户类别下固定的权限。

图3 基于身份访问系统流程图

现有系统没有基于用户的环境条件对权限集细分,使得同一级别下,不同类型的用户只拥有固有的权限使用权。不足以涵盖用户的使用范围,安全性也无法得到保障。

3.2 拟议系统

在提出的系统中克服了现有物联网平台系统的局限性,需要将角色用作中心,以使用户成为获得特定权限的角色。拟议物联网平台的系统的整体流程如图4所示。

图4 基于动态角色访问系统流程图

在所提出的系统中,当用户发送请求时,其会话开始,验证用户信息。当约束条件判别为用户,则拥有系统基本所有的权限,等同于现有系统的一级用户。以角色代替二级用户,当不同角色发送请求会话且角色已激活,检查与角色相关的权限集,权限包含对象表达式,就会对每个对象进行一对一评估。如果对象表达式及其对应条件对某个对象的评估为true,授予角色访问对象表达式及其相应条件返回true的所有那些对象的权限,完成一个对不同角色权限的过滤与授予。

4 扩展RBAC动态角色控制模型

RBAC的主要思想是对系统操作的各种权限不直接授予具体用户,而在用户集合与权限集合之间建立一个角色集合。当角色被创建后,角色再授予访问权限。也就引入了一种抽象的中介元素 — 角色传递授权信息[18]。相应地,权限可以分配给多个角色。每个操作可以应用于多个客体,每个客体可以接受多个操作。

本文扩展模型如图5所示,以RBAC模型为基础进行说明,对此扩展模型涉及的部分概念进行定义:

用户(U):RBAC模型中的用户定义为与系统有特定目的交互的人。每个用户都与一个角色相关联,并且只有获得角色,该用户才能访问系统中的任何资源。

角色(R):角色在系统中担当用户与权限之间的桥梁,角色既可以看作是多个权限的集合,也可以看作是具有相同身份的用户的集合。

权限(P):P=OP(操作集)×OBJ(客体集),权限是控制对系统资源的访问的权限。权限定义了RBAC模型中的用户可以与系统资源进行交互的类型,客体集在本文中为可供操作的模块资源。

会话(S):用户需要先建立会话,在该会话中将每个用户赋予该会话所需要的角色及相关权限。

用户与角色:概念与通常的角色、用户定义无区别。但角色类型可以人为的划分等级,主要分为两种类型:角色A、角色B。角色A可以成为一些角色并具有相应的权限,角色B可以在权限上进一步细分等级,角色B可以在自己所拥有的权限下创建角色,继承相应的权限,因此用户可以具有多个不同的角色身份。

角色与权限:角色与权限之间的关系是多对多的[19],一个角色可以拥有多种权限,多个角色可以对应同一个权限,但用户只能用一种角色进入系统,当对某个角色的定义随着需求的变更发生改变时,用户可以实时动态地改变角色的权限,重新定义角色。

图5 扩展RBAC模型

物联网平台在采用扩展RBAC模型为基础上,增加设备的概念融入关系图,如图6所示。同时,一台设备只可以分配给一个客户,但可由多个管理类型的角色同时管理。由于当用户访问对象时,系统需要根据用户权限进行检查和拦截,用户只可以对自己权限范围下的所拥有的功能和设备进行操作。角色A为图6中的客户组,角色B为图6中的其他角色组。

图6 基于RBAC物联网平台分层访问控制模型

5 数据库设计

根据RBAC模型,数据库的逻辑结构设计如图7所示。分为RBAC用户表,RBAC角色表,RBAC设备表,RBAC资源表,RBAC操作表,RBAC用户角色分配表,RBAC角色权限表,RBAC权限操作表,RBAC设备用户表,RBAC设备角色表。

图7 数据库设计图

在整个数据库模型中,操作和资源通过权限操作表连接。通过角色权限表将权限分配给角色,并通过用户角色表将角色分配给用户。同时设备分别通过用户设备表和角色设备表,交由用户管理以及用户分配给角色管理。从而实现了基于动态角色服务权限控制模型。

在操作级别的细粒度级别上,对数据库的权限操作表进行了细分。根据授权,允许或拒绝授权使用者访问Web服务的操作。主要体现为对界面的按钮做显示设置,区别用户的操作范围。

6 实施与测试

6.1 实验设计

部署在应用程序服务器中的测试应用程序调用Web服务的操作。然后,根据访问控制策略中定义的角色和相应的权限,允许用户访问通过Web服务中的操作实现的所需功能。

本文选用智能数据采集系统作为测试用例。平台客户端的运行时环境是Windows 10和带有V8 JavaScript引擎的Google Chrome Web浏览器,服务器端是基于Java的HTTP服务器。

在测试方案中,为用户定义3个角色,Admin、公司、自定义角色,如表1所示。

表1 测试方案中的角色描述

在RBAC中,权限被分配给角色以授予其对各种资源的访问权限。如表2所示,列出了物联网平台的部分示例权限,包括权限ID和权限的功能描述。

表2 示例权限列表

表2中给出的示例权限已分配给测试方案中不同层次结构的3个角色。{P1, P2, P4, P5, P6}为主模块权限,P7,P8属于权限{P4}的子模块,P9属于权限{P5}的子模块,P10属于权限{P4, P5}的每个子模块下的部分功能,P11属于权限{P1}的部分功能权限。R1具有全部权限。R2具有许可{P1, P2, P4, P5, P6}。R3具有许可为空集,可以由权限拥有者从集合中添加至空集。

实验的流程如下:首先,以admin身份登录,使用P3权限,完成对公司的创建。再利用P4权限下P7分配设备给公司;然后公司身份登录,通过权限P6创建自定义角色,分为管理类型角色B和二级用户角色A。再利用权限P7将设备分配给多个自定义角色B管理,以及该公司下的角色A使用;角色B身份登录,可以在权限允许下使用{P1, P2, P4, P5, P6},子模块功能{P7, P8, P9},操作权限{P10}。角色A身份登录,只拥有权限{P1, P2}。

6.2 测试结果及对比分析

本实验从R1、R2、R3中随机地选取7个实例作为测试集,角色类型1、角色类型2分别属于R1和R2,R3中又细分了5种典型角色,比较能全面的代表使用者的不同身份。角色类型3为公司管理型角色,角色类型4为公司客户角色,角色类型5则代表了在使用过程中,遇到未知的角色形象,可开放性分配权限功能。让每个用户按照三种情况进行查询操作,分别对应查询所有有权访问的数据,可读取到的权限结果反馈如表3所示。

表3 权限测试结果

为了验证拟议系统在细粒度权限管理设计优势和角色权限动态化的灵活性,将现有系统和拟议系统进行了比较。如表4、表5所示。

表4 角色权限动态性比较结果

如表4所述,不同类型的R3级用户在现有系统和拟议系统中对权限的动态可操作性,拟议系统可以人为地对R3级用户权限实施动态进行调整,增加了角色的多样性。

表5 角色权限细粒度比较结果

如表5所述,拟议系统在客户组中可以通自定义角色对客户设定自定义客户类型,增加页面局部操作权限{P10},符合本文定义的细粒度权限管理要求。

7 结束语

针对现有基于身份的访问控制系统无法满足用户定制的各种软件组合服务的需求,提出了一种基于动态角色服务权限控制的物联网平台。

相比传统的角色的权限定义,角色动态自定义法可以根据各种用户的需求,对角色的权限动态化管理,为每个用户提供适当的服务以提供定制的基于Web的软件。首先,在物联网平台设计中,本文提出将平台功能模块化,获得多个不同功能模块。然后,经过对现有系统流程中引入角色化概念,结合自定义权限的设定,得到了拟议系统流程图。使用RBAC模型为基础,设计动态权限控制模型并用数据库实现。最后,选取一组完整且具有代表性的数据作为拟议系统的测试集,分析已被授予角色的用户的访问权限;选取一组现有系统二级用户数据作为对比集,与测试集在权限细粒度、角色动态性方面展开分析。由实验可以得出:基于动态角色服务权限控制的拟议系统,在角色动态定义和设置有很大的灵活性,满足用户定制的各种软件组合服务的需求,并支持后期的模块动态扩展。在权限细粒度中,可以根据访问请求者获得权限的条件,将访问的范围精确到模块界面的操作级别。

本文提出的基于动态角色服务权限控制的物联网平台,通过授予用户动态角色特权来管理系统,由分析表明动态权限控制模型有效地为平台提供了细粒度、简单实用的动态访问控制,在实际工程应用中具有重要的指导意义。

猜你喜欢
动态联网模型
脐橙连上物联网 扫码便知“前世今生”
国内动态
适用于BDS-3 PPP的随机模型
国内动态
自制空间站模型
“身联网”等五则
《物联网技术》简介
国内动态
《物联网技术》简介
动态