一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种基于OSAC和PERM访问控制模型的改进方法与流程

2021-12-07 20:56:00 来源:中国专利 TAG:

一种基于osac和perm访问控制模型的改进方法
技术领域
1.本发明属于边缘云计算技术领域,特别涉及一种基于osac和perm访问控制模型的改进方法。


背景技术:

2.为适应企业需求,一部分企业选择将应用部署在云服务提供商的云计算平台,在此场景下,云服务提供商对数据资源及用户鉴权的控制成为至关重要的安全问题。
3.传统的方法是采用rbac模型进行用户、角色、权限的控制,即将权限绑定在角色上,再在创建用户的时候给用户赋予角色,但是rbac的鉴权模式只限定了用户操作的权限,却没限制用户操作数据的权限,比如,给角色赋予了操作云主机的权限,就会导致此角色下的所有人都有操作云主机的权限,无法细分其他人或者其他组织对该云主机不可见。
4.另一种方式是openstack的访问控制(osac),osac基于rbac实现的原生访问控制模型实现用户的访问控制,此模型每对一个用户授权就需要有一个角色绑定在用户上,在面对大量不同类型、层次的用户涌入以及随之而来的动态的权限分配与多用户的使用场景势必会造成访问权限控制的混乱与低效。
5.原生osac模型针对openstack使用场景而设计,可移植性较差,并且osac模型仍存有rbac模型的缺点。


技术实现要素:

