本发明涉及数据隐私保护技术领域,特别是涉及一种多租户环境的访问控制方法及装置。
背景技术:
云计算是继个人计算机、互联网之后的第三次信息化革命。随着云计算技术应用的进一步深入,云计算隐私保护也成为业界关注的焦点,更是广大用户选择云计算服务的首要考虑因素。访问控制是对用户的访问进行控制,防止不合法用户对数据拥有者的资源进行访问所造成的数据泄露,因而是保证云计算安全的一个重要环节。
随着公有云业务的不断发展,大量应用在云环境中部署,并伴随着用户海量数据在云环境中的处理与存储。原来部署在私有云或企业内部网络的应用迁移到公有云环境中后,不仅要考虑企业内部(租户内部)的数据访问控制,还要考虑企业与企业之间(多租户之间)的数据访问控制。与普通访问控制相比,在多租户云环境中,不同企业需要不同的功能模块和不同的访问控制要求,因而所构建的访问控制方案必须具有灵活性。此外,为了保证租户数据的安全性,要使得租户数据隔离,并且要满足用户跨租户访问的需求。
目前,多租户云环境中的访问控制方案多采用基于角色的访问控制方案,即首先将权限分配给角色,其次,判断用户是否符合拥有分配后的角色的要求,若符合要求,授予该用户访问权限,也就是说,角色被用于将用户和权限联系起来,只有被授予角色的用户才有与角色相关联的访问权限,从而可以访问资源,但是,若要对权限进行细粒度划分,必须对用户进行精确区分,需要定义大量的角色,由于角色数量庞大从而易导致的角色管理和分配困难的问题,因而上述访问控制方法难以适应多租户云环境下不同租户对权限细粒度划分的需求。
技术实现要素:
本发明实施例的目的在于提供一种多租户环境的访问控制方法及装置,以以适应多租户云环境下不同租户对权限细粒度划分的需求。
具体技术方案如下:
接收目标用户针对目标角色的访问请求;
根据所述访问请求获取所述目标用户的主体属性;
确定所述主体属性和当前环境属性是否符合所述目标角色的设定要求;
若符合所述目标角色设定要求,获得是否对所述目标用户进行角色设定的判断结果,其中,所述判断结果是根据所述目标角色对所述目标用户的信任值判断得到的;
在所述判断结果表明进行角色设定时,设定所述目标用户的角色为所述目标角色;
判断所述目标角色是否符合所述第一数据拥有者的权限设定要求;
若符合所述第一数据拥有者的权限设定要求,允许所述目标用户以所述目标角色对所述第一数据拥有者服务器进行资源访问。
进一步地,所述确定所述目标角色是否符合所述第一数据拥有者的权限设定要求,包括:
根据所述访问请求携带的权限属性和当前环境属性,确定所述目标角色是否符合所述第一数据拥有者的权限设定要求。
进一步地,所述获得是否对所述目标用户进行角色设定的判断结果,包括:
获得所述目标用户的用户行为的信任值t2和用户信誉的信任值t3;
根据以下表达式计算所述目标角色对所述目标用户的信任值t,记为第一信任值:
表达式为:t=w2t2+w3t3,
其中,w2和w3分别为t2和t3所占的权重,且w2+w3=1;
将t与设定的用户信任阈值t0进行比较,若t不小于t0,判定对所述目标用户进行角色设定,其中,t为所述第一信任值。
进一步地,在所述允许所述目标用户以所述目标角色对所述第一数据拥有者服务器进行资源访问前,还包括:
获得所述第一数据拥有者的权限对所述目标角色的信任值,作为第二信任值;
利用所述第二信任值,判断是否对所述目标角色进行权限设定;
若是,为所述目标用户分配所述目标角色的权限。
进一步地,所述获得所述第一数据拥有者的权限对所述目标角色的信任值,包括:
获得所述目标角色的角色本身的信任值t2'、角色信誉的信任值t3'以及角色继承的信任值t4'
根据以下表达式,获得所述第一数据拥有者对所述目标角色的信任值t′:
表达式为:t′=w2't2'+w3't3'+w4't4';
其中,w2'、w3'和w4'分别为t2'、t3'和t4'所占的权重,且w2′+w3′+w4′=1。
进一步地,所述利用所述第二信任值,判断是否对所述目标角色进行权限设定,包括:
将t′与设定的信任阈值t0'进行比较,若t′不小于t0',判定对所述目标角色进行权限设定。
进一步地,所述确定所述主体属性和当前环境属性是否符合所述目标角色的设定要求,包括:
确定第二数据拥有者的服务器已确认所述目标用户拥有所述目标角色;
其中,所述第二数据拥有者的服务器通过以下方式确认所述目标用户是否拥有所述目标角色:
所述第二数据拥有者的服务器判断所述主体属性和接收到所述访问请求时的环境属性是否符合所述目标角色的设定要求,若符合,确认所述目标用户拥有所述目标角色。
进一步地,在判断所述目标角色是否符合所述第一数据拥有者的权限设定要求之前,还包括:
获得所述第一数据拥有者的角色对第二数据拥有者的所述目标角色的信任值,作为第三信任值;
利用所述第三信任值,判断是否对所述目标角色进行角色设定;
若是,为第二数据拥有者的所述目标角色分配所述角色。
进一步地,获得所述第一数据拥有者的角色对所述目标角色的信任值,作为第三信任值,包括:
获得所述第一数据拥有者的权限对所述目标角色的信任值t2″、角色信誉的信任值t3″以及角色继承的信任值t4″;
根据以下表达式,获得所述第一数据拥有者对所述目标角色的信任值t″,作为第三信任值:
表达式为:t″=w2″t2″+w3″t3″+w4″t4″,
其中,w2'、w3'和w4'分别为t2″、t3″和t4″所占的权重,且w2″+w3″+w4″=1。
一种基于多租户云环境的访问控制装置,应用于第一数据拥有者的服务器,所述装置包括:
请求接收模块,用于接收目标用户针对目标角色的访问请求;
属性获取模块,用于根据所述访问请求获取所述目标用户的主体属性;
属性判断模块,用于确定所述主体属性和当前环境属性是否符合所述目标角色的设定要求,若符合所述目标角色设定要求,触发判定结果模块;
所述判断结果模块,用于获得是否对所述目标用户进行角色设定的判断结果,触发角色设定模块;其中,所述判断结果是根据所述目标角色对所述目标用户的信任值判断得到的;
所述角色设定模块,用于在所述判断结果表明进行角色设定时,设定所述目标用户的角色为所述目标角色;
第一权限设定判断模块,用于判断所述目标角色是否符合所述第一数据拥有者的权限设定要求,若符合所述第一数据拥有者的权限设定要求,触发访问允许模块;
所述访问允许模块,用于允许所述目标用户以所述目标角色对所述第一数据拥有者服务器进行资源访问。
本发明实施例提供的一种多租户环境的访问控制方法及装置,该方法在判定用户是否符合角色设定要求和角色是否符合权限要求时,分别引入了目标用户的主体属性与当前环境属性和用户访问时的权限属性与当前环境属性,且只有针对符合信任值设定要求的用户,才根据获得的判断结果进行角色设定,允许目标用户以所述目标角色对所述第一数据拥有者服务器进行资源访问。可见本发明实施例提供的方案是一种基于角色、属性和信任的更细粒度的访问控制方案,能够适应多租户云环境下不同租户对权限细粒度划分的需求。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种基于多租户云环境的访问控制方法的流程图;
图2为本发明实施例提供的另一种基于多租户云环境的访问控制方法的流程图;
图3为本发明实施例提供的再一种基于多租户云环境的访问控制方法的流程图;
图4为本发明实施例提供的一种基于多租户云环境的访问控制装置的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
首先对本发明实施例中涉及的概念进行介绍:
一、主体属性
主体属性可以理解为用户的属性。
例如,主体属性包括用户的身份证号、邮箱、联系方式、性别、职业、学位。根据用户的身份证号、邮箱、联系方式、性别、职业、学位等主体属性中的至少一种进行用户注册后,可以得到的用户的独有账户(id)、密码(password)、令牌(token)等;
二、权限属性
权限属性可以理解为数据拥有者授予用户的某种权限的属性。
具体的,权限属性可以包括操作属性和资源属性。其中,操作属性可以理解为:数据拥有者授予用户的对其资源进行某种操作行为的属性,例如,读(read)、写(write)、更新(update)、删除(delete)等;资源属性可以理解为:数据拥有者授予用户访问权限的资源的属性,例如,数据拥有者的资源的类别(type),保密等级(secretlevel)等;
三、环境属性
环境属性可以理解为访问发生时的环境或上下文。例如,发出请求的时间(time)、访问时间长度(thelengthofaccesstime)、地址(一般为ip)等。
四、租户、用户、角色和数据拥有者
在多租户云环境中,包括租户、用户、角色和数据拥有者四个实体,其中:
租户是指租用云服务的实体,云服务提供商可以为多个租户提供服务,租户利用云平台来承载其业务。
用户是指访问租户承载在云服务上的业务的实体,租户的业务可以供多个用户访问。
角色是指在一个租户中用户的身份或工作职能,每个租户中可以有多个角色,但每个角色只能属于一个租户。
数据拥有者是指对被访问的数据具有拥有权的租户。
接下来通过具体实施例对本发明实施提供的基于多租户云环境的访问控制方法进行详细介绍。
需要说明的是,本发明实施例提供的基于多租户云环境的访问控制方法中涉及的各个步骤可以是仅仅由第一数据拥有者的服务器执行的,还可以是由第一数据拥有者的服务器与该服务器所属的云平台中的其他服务器相配合完成的。下面结合这两种情况对本发明实施例提供的基于多租户云环境的访问控制方法进行说明。
图1为本申请实施例提供的第一种基于多租户云环境的访问控制方法,应用于第一数据拥有者的服务器,该方法包括:
s101,接收目标用户针对目标角色的访问请求;
其中,所述访问请求是目标用户向第一数据拥有者的服务器发出对目标资源进行目标操作的请求;所述目标角色是为访问目标资源而设定的身份,若要访问目标资源,首先需要对目标角色发出访问请求,目标用户只有具备了目标角色,才能对目标资源进行访问。
s102,根据所述访问请求获取所述目标用户的主体属性;
其中,获取所述目标用户的主体属性,主要有两种情况,具体为:
当目标用户向第一数据拥有者的服务器发出目标角色的访问请求时;第一数据拥有者的服务器提示目标用户登录或注册;
若目标用户不是第一数据拥有者的服务器内部的用户,则需要进行注册,目标用户向第一数据拥有者的服务器请求注册,第一数据拥有者的服务器根据接收到的注册请求,进行注册,或者第一数据拥有者的服务器可以将目标用户的注册请求发送给云平台的注册服务器,注册服务器根据目标用户填写的主体属性进行注册;注册完成后,执行注册操作的服务器赋予用户唯一的id(identificationyong,账号)、password(密码)和token(令牌)等信息。同时,执行注册操作的服务器根据用户的身份证号、性别等主体属性为用户分配处于未激活状态的角色(deadrole),第一数据拥有者的服务器从自身或者上述注册服务器获取目标用户的主体属性。
若用户已经注册成为第一数据拥有者的服务器内部的用户,则无需进行注册,直接登录即可,用用户已有的id、password和token经由第一数据拥有者的服务器或者第一数据拥有者的用户属性认证服务器进行认证,若认证通过,表示可以响应上述访问请求,能够执行后续步骤,否则,表示可以拒绝上述访问请求,能够不执行后续步骤。当认证通过时,第一数据拥有者的服务器获得目标用户的主体属性。
由于考虑到第一数据拥有者的服务器的工作压力,可以由第一数据拥有者的用户属性认证服务器完成用户属性认证操作,当然也可以由第一数据拥有者的服务器来完成用户属性认证操作,本申请并不对此进行限定。
基于上述情况,上述第一数据拥有者的服务器获得目标用户的主体属性时,可以相应的理解为从完成用户属性认证的服务器中获得目标用户的主体属性,即:由第一数据拥有者的服务器完成用户属性认证时,一般从自身获得目标用户的主体属性;由第一数据拥有者的用户属性认证服务器完成用户属性认证时,一般从第一数据拥有者的用户属性认证服务器获得目标用户的主体属性。
s103,确定所述主体属性和当前环境属性是否符合所述目标角色的设定要求,若符合所述目标角色设定要求,执行s104;
其中,上述确定所述主体属性和当前环境属性是否符合所述目标角色的设定要求,有两种情况。
第一种情况是第一数据拥有者服务器判断所述主体属性和当前环境属性是否符合所述目标角色的设定要求;
此时,上述当前环境属性指的是第一数据拥有者的服务器接收到前述访问请求时的环境属性。
第二种情况是第一数据拥有者服务器确定第二数据拥有者的服务器已确认所述目标用户拥有所述目标角色;即第二数据拥有者服务器根据目标用户的主体属性和当时的环境属性判断目标用户是否符合第二数据拥有者设定的角色要求,第二数据拥有者的服务器将判定的结果发送给第一数据拥有者的服务器,第一数据拥有者的服务器根据第二数据拥有者的服务器判定的结果进行设定。
此时,上述当前环境属性指的是第二数据拥有者的服务器接收到前述访问请求时的环境属性。
所述第二数据拥有者的服务器通过以下方式确认所述目标用户是否拥有所述目标角色:
所述第二数据拥有者的服务器判断所述主体属性和接收到所述访问请求时的环境属性是否符合所述目标角色的设定要求,若符合,确认所述目标用户拥有所述目标角色。
s104,获得是否对所述目标用户进行角色设定的判断结果,其中,所述判断结果是根据所述目标角色对所述目标用户的信任值判断得到的;
其中,上述目标角色对目标用户的信任值,用于表示第一或二数据拥有者授予目标用户目标角色时对目标用户的信任程度,即目标用户若要拥有目标角色,第一或二数据拥有者需要判断目标用户的可信度。
具体的,可以由第一数据拥有者的服务器判断是否对目标用户进行角色设定,也可以由云平台的信任管理服务器判断是否对目标用户进行角色设定。
基于上述两种情况,获得是否对所述目标用户进行角色设定的判断结果,可以分别对应包括以下三种情况。
其中,第1种情况:由第一或二数据拥有者的服务器判断是否对目标用户进行角色设定:具体的,
第一或二数据拥有者的服务器向云平台的信任管理服务器发送信任值获得请求,信任管理服务器依据信任值获得请求从云平台的中心数据库获得目标用户的信任记录,即用户行为的信任值t2和用户信誉的信任值t3,并将t3和t3反馈至第一或二数据拥有者的服务器,第一或二数据拥有者的服务器计算目标用户的信任值t,将t与设定的用户信任阈值t0进行比较,若t不小于t0,判定对所述目标用户进行角色设定。也就是说,第一或二数据拥有者的服务器根据信任管理服务器返回的信任记录进行计算和比较,最终获取是否对所述目标用户进行角色设定的判断结果。
第2种情况:由第一或二数据拥有者根据云平台的信任管理服务器返回的结果判断是否对目标用户进行角色设定:具体的,
第一或二数据拥有者的服务器向云平台的信任管理服务器发送信任值获得请求,信任管理服务器依据信任值获得请求从云平台的中心数据库获得目标用户的信任记录,即用户行为的信任值t2和用户信誉的信任值t3,根据获得目标用户的信任记录计算用户的信任值t,并将t与设定的用户信任阈值t0进行比较,若t小于t0,将返回结果为第一预设值的数据传送给第或二一数据拥有者的服务器,否则,将返回结果为第二预设值的数据传送给给第一或二数据拥有者的服务器,第一或二数据拥有者的服务器根据返回结果对所述目标用户进行角色设定,若接收到返回结果为第二预设值,判定对所述目标用户进行角色设定,否则,拒绝目标用户对目标角色的访问请求。也就是说,信任管理服务器根据中心数据库返回的信任记录进行计算和比较,并将返回结果发送给第一数据拥有者的服务器,第一或二数据拥有者的服务器最终获取是否对所述目标用户进行角色设定的判断结果。
其中,上述第一预设值表示不对目标用户进行角色设定,例如,该预设值的取值可以为0;上述第二预设值表示对目标用户进行角色设定,例如,该预设值的取值可以为1。
第3种情况:由第一或二数据拥有者判断是否对目标用户进行角色设定:具体的,
第一或二数据拥有者的服务器向云平台的信任管理服务器发送信任值获得请求,信任管理服务器依据信任值获得请求从云平台的中心数据库获得目标用户的信任记录,即用户行为的信任值t2和用户信誉的信任值t3,信任管理服务器根据返回的信任记录计算用户的信任值t,并将t反馈至第一或二数据拥有者的服务器,第一或二数据拥有者的服务器将t与设定的用户信任阈值t0进行比较,若t不小于t0,判定对所述目标用户进行角色设定。也就是说,信任管理服务器根据中心数据库返回的信任记录进行计算,第一或二数据拥有者的服务器对信任管理服务器返回的计算结果进行比较,最终获取是否对所述目标用户进行角色设定的判断结果。
可以通过以下方式计算上述三种情况中所提及的t:
根据以下表达式计算所述目标角色对所述目标用户的信任值t:
表达式为:t=w2t2+w3t3,
其中,w2和w3分别为t2和t3所占的权重,且w2+w3=1。
s105,在所述判断结果表明进行角色设定时,设定所述目标用户的角色为所述目标角色;
其中,设定所述目标用户的角色为所述目标角色包括两种情况;
第一种情况:第一数据拥有者的服务器授予所述目标用户拥有目标角色,第二种情况:第二数据拥有者服务器根据目标用户的主体属性和当时的环境属性判断目标用户是否符合第二数据拥有者设定的角色要求,第二数据拥有者的服务器将判定的结果发送给第一数据拥有者的服务器,第一数据拥有者的服务器根据第二数据拥有者的服务器判定的结果进行确定,进而判断第二数据拥有者的服务器分配目标用户的角色是否符合第一数据拥有者的角色。
一种实现方式中,设定所述目标用户的角色为所述目标角色后,若第二数据拥有者中的角色对应的所有用户请求访问第一数据拥有者的角色相应的权限资源时,或第二数据拥有者的角色对应的所有用户请求访问第一数据拥有者中角色相应的权限资源时,第一数据拥有者的服务器还可以作如下操作:
在确定第二数据拥有者的服务器已确认所述目标用户拥有所述目标角色的基础上,获得所述第一数据拥有者的角色对第二数据拥有者的所述目标角色的信任值,作为第三信任值;
利用所述第三信任值,判断是否对所述目标角色进行角色设定;
若是,为第二数据拥有者的所述目标角色分配所述角色。
所述第一数据拥有者的角色对所述目标角色的信任值,计算过程包括:
获得所述第一数据拥有者的权限对所述目标角色的信任值t2″、角色信誉的信任值t3″以及角色继承的信任值t4″;
根据以下表达式,获得所述第一数据拥有者对所述目标角色的信任值t″,作为第三信任值:
表达式为:t″=w2″t2″+w3″t3″+w4″t4″,
其中,w2'、w3'和w4'分别为t2″、t3″和t4″所占的权重,且w2″+w3″+w4″=1。
s106,判断所述目标角色是否符合所述第一数据拥有者的权限设定要求,若符合,执行s107;
一种实现方式中,上述权限设定要求具体为:根据所述权限属性和当前环境属性,判断所述目标角色是否符合第一数据拥有者的权限设定要求,此时,所述当前环境属性为角色设定模块向第一权限设定判断模块发出访问时的环境属性;权限属性为根据目标用户向第一数据拥有者发出访问请求的权限属性。
上述角色设定模块一种情况为第一数据拥有者的服务器中的一个功能性模块,另一种情况为云平台中的一个功能性模块,其中,云平台中还可以包含角色认证服务器,那么角色设定模块可以为角色认证服务器中的功能性模块,上述第一权限设定判断模块为第一数据拥有者的服务器中的一个功能性模块。
s107,允许所述目标用户以所述目标角色对所述第一数据拥有者服务器进行资源访问。
其中,在所述允许所述目标用户以所述目标角色对所述第一数据拥有者服务器进行资源访问前,还包括:
获得所述第一数据拥有者的权限对所述目标角色的信任值,作为第二信任值;
利用所述第二信任值,判断是否对所述目标角色进行权限设定;
若是,为所述目标用户分配所述目标角色的权限。
第一数据拥有者的权限对目标角色的信任值,表示第一数据拥有者授予目标用户目标权限时对目标角色的信任程度,即拥有目标角色的目标用户若要拥有目标权限,第一数据拥有者需要判断目标角色的可信度。
获得所述第一数据拥有者的权限对所述目标角色的信任值t′,具体的,
获得所述目标角色的角色本身的信任值t2'、角色信誉的信任值t3'以及角色继承的信任值t4';
根据以下表达式,获得所述第一数据拥有者对所述目标角色的信任值t′:
表达式为:t′=w2't2'+w3't3'+w4't4',
其中,w2'、w3'和w4'分别为t2'、t3'和t4'所占的权重,且w2′+w3′+w4′=1。
一种实现方式中,利用所述第二信任值,判断是否对所述目标角色进行权限设定,包括:
将t′与设定的信任阈值t0'进行比较,若t′不小于t0',判定对所述目标角色进行权限设定。
上述具体实现方式外,本申请提出另外两种具体实现方式,参见图2和图3。
本发明实施例中,基于多租户云环境的访问控制中访问请求包含租户内部的用户访问请求和跨租户的访问请求。其中,跨租户的访问请求包括以下三种情况:
情况一:租户a中想要访问租户b资源的用户请求加入租户b的相应角色;
情况二:租户a中的角色请求成为租户b中相应角色,则租户a中的角色对应的所有用户请求访问租户b的角色相应的权限资源。
情况三:租户a中的角色请求成为租户b中某一个或某几个角色的祖先角色,则租户a中的角色对应的所有用户请求访问租户b中角色相应的权限资源。
其中,第一数据拥有者就是本实施例的租户b,第二数据拥有者就是本实施例的租户a,用户m代表本实施例的租户a的目标用户,角色na代表本实施例的租户a中的目标角色,角色nb代表本实施例的租户b中的目标角色;
角色nb判断租户a中发出请求的用户是否可信,把问题转化为角色对用户的信任在多租户环境中的扩展。在第二种情况和第三种情况中,租户b(对应于第一数据拥有者)需要判断租户a中发出请求的角色是否可信,把问题都转化为数据拥有者对角色的信任在多租户云环境中的扩展,因此,多租户之间的信任关系可以归类为角色对用户的信任以及数据拥有者对角色的信任,这最终也决定了是否进行用户角色分配和角色权限分配。
本实施例针对多租户云环境,构建了基于角色、属性和信任的访问控制方法,根据前面提到的跨租户访问的三种情况,其中第一种情况与租户内部的访问控制方法的具体实现步骤类似,第二种情况和第三种情况的访问控制方法与跨租户访问控制方法的具体实现步骤一致。整个多租户云环境中的基于角色、属性和信任的访问控制机制的具体实现步骤分为如下两种:
参见图2,提供了适合第一种情况的多租户控制访问方法的流程示意图,该方法包括:
s201,租户b的服务器获取用户m向发出访问的请求,根据用户m的主体属性和当前的环境属性,判断用户m是否符合预设的角色要求;
s202,若符合,根据用户m行为的信任值和用户m信誉的信任值,计算角色对用户m的信任值t;获得用户m的信任值t的过程为:设t2和t3所占的权重分配分别为w2和w3,且w2+w3=1,则用户m的信任值t,t=w2t2+w3t3;将t与设定的用户信任阈值t0进行比较;
s203,若t大于或等于t0,则接受用户拥有角色nb的请求,所述角色nb向租户b请求拥有目标权限时,判断用户m发出请求时的权限属性以及当前环境属性是否符合权限设定的要求;
s204,若符合权限设定的要求,根据角色nb本身的信任值t2'、角色nb信誉的信任值t'以及基于角色nb的信任值t4',计算角色nb的信任值t';获得用户m的信任值t'的过程为:令t2'、t3'和t4'所占的权重分别设为w2'、w3'和w4';那么所述角色nb的信任值t′,t′=w2't2'+w3't3'+w4't4';将t'与设定的信任阈值t0'进行比较,若t'大于或等于t0',则授予用户m访问资源的权限,否则,拒绝用户m的访问请求。
第一种情况的访问方式的实施例一:
租户a与租户b是两个租用云服务的贷款机构,u是租户a中的用户,且想要向租户b贷款,即租户a中的用户u想要成为租户b中的某一个角色k(最高贷款金额为某一金额),那么租户a中的用户u就要向租户b发出想要加入租户b中的角色k的请求,则租户b中的角色k就需要判断租户a中的用户的信任值。
此时,租户b首先对租户a中用户u的属性,以及租户a发出请求时的环境属性进行判断,如果都符合租户b中角色预设的要求,那么此时租户b可以从央行(存储所有金融机构用户的信用记录的中心数据库)调出用户u的信任记录,包括用户u在租户a中的信任记录,用户u在租户b中的信任记录(比如说用户u曾经申请成为租户b中的角色ri,那么b就对用户u有一个信任记录),以及在租户a和租户b之外的其它贷款机构中的信用记录,从而可以根据这些信任记录来计算用户u的信任值。根据信用值,从而租户b决定是否授权用户u访问角色k的权利。
需要说明的是,上述以租户a的用户u向租户b发出访问请求为例进行说明,仅为本发明的一具体实例,并不构成对本发明的限定。
参见图3,提供了适合第二种情况或第三种情况的多租户控制访问方法的流程示意图,该方法包括:
s301,租户b的服务器获取用户m发出对目标资源进行目标操作的请求;确认租户a的服务器确认用户m的主体属性和当前环境属性是否符合预设的角色要求,若不符合,拒绝该用户m的访问请求;
s302,若符合,租户a的服务器根据用户m行为的信任值和用户m信誉的信任值,计算角色na对用户m的信任值ta;
具体的,获得用户m的信任值ta的过程为:设t2a和t3a所占的权重分配分别为w2a和w3a,且w2a+w3a=1,则用户m的信任值ta,ta=w2at2a+w3at3a;将ta与设定的用户信任阈值t0a进行比较;
s303,若ta大于或等于t0a,则用户m拥有角色na,租户b根据角色na,以及当前环境属性来判断用户m发出请求的权限属性是否符合租户a对权限设定的要求;
租户b的服务器判断用户m发出请求时的权限属性和当前环境属性是否符合租户b预设的角色要求,若不符合,拒绝该用户m的访问请求;
s304,若符合,租户b的服务器根据角色na本身的信任值t2″、角色na信誉的信任值t3″以及角色na继承的信任值t4″,计算租户a对角色na的信任值t″;将t″与预先设定的阈值t0″进行比较;
租户b的服务器对角色na的信任值t″的计算过程,具体为,令t2″、t3″和t4″所占的权重分别设为w2″、w3″和w4″;那么所述角色的信任值t″,t″=w2″t2″+w3″t3″+w4″t4″;
s305,若t″小于t0″,则租户b的服务器拒绝用户m的请求,若t″大于或等于t0″,令角色na成为租户b中的相应角色或其祖先角色,即用户m拥有租户b中的角色,租户b的服务器根据角色nb判断当前的环境属性和用户m发出请求的权限属性是否符合设定的权限要求;
s306,若符合,根据角色nb本身的信任值t2'、角色nb信誉的信任值t3'以及角色nb继承的信任值t4',计算租户b对角色nb的信任值t';将租户b对角色nb的信任值t'和与预先设定的阈值t0′进行比较,若t'小于t0′,则租户b的服务器拒绝用户m的请求,若t'大于或等于t0′,则租户b的服务器授予角色na权限。
第二种情况的访问控制方式的具体实施例:
租户a和租户b是两个租用云服务的中小型企业,租户a和租户b想要达成某种合作关系,使得租户a中具有角色i的所有用户可以访问租户b中具有角色j的用户才能访问的资源,这时,可以给租户a中的角色i赋予租户b中的角色j。在此之前,租户b需要对租户a中的角色i的信任值进行判断。首先,租户b要对租户a中角色i的属性,以及租户a发出请求时的环境属性进行判断,并根据计算后的用户信任值判断用户是否符合租户a的角色预设的要求,如果都符合租户a中角色预设的要求,则租户b根据用户在a中的角色,以及相应的环境属性来判断用户发出请求的权限属性是否符合设定要求,进而租户b判断用户符合角色j预设的要求,那么此时租户b可以从中心数据库中调出a中角色i的信任记录,包括角色i在租户b中的信任记录(若租户a中的角色i曾经被赋予租户b中的某一个角色),角色i在租户a中的信任记录以及角色i在其它企业的信任记录(若角色i曾经被其它企业赋予某一角色)。租户b可以根据角色i的这些信任记录来判断角色i的信任值,从而决定是否可能和租户a达成这种合作关系。
需要说明的是,上述以租户a中的角色请求成为租户b中相应角色,则租户a中的角色对应的所有用户均能访问租户b的角色相应的权限资源为例进行说明,仅为本发明的一具体实例,并不构成对本发明的限定。
第三种情况的访问方式的具体实施例:
租户b是一家连锁企业的总部,租户b是租户b旗下的子公司,租户b中的某一角色k想要访问租户b中的角色i能够访问的资源以及角色j能够访问的资源,那么租户b中的角色k可以请求成为租户b中角色i和j的祖先角色,那么租户b中的角色k就能访问租户b中角色i能够访问的资源以及角色j能够访问的资源。在此之前,租户b要对租户b中的角色k的信任值进行判断。首先,租户b要对租户b中角色k的属性,它想访问的资源的属性,对该资源的操作属性以及相应的环境属性进行判断,如果符合租户b中角色i和j预设的要求,那么此时,租户b就可以从中心数据库中调出租户b中角色k的信任记录,包括角色k在租户b中的信任记录(若租户b中的角色k曾经被赋予租户b中某一角色或某几个角色的祖先角色),角色k在租户b中的信任记录以及角色k在租户b之外的其它子公司内的信任记录(若角色k曾经被其它子公司赋予某一角色或某几个角色的祖先角色)。租户b可以根据这些信任记录来判断租户b中角色k的信任值,从而决定是否接受角色k访问租户b中角色i能够访问的资源和角色j能够访问的资源的请求。
由此可见,该方法易于审查用户权限,满足不同租户对权限细粒度划分的需求,有效地实现了跨租户访问的需求,进而提高了租户访问的灵活性,保证了租户数据的安全性;并且通过引入基于角色和属性的信任值,解决了当属性满足要求而用户或角色的信任值较低时,进行用户角色分配和角色权限分配就会降低数据安全性的问题,以及当用户跨租户访问时,租户之间进行授权时的信任问题,提高了租户数据的安全性,满足了用户跨租户访问的要求,是一种更细粒度的访问控制方案。
需要说明的是,上述以租户a中的角色请求成为租户b中某一个或某几个角色的祖先角色,则租户a中的角色对应的所有用户均能访问租户b中角色相应的权限资源,仅为本发明的一具体实例,并不构成对本发明的限定。
与上述解多租户访问控制方法相对应,本申请实施例还提供了一种基于多租户云环境的访问控制装置。
参见图4,本申请实施例还提供了一种基于多租户云环境的访问控制装置。该装置包括:
请求接收模块401,用于接收目标用户针对目标角色的访问请求;
属性获取模块402,用于根据所述访问请求获取所述目标用户的主体属性;
属性判断模块403,用于确定所述主体属性和当前环境属性是否符合所述目标角色的设定要求,若符合所述目标角色设定要求,触发判定结果模块404;
所述判断结果模块404,用于获得是否对所述目标用户进行角色设定的判断结果,触发角色设定模块405;其中,所述判断结果是根据所述目标角色对所述目标用户的信任值判断得到的;
所述角色设定模块405,用于在所述判断结果表明进行角色设定时,设定所述目标用户的角色为所述目标角色;
第一权限设定判断模块406,用于判断所述目标角色是否符合所述第一数据拥有者的权限设定要求,若符合所述第一数据拥有者的权限设定要求,触发访问允许模块407;
所述访问允许模块407,用于允许所述目标用户以所述目标角色对所述第一数据拥有者服务器进行资源访问。
具体的,所述权限设定判断模块,具体用于根据所述访问请求携带的权限属性和当前环境属性,判断所述目标角色是否符合第一数据拥有者的权限设定要求。
所述判断结果模块404,包括:
第一信任值获得子模块,用于获得所述目标用户的用户行为的信任值t2和用户信誉的信任值t3;
第二信任值获得子模块,用于根据以下表达式计算所述目标角色对所述目标用户的信任值t:
表达式为:t=w2t2+w3t3,
其中,w2和w3分别为t2和t3所占的权重,且w2+w3=1;
角色设定判断子模块,用于将t与设定的用户信任阈值t0进行比较,若t不小于t0,判定对所述目标用户进行角色设定,其中,t为所述第一信任值。
所述装置还包括:
第二信任值获得模块,用于获得所述第一数据拥有者的权限对所述目标角色的信任值,作为第二信任值;
第二权限设定判断模块,用于利用所述第二信任值,判断是否对所述目标角色进行权限设定,若是,触发权限分配模块;
所述权限分配模块,用于为所述目标用户分配所述目标角色的权限,并触发所述访问允许模块。
所述第二信任值获得模块,包括:
第三信任值获得子模块,用于获得所述目标角色的角色本身的信任值t2'、角色信誉的信任值t3'以及角色继承的信任值t4';
第四信任值获得子模块,用于根据以下表达式计算所述第一数据拥有者对所述目标角色的信任值t′:
表达式为:t′=w2't2'+w3't3'+w4't4',
其中,w2'、w3'和w4'分别为t2'、t3'和t4'所占的权重,且w2′+w3′+w4′=1。
所述第二权限设定判断模块,具体用于将t′与设定的信任阈值t0'进行比较,若t′不小于t0',判定对所述目标角色进行权限设定。
所述装置还包括:
角色拥有确定模块,用于确定第二数据拥有者的服务器已确认所述目标用户拥有所述目标角色;
其中,所述第二数据拥有者的服务器在判断所述主体属性和接收到所述访问请求时的环境属性符合所述目标角色的设定要求时,确认所述目标用户拥有所述目标角色。
第五信任值获得模块,用于获得所述第一数据拥有者的角色对所述目标角色的信任值,作为第三信任值;
第三权限设定判断模块,用于获得所述第一数据拥有者的角色对第二数据拥有者的所述目标角色的信任值,作为第三信任值;利用所述第三信任值,判断是否对所述目标角色进行角色设定;若是,为第二数据拥有者的所述目标角色分配所述角色。
所述权限分配模块,用于为所述目标用户分配所述目标角色的权限,并触发所述权限设定判断模块。
第六信任值获得子模块,用于获得所述第一数据拥有者的角色对所述目标角色的信任值t2″、角色信誉的信任值t3″以及角色继承的信任值t4″;
第七信任值获得子模块,用于根据以下表达式,获得所述第一数据拥有者对所述目标角色的信任值t″:
表达式为:t″=w2″t2″+w3″t3″+w4″t4″,
其中,w2'、w3'和w4'分别为t2″、t3″和t4″所占的权重,且w2″+w3″+w4″=1。
所述第三权限设定判断模块,用于将t″与设定的信任阈值t0″进行比较,若t″不小于t0″,判定对所述目标角色进行权限设定,并触发所述属性获取模块402。
本申请文件提供的装置在判定用户是否符合角色设定要求和角色是否符合权限要求时,分别引入了目标用户的主体属性与当前环境属性和用户访问时的权限属性与当前环境属性,且只有针对符合信任值设定要求的用户,才根据获得的判断结果进行角色设定,允许目标用户以所述目标角色对所述第一数据拥有者服务器进行资源访问。可见本申请文件提供的装置是一种基于角色、属性和信任的更细粒度的访问控制装置,能够适应多租户云环境下不同租户对权限细粒度划分的需求。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。