6.针对相关技术中的上述技术问题,本发明提出一种基于osac和perm访问控制模型的改进方法,能够克服现有技术的上述不足。
7.为实现上述技术目的,本发明的技术方案是这样实现的:
8.一种基于osac和perm访问控制模型的改进方法,该方法包括:
9.子账户用户通过云平台前端发送查看云主机列表的请求到后端服务,其中,请求的内容包括请求动作、请求资源路径,请求资源路径包括请求资源归属账户、请求资源类型;
10.后端服务接受请求,根据请求获取子账户用户绑定的权限策略信息,从请求中获取请求的内容,后端将请求内容拼成临时的权限策略信息;
11.后端服务自定义匹配桩函数,匹配桩函数将权限策略信息和临时的权限策略信息进行匹配,得出匹配结果,即鉴权结果,其中,
12.当鉴权结果为真时,鉴权成功,返回期望数据,其中,当子账户用户查看云主机列表的时,看到唯一性标志符对应的云主机的信息;
13.当鉴权结果为假时,鉴权失败,返回空列表。
14.进一步的,所述得出匹配结果中,采用逻辑运算的方式得出匹配结果,即当子账户用户绑定若干策略时,必须对所述若干策略进行逻辑真假判断。
15.进一步的,所述匹配桩函数将权限策略信息和临时的权限策略信息进行匹配,得
出匹配结果,包括:
16.检查权限策略信息和临时的权限策略信息是否一致,其中,若匹配结果一致,则匹配结果为真;若至少有一个未匹配成功,则匹配结果为假。
17.进一步的,所述子账户用户由主账户创建,主账户将权限策略信息授权给子账户用户。
18.本发明的有益效果:通过该方法,增加了云计算平台访问控制的可行性,规避了用户操作数据权限的高风险,实现了模型表达能力的拓展以及细颗粒度的动态权限分配,在性能上也得以大大提升;本发明基于osac和perm进行改造,将策略的制定从osac模型及实现中剥离开来,交由实际用户进行填写,使策略内容在改进后的模型中实现透明,实现用户权限更加细粒度的访问控制。
附图说明
19.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
20.图1示出了根据本发明实施例的osac模型图;
21.图2示出了根据本发明实施例的perm元模型图;
22.图3示出了根据本发明实施例的基于perm改进osac模型图;
23.图4示出了根据本发明实施例的osac模型与改进后模型对比图;
24.图5示出了根据本发明实施例的一种基于osac和perm访问控制模型的改进方法的流程框图。
具体实施方式
25.为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地说明,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
26.如图1所示,一种基于osac和perm访问控制模型的改进方法,该方法包括:
27.步骤s1:子账户用户通过云平台前端发送查看云主机列表的请求到后端服务,其中,请求的内容包括请求动作、请求资源路径,请求资源路径包括请求资源归属账户、请求资源类型;
28.步骤s2:后端服务接受请求,根据请求获取子账户用户绑定的权限策略信息,从请求中获取请求的内容,后端将请求内容拼成临时的权限策略信息;
29.步骤s3:后端服务自定义匹配桩函数,匹配桩函数将权限策略信息和临时的权限策略信息进行匹配,得出匹配结果,即鉴权结果,其中,
30.当鉴权结果为真时,鉴权成功,返回期望数据,其中,当子账户用户查看云主机列表的时,看到唯一性标志符对应的云主机的信息;
31.当鉴权结果为假时,鉴权失败,返回空列表。
32.在本发明的一些实施例中,所述得出匹配结果中,采用逻辑运算的方式得出匹配结果,即当子账户用户绑定若干策略时,必须对所述若干策略进行逻辑真假判断。
33.在本发明的一些实施例中,所述匹配桩函数将权限策略信息和临时的权限策略信息进行匹配,得出匹配结果,包括:
34.检查权限策略信息和临时的权限策略信息是否一致,其中,若匹配结果一致,则匹配结果为真;若至少有一个未匹配成功,则匹配结果为假。
35.在本发明的一些实施例中,所述子账户用户由主账户创建,主账户将权限策略信息授权给子账户用户。
36.如图1所示,原生的osac模型基于角色访问控制模型(rbac)设计,包含用户、用户组、角色、项目、域等。osac中仅仅通过角色为用户分配在特定项目上的权限。
37.如图2所示,perm元模型由四个基本原语(policy、effect、request、matcher)组成,通过request、policy原语抽象化描述访问请求与策略规则、matcher定义访问请求与策略规则的匹配规则、effect集成多个匹配结果,从而实现3个性质:策略语言无关性、访问控制模型无关性和程序设计语言无关性。
38.如图4所示,改进后的模型改变了授权逻辑,将用户与角色作为同一级直接授权,实现了用户动态权限管理,可以令用户直接授权。原生的osac模型授权内容与请求内容只有restapi的请求,改造后的模型以策略作为授权内容,请求内容在restapi的基础上多了策略权限的内容,通过自定义策略的引进,使权限的认证更加细粒度。实现匹配器,实现自定义桩函数,并已集成器的方式实现鉴权,令整个鉴权更加灵活且细粒度。
39.如图5所示,改进后的模型将策略的制定从模型及其现实中剥离开来,交由用户根据实际情况填写,因此策略内容对改进后的模型是透明的。
40.1、本发明所要解决的技术问题(发明目的)
41.为了增加云计算平台访问控制的可行性,规避用户操作数据权限的高风险,本发明基于perm改进osac模型,在perm和osac的基础上提出改进方案,使用perm为osac增添策略集成与匹配桩函数,不依赖访问控制模型的特性与实现方式,从而实现用户直接获得鉴权,拓展模型的表达能力,实现细颗粒度的动态权限分配。
42.2、本发明提供的工作原理(发明方案)
43.如下图3,改进后的模型将用户(users)与角色(roles)变为同层次的授权结构,即可将权限授予角色也可直接将权限授予用户。同时,授权采取了配置策略(policy)形式,策略的内容从对资源的url访问路径拓展成了包含访问路径、访问资源归属、请求动作与策略效果四大部分。其中资源路径定义为:resource,访问资源归属定义为:资源组project、资源归属账户account,请求动作定义为:action,策略效果定义为:eft,使用perm原语表示为:
44.p=project,account,resource,action,eft(1)
45.访问请求从原先的url访问路径拓展成包含访问资源路径、访问资源归属、请求动作三大部分,使用perm原语表示为:
46.r=project,account,resource,action(2)
47.公式(1)和(2)中使用resource描述资源路径(urn),为了实现对每个细颗粒度的资源管控,本发明设计了一套包含资源类型type和资源唯一标志符id的统一资源路径
(uniformresourcename)来定位具体资源:
48.resource=service,account,type,id(3)
49.资源urn的格式为ucs:${服务名称}:${区域唯一性标志符}:${主账户唯一性标志符}:${资源类型}/${资源唯一性标志符};
50.改进后的模型可以在匹配器(mathcer)中使用自定义的匹配桩函数custommathcer匹配策略(policy)与访问请求(request),使用perm原语表示匹配器为
[0051][0052]
在实际的应用场景中,用户往往不止有一个权限策略,一个权限策略也不止有一条权限,因此用户的访问请求需要和多个权限进行匹配,这就要求对多个策略的匹配结果进行集成。在原生osac模型缺乏策略集成的背景下,改进的模型使用了策略效果集成器(macher),可以按需设置策略集成效果。集成器与匹配器协作使用,匹配器每匹配成功一个策略时,会将策略的效果记录在效果列表中交由集成器进行逻辑运算。
[0053]
3、作为本发明的与现有技术的区别点:
[0054]
原生osac模型针对openstack使用场景而设计,可移植性较差,并且osac模型仍存有rbac模型的缺点。本发明基于osac和perm进行改造,将策略的制定从osac模型及实现中剥离开来,交由实际用户进行填写,使策略内容在改进后的模型中实现透明,实现用户权限更加细粒度的访问控制。
[0055]
通过本发明的设计,增加了云计算平台访问控制的可行性,规避了用户操作数据权限的高风险,实现了模型表达能力的拓展以及细颗粒度的动态权限分配,在性能上也得以大大提升。
[0056]
改进后模型的表达能力的实验主要将改进后的模型与原生的osac模型在表达能力做出了对比,结果见表1.公有云平台通常以租户为单位来管理云用户,因此,是否支持多租户对云平台访问控制至关重要。改进后模型通过account(资源归属账户)概念代替地域概念以支持云环境下租户粒度的权限管理。openstack通过授予权限到角色,绑定角色到用户的方式实现用户权限分配,不支持用户动态权限管理,改进后的模型改变了授权逻辑,将用户与角色作为同一级直接授权,实现了用户动态权限管理。改进模型中实现的策略基础器与匹配器使其支持了策略集成与桩函数功能。
[0057]
性能评估的实验主要研究原生osac模型与改进后模型在性能方面的差距,本文在相同环境下对同一数据源下的同一条用户鉴权请求在两个访问控制模型下多次请求的耗费时间做了测试,测试数据如表2所示。表2详细展示了在50、100、200、500次重复请求的情况下,两种不同模型的实现完成所需要的毫秒数,可以计算出改进后的模型相较原生模型有大约10%的性能损失。
[0058]
表1 osac模型与改造后模型表达对比
[0059][0060]
表2 osac模型与改造后模型性能对比
[0061]
请求次数50100200500osac模型7361152723036775139改造后模型8231176823335184178
[0062]
本例发明提供一种基于osac和perm访问控制的改进方法,实现模型表达能力的可拓展,细颗粒度的实现用户访问控制的动态权限分配。
[0063]
如下图5,高权限的用户可以制定策略授予其管理域下的用户,得到授权的用户发出访问资源的请求后,将会通过匹配器对权限策略和请求进行匹配,匹配结果集经过效果集成器逻辑运算得到最后鉴权结果。
[0064]
界面上展示如下以查看云主机详情为例。
[0065]
s1、主账户1(唯一性标志符为1463963314690513)在区域1中创建多个云主机:云主机1、云主机2、云主机3、云主机4,其中一个云主机1的唯一性标志符为i

3fb205f3b5d44bae;
[0066]
s2、主账户(唯一性标志符为1463963314690513)根据策略规则创建一个自定义策略,策略规则:ucs:${服务名称}:${区域唯一性标志符}:${主账户唯一性标志符}:${资源类型}/${资源唯一性标志符},如添加一个策略policy

1为:acs:ecs:cn

wuxi1:1463963314690513:instance/i

3fb205f3b5d44bae;
[0067]
s3、主账户1(唯一性标志符为1463963314690513)创建一个子账户用户user1;
[0068]
s4、主账户1(唯一性标志符为1463963314690513)将s2创建的权限策略policy

1授权给s3创建的子账户用户user1,即为user1绑定权限policy

1,并由后端服务将用户与权限的数据存到相应的数据库;
[0069]
s5、s3创建的子账户用户user1登陆云平台,查看云主机列表,
[0070]
s6、子账户用户user1只能看到唯一性标志符为i

3fb205f3b5d44bae的云主机1。
[0071]
技术上的鉴权流程如下(如下图5):
[0072]
sa、子账户用户user1登陆云平台查看云主机列表,云平台的前端发送查看云主机列表(请求动作action为listinstances)(s5)的restapi请求到后端服务,其中用户user1所发送请求的资源路径为acs:ecs:cn

wuxi1:1463963314690513:instance/i

3fb205f3b5d44bae。
[0073]
sb、后端服务接受restapi请求,根据请求数据user1的信息查询数据库获取到用户user1所绑定的权限策略信息policy

1。从请求内容中获取到请求动作action为listinstances,请求资源归属账户1463963314690513,请求资源类型instance,由后端拿
到上述有效信息拼成一个临时的policy

2。
[0074]
sc、后端服务自定义一个匹配桩函数,该函数中将获取到的权限策略policy

1与由访问请求内容拼成的临时策略policy

2进行匹配,匹配的过程就是检查policy

1与policy

2是否一致的过程。
[0075]
sd、根据检查policy

1与policy

2是否一致的结果获取到匹配后的结果集,其中,一致为true,不一致为false。并将结果集进行逻辑运算,逻辑运算的时候秉持着false优先原则,即当user1绑定了多个策略的时候,那么就需要对user1中策略进行多次的匹配,从而会获取多个匹配结果,在匹配结果中,只要有其中一条策略匹配不通过(false)的时候,该用户的结果集就是false,只有所有的策略全部匹配通过的时候,才为true。
[0076]
se、通过sd的逻辑运算得出鉴权结果effect。
[0077]
sf、当effect为true的时候,鉴权通过,返回期望数据,user1查看云主机列表的时候只能看到云主机的唯一性标志符为i

3fb205f3b5d44baeeffect的云主机1;当effect为false时,鉴权失败,user1查看云主机列表的时候只能看到空列表。
[0078]
osac:openstackaccesscontrol,开放栈访问控制。
[0079]
perm:访问控制元模型,由四个基本原语组成:policy、effect、request、matcher,描述了资源与用户之间的关系。
[0080]
rbac:role

basedaccesscontrol,基于角色的访问控制。
[0081]
通过该方法,增加了云计算平台访问控制的可行性,规避了用户操作数据权限的高风险,实现了模型表达能力的拓展以及细颗粒度的动态权限分配,在性能上也得以大大提升;本发明基于osac和perm进行改造,将策略的制定从osac模型及实现中剥离开来,交由实际用户进行填写,使策略内容在改进后的模型中实现透明,实现用户权限更加细粒度的访问控制。
[0082]
尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献