一种基于区块链的访问控制方法及装置与流程



1.本技术涉及网络技术领域,尤其涉及一种基于区块链的访问控制方法及装置。


背景技术:



2.访问控制是指允许特定的授权主体对象对客体对象进行访问,同时可以阻止为没有授权的主体提供服务的一种策略。即,对“谁可以访问什么数据资源”、“谁对数据资源可以进行操作”、“可以进行什么样的操作”等一系列问题的相关访问权限进行管理。
3.传统的基于角的访问控制(rbac,role-based access control)为典型的且最为广泛应用的访问控制应用场景,该种方法可以简单灵活的进行访问控制,但是用户权限更改困难,存在控制粒度较粗的问题;且由于该方法通常都由一个集中式的授权认证中心依据访问控制策略和用户信息进行访问控制决策,每个访问请求都指向同一个中心化机构或组织,存在单点故障和安全问题。
4.因此,目前亟需一种基于区块链的访问控制方法及装置,能够既能实现细粒度的进行访问控制,又能提高访问控制的安全性。


技术实现要素:



5.本发明实施例提供一种基于区块链的访问控制方法及装置,能够既能实现细粒度的进行访问控制,又能提高访问控制的安全性。
6.第一方面,本发明实施例提供一种基于区块链的访问控制方法,访问控制策略设置在所述区块链的智能合约中,该方法包括:
7.客户端接收后台服务器发送的用户权限信息,所述用户权限信息中包含用户角、可操作的数据对象以及对所述数据对象的操作权限;
8.所述客户端生成访问权限请求,所述访问权限请求中包含所述用户权限信息、操作信息和被操作数据对象;
9.所述客户端将所述访问权限请求发送至所述区块链,以使所述访问控制策略根据预设算法和所述用户权限信息、所述操作信息、所述被操作数据对象确定决策结果,并通过所述区块链的共识机制在所述区块链中存证所述决策结果。
10.上述方法中,将访问控制策略设置在区块链的智能合约中,相比于现有的传统的基于角的访问控制来说,本技术可以通过区块链实现数据的操作不可被恶意操纵或篡改,以及数据有强可追溯性,不可伪造性和不可篡改性等,提高访问控制的安全性。且相比于传统的基于角的访问控制中设置用户组对应的权限,本技术针对每个用户设置权限,实现细粒度的访问控制。提高用户权限定制的细化和修改的灵活度。另外,所述客户端将包含用户权限信息、操作信息和被操作数据对象的所述访问权限请求发送至所述区块链。如此,使访问控制机制中的预设算法得到该算法的输入,进而该预设算法根据所述用户权限信息、所述操作信息、所述被操作数据对象确定决策结果,并通过所述区块链的共识机制在所述区块链中存证所述决策结果。改善了区块链中

一步流程一共识’的原则;只需要将用
户权限信息、操作信息、被操作数据对象作为输入,输入到预设算法,使得预设算法输出的决策结果,最后直接将决策结果共识存证即可,降低区块链中共识节点

一步流程一共识’原则的记录数据-存证数据量,加快访问控制效率。
11.可选的,客户端接收后台服务器发送的用户权限信息,包括:所述客户端根据用户登录信息生成权限获取请求;所述客户端将所述权限获取请求发送至所述后台服务器,以使得所述后台服务器根据所述用户登录信息和用户权限记录确定用户权限信息,所述用户权限记录中包含针对每个用户的用户权限信息;所述客户端接收所述后台服务器发送的所述用户权限信息。
12.上述方法中,通过后台服务器存储用户权限记录,以及根据用户登录信息确定用户权限信息。如此,可以直接在后台服务器中更新用户权限信息,便于用户权限信息的管理,以实现更细粒度的访问控制方法。且使得智能合约中的预设算法的输入中就包含了用户权限信息和操作信息、被操作数据对象,预设算法直接根据输入即可算的决策结果,有效的降低区块链的计算量,提高访问控制效率。
13.可选的,所述访问控制策略根据预设算法和所述用户权限信息、所述操作信息、所述被操作数据对象确定决策结果之后,还包括:所述客户端接收访问权限通知,所述访问权限通知为所述访问控制机制根据所述决策结果确定的。
14.上述方法中,客户端接收访问权限通知。如此,使得客户端用户确定是否有对该被操作数据对象进行相应操作的权限。
15.可选的,所述决策结果为允许访问,接收访问权限通知之后,还包括:所述客户端确定所述访问权限通知为允许访问通知;所述客户端生成数据访问请求;所述客户端将所述数据访问请求发送至资源端,使得所述资源端根据所述数据访问请求对所述被操作数据对象执行所述操作信息中对应的操作,生成数据访问结果,并通过所述区块链的共识机制在所述区块链中存证所述数据访问结果;所述客户端接收所述数据访问结果。
16.上述方法中,客户端接收的访问权限通知为允许访问通知,则确定该客户端的用户具有访问权限,则客户端可以生成数据访问请求并发送至资源端,资源端可以同样接收到允许该用户访问的通知,则针对该数据访问请求中的被操作数据对象执行操作信息中对应的操作,生成数据访问结果。如此,保证可以安全快速的对被操作数据对象完成对应操作,并存证数据访问结果。
17.可选的,所述预设算法包括:
18.request()

function(attr(u),attr(o),attr(r),attr(p))
19.其中,request()是布尔变量取1代表所述决策结果为允许访问,取0代表所述决策结果为拒绝访问;attr(u)用于指示访问权限请求对应的用户,attr(o)用于指示被操作数据对象,attr(r)用于指示用户角,attr(p)用于指示操作信息。
20.上述方法中,通过该预设算法可以确定操作信息和被操作数据对象是否满足用户权限信息。进而可以准确快速的确定该用户是否具有对被操作数据对象进行操作信息中操作的权限。
21.可选的,所述访问控制策略根据预设算法和所述用户权限信息、所述操作信息、所述被操作数据对象确定决策结果,包括:以所述用户权限信息为第一集合,以所述操作信息对应的操作以及所述被操作数据对象为第二集合;计算所述第一集合与所述第二集合的关
系,根据所述第一集合与所述第二集合的关系确定决策结果。
22.上述方法中,通过集合算法计算用户权限信息中是否包含操作信息对应的操作和被操作数据对象,如此可以快速确定决策结果,且通过该算法使得区块链的共识机制可以无需

一步流程一共识’直接存证决策结果即可。
23.可选的,根据所述第一集合与所述第二集合的关系确定决策结果,包括:
24.若所述第二集合为所述第一集合的子集,则所述决策结果为允许访问;
25.否则,所述决策结果为拒绝访问。
26.上述方法中,若所述第二集合为所述第一集合的子集,则用户权限信息中包含操作信息对应的操作和被操作数据对象,则代表该用户具有对被操作数据对象进行该操作的权限,则可以允许访问。否则,代表该用户不具有对被操作数据对象进行该操作的权限,则可以拒绝访问。
27.可选的,还包括:所述客户端根据接收的用户权限变更指令,生成权限变更请求;所述客户端将所述权限变更请求发送至所述后台服务器,使得所述后台服务器根据所述权限变更请求中的用户权限信息更新所述用户权限记录中的对应用户权限信息。
28.上述方法中,在后台服务器中更新用户权限信息就可以快速动态修改用户权限。即可以降低更新用户权限信息的工作量,还将该更新动作与区块链解耦,使得该过程中不用涉及区块链共识,进一步降低区块链共识压力。
29.第二方面,本发明实施例提供一种基于区块链的访问控制装置,访问控制策略设置在所述区块链的智能合约中,该装置包括:
30.收发模块,用于接收后台服务器发送的用户权限信息,所述用户权限信息中包含用户角、可操作的数据对象以及对所述数据对象的操作权限;
31.处理模块,用于生成访问权限请求,所述访问权限请求中包含所述用户权限信息、操作信息和被操作数据对象;
32.所述收发模块还用于,将所述访问权限请求发送至所述区块链,以使所述访问控制策略根据预设算法和所述用户权限信息、所述操作信息、所述被操作数据对象确定决策结果,并通过所述区块链的共识机制在所述区块链中存证所述决策结果。
33.第三方面,本技术实施例还提供一种计算设备,包括:存储器,用于存储程序;处理器,用于调用所述存储器中存储的程序,按照获得的程序执行如第一方面的各种可能的设计中所述的方法。
34.第四方面,本技术实施例还提供一种计算机可读非易失性存储介质,包括计算机可读程序,当计算机读取并执行所述计算机可读程序时,使得计算机执行如第一方面的各种可能的设计中所述的方法。
35.本技术的这些实现方式或其他实现方式在以下实施例的描述中会更加简明易懂。
附图说明
36.为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
37.图1为本发明实施例提供的一种基于区块链的访问控制的架构示意图;
38.图2为本发明实施例提供的一种基于区块链的访问控制的架构示意图;
39.图3为本发明实施例提供的一种基于区块链的访问控制的架构示意图;
40.图4为本发明实施例提供的一种基于区块链的访问控制方法的流程示意图;
41.图5为本发明实施例提供的一种基于区块链的访问控制方法的流程示意图;
42.图6为本发明实施例提供的一种基于区块链的访问控制的装置示意图。
具体实施方式
43.为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
44.图1为本发明实施例提供的一种基于区块链的访问控制的架构示意图,其中,后台服务器中存储有用户权限记录,用户权限记录中包含针对每个用户的用户权限信息;区块链的智能合约中设置有访问控制策略,该访问控制策略中可以包含约束单元,约束单元中包含预设算法,该预设算法可以根据输入的用户权限信息、操作信息、被操作数据对象确定决策结果并输出,各节点直接共识该决策结果。客户端可以提供用户登录界面,获取用户登录信息,进一步使得后台服务器根据用户登录信息确定用户权限记录中的该用户对应的用户权限信息,则客户端可以生成包含该用户权限信息的访问权限请求,将访问权限请求发送至区块链,获取决策结果,根据决策结果生成数据访问请求,使得资源端执行对应操作。其中,资源端可以是区块链中的任一一个或多个节点,如图2所示;资源端也可以是区块链对应的具有数据存储功能的后端节点,如图3所示,这里对资源端的具体设置不做限定。
45.基于上述系统架构,本技术实施例提供了一种基于区块链的访问控制方法流程,如图4所示,包括:
46.步骤401、客户端接收后台服务器发送的用户权限信息,所述用户权限信息中包含用户角、可操作的数据对象以及对所述数据对象的操作权限;
47.步骤402、所述客户端生成访问权限请求,所述访问权限请求中包含所述用户权限信息、操作信息和被操作数据对象;
48.步骤403、所述客户端将所述访问权限请求发送至所述区块链,以使所述访问控制策略根据预设算法和所述用户权限信息、所述操作信息、所述被操作数据对象确定决策结果,并通过所述区块链的共识机制在所述区块链中存证所述决策结果。
49.上述方法中,将访问控制策略设置在区块链的智能合约中,相比于现有的传统的基于角的访问控制来说,本技术可以通过区块链实现数据的操作不可被恶意操纵或篡改,以及数据有强可追溯性,不可伪造性和不可篡改性等,提高访问控制的安全性。且相比于传统的基于角的访问控制中设置用户组对应的权限,本技术针对每个用户设置权限,实现细粒度的访问控制。提高用户权限定制的细化和修改的灵活度。另外,所述客户端将包含用户权限信息、操作信息和被操作数据对象的所述访问权限请求发送至所述区块链。如此,使访问控制机制中的预设算法得到该算法的输入,进而该预设算法根据所述用户权限信息、所述操作信息、所述被操作数据对象确定决策结果,并通过所述区块链的共识机制在
所述区块链中存证所述决策结果。改善了区块链中

一步流程一共识’的原则;只需要将用户权限信息、操作信息、被操作数据对象作为输入,输入到预设算法,使得预设算法输出的决策结果,最后直接将决策结果共识存证即可,降低区块链中共识节点

一步流程一共识’原则的记录数据-存证数据量,加快访问控制效率。
50.本技术实施例提供了一种用户权限信息获取方法,客户端接收后台服务器发送的用户权限信息,包括:所述客户端根据用户登录信息生成权限获取请求;所述客户端将所述权限获取请求发送至所述后台服务器,以使得所述后台服务器根据所述用户登录信息和用户权限记录确定用户权限信息,所述用户权限记录中包含针对每个用户的用户权限信息;所述客户端接收所述后台服务器发送的所述用户权限信息。在一种示例中,用户的登录信息可以包括用户账号、用户密码等信息,则如,秋絮的用户账号为qiuxu,用户密码为123456;客户端根据用户账号:qiuxu、用户密码:123456生成权限获取请求,并发送至后台服务器,后台服务器中的用户权限记录中包含该用户账号:qiuxu、用户密码:123456、用户角:护士以及其对应的可操作数据对象信息:可操作数据对象a、b、c、d、e;操作信息:可操作数据对象a、b、c、d、e都可被

用户账号:qiuxu、用户密码:123456、用户角:护士’的用户查看、可操作数据对象a只可被查看、可操作数据对象b、c可以被查看和增加相关信息、可操作数据对象d、e可以被查看、增加、删除、更改。后台服务器将获取的该用户的用户权限信息(用户账号:qiuxu、用户密码:123456、用户角:护士;可操作数据对象信息:可操作数据对象a、b、c、d、e;操作信息:可操作数据对象a、b、c、d、e都可被

用户账号:qiuxu、用户密码:123456、用户角:护士’的用户查看、可操作数据对象a只可被查看、可操作数据对象b、c可以被查看和增加相关信息、可操作数据对象d、e可以被查看、增加、删除、更改)发送至客户端,客户端接收该用户权限信息。上述示例只是一种可实施方式,并不对本方案做限制。其中,将用户权限信息设置在后台服务器可以提高用户权限信息修改的简便性,便于用户权限信息的管理;且还可以降低区块链计算量,提高访问控制效率。另外,针对每个用户有其对应的用户权限信息,由此可以实现更细粒度的访问控制,提高访问控制灵活性。
51.本技术实施例提供了一种决策结果获取方法,所述访问控制策略根据预设算法和所述用户权限信息、所述操作信息、所述被操作数据对象确定决策结果之后,还包括:所述客户端接收访问权限通知,所述访问权限通知为所述访问控制机制根据所述决策结果确定的。也就是说,在区块链中的访问控制机制确定决策结果后,根据决策结果生成访问权限通知,并将访问权限通知告知发送至客户端,使得客户端获知决策结果,以确定是否可以对被操作数据对象进行相应操作。
52.本技术实施例提供了一种基于区块链的访问控制方法,所述决策结果为允许访问,接收访问权限通知之后,还包括:所述客户端确定所述访问权限通知为允许访问通知;所述客户端生成数据访问请求;所述客户端将所述数据访问请求发送至资源端,使得所述资源端根据所述数据访问请求对所述被操作数据对象执行所述操作信息中对应的操作,生成数据访问结果,并通过所述区块链的共识机制在所述区块链中存证所述数据访问结果;所述客户端接收所述数据访问结果。也就是说,若区块链中的访问控制机制告知客户端的访问权限通知为允许访问通知,则客户端可以生成包含被操作数据对象及其对应的操作信息的数据访问请求,将该数据访问请求发送至资源端,使得资源端根据该数据访问请求中的被操作数据对象及其对应的操作信息,执行针对该被操作数据对象的操作,获取数据访
问结果,并由区块链的共识机制共识存证该数据访问结果。
53.本技术实施例提供了一种预设算法,所述预设算法包括:
54.request()

function(attr(u),attr(o),attr(r),attr(p))
55.其中,request()是布尔变量取1代表所述决策结果为允许访问,取0代表所述决策结果为拒绝访问;attr(u)用于指示访问权限请求对应的用户,attr(o)用于指示被操作数据对象,attr(r)用于指示用户角,attr(p)用于指示操作信息。也就是说,访问控制机制中可以包含预设算法,该预设算法可以用于根据用户权限信息判定该用户、用户角、用户的操作信息、用户的被操作数据对象是否符合用户权限信息,以作出相应的决策结果。
56.本技术实施例提供了一种确定决策结果方法,所述访问控制策略根据预设算法和所述用户权限信息、所述操作信息、所述被操作数据对象确定决策结果,包括:以所述用户权限信息为第一集合,以所述操作信息对应的操作以及所述被操作数据对象为第二集合;计算所述第一集合与所述第二集合的关系,根据所述第一集合与所述第二集合的关系确定决策结果。也就是说,预设算法可以是集合算法,以用户权限信息为第一集合,判断第一集合与包含该用户、用户角、用户的操作信息、用户的被操作数据对象的第二集合的关系,根据第一集合和第二集合的关系判断用户的操作是否符合用户权限信息,进而获取决策结果。
57.本技术实施例提供了一种确定决策结果方法,根据所述第一集合与所述第二集合的关系确定决策结果,包括:若所述第二集合为所述第一集合的子集,则所述决策结果为允许访问;否则,所述决策结果为拒绝访问。也就是说,预设算法可以是集合算法,以用户权限信息为第一集合,判断包含该用户、用户角、用户的操作信息、用户的被操作数据对象的第二集合是否是第一集合的子集,若是,则代表该用户的访问权限请求符合用户权限,作出决策结果。在上述示例中,第一集合,即用户权限信息包括:用户账号:qiuxu、用户密码:123456、用户角:护士;可操作数据对象信息:可操作数据对象a、b、c、d、e;操作信息:可操作数据对象a、b、c、d、e都可被

用户账号:qiuxu、用户密码:123456、用户角:护士’的用户查看、可操作数据对象a只可被查看、可操作数据对象b、c可以被查看和增加相关信息、可操作数据对象d、e可以被查看、增加、删除、更改;第二集合包含:用户账号:qiuxu、用户密码:123456、用户角:护士;被操作数据对象a;操作信息:删除。由此可知第二集合不是第一集合的子集,则决策结果为拒绝访问。若第二集合包含:用户账号:qiuxu、用户密码:123456、用户角:护士;被操作数据对象a;操作信息:查看被操作数据对象a。由此可知第二集合是第一集合的子集,则决策结果为允许访问。
58.本技术实施例提供了一种用户权限信息变更方法,还包括:所述客户端根据接收的用户权限变更指令,生成权限变更请求;所述客户端将所述权限变更请求发送至所述后台服务器,使得所述后台服务器根据所述权限变更请求中的用户权限信息更新所述用户权限记录中的对应用户权限信息。在上述示例中,若秋絮的用户角发生变更,用户角由护士变更为护士长,则可以对数据对象a进行增加信息操作。客户端可以根据管理员等工作人员的用户权限变更指令,生成包含用户角:由护士变更为护士长,可操作数据对象a只可被查看变更为可操作数据对象a可以为查看且可以执行增加信息操作的权限变更请求;客户端将权限变更请求发送至后台服务器,由后台服务器在用户权限记录中对应修改该用户的用户权限信息为用户账号:qiuxu、用户密码:123456、用户角:护士;可操作数据对象信
息:可操作数据对象a、b、c、d、e;操作信息:可操作数据对象a、b、c、d、e都可被

用户账号:qiuxu、用户密码:123456、用户角:护士’的用户查看、可操作数据对象a、b、c可以被查看和增加相关信息、可操作数据对象d、e可以被查看、增加、删除、更改。由此,相比于现有技术中根据角设置用户组的用户权限信息,或者将用户权限信息设置在区块链中,本方法可以提高访问控制机制的灵活性。
59.基于上述方法流程,本技术实施例提供了一种基于区块链的访问控制方法流程,如图5所示,包括:
60.步骤501、客户端接收用户的用户登录信息,根据该用户登录信息生成权限获取请求。
61.步骤502、客户端将权限获取请求发送至后台服务器。
62.步骤503、后台服务器接收到权限获取请求后,根据用户登录信息确定用户权限记录中的该用户的用户权限信息。
63.步骤504、后台服务器将用户权限信息返回至客户端。
64.步骤505、客户端接收后台服务器发送的用户权限信息后,根据该用户权限信息生成访问权限请求。
65.步骤506、客户端将访问权限请求发送至区块链。
66.步骤507、区块链接收该访问权限请求后,获取访问权限请求中的用户权限信息、操作信息和被操作数据对象等信息。此处,需要和说明的是,这里列举的访问权限请求中信息仅是一种示例,并不对具体实施做限制。
67.步骤508、区块链智能合约中的访问控制机制以该用户权限信息、操作信息和被操作数据对象等信息为预设算法的输入,获取决策结果。
68.步骤509、区块链的共识机制在区块链中存证该决策结果。
69.步骤510、区块链根据该决策结果生成访问权限通知。
70.步骤511、区块链将访问权限通知发送至客户端和资源端。
71.步骤512、客户端接收访问权限通知后,判断访问权限通知是否为允许访问通知,若是允许访问通知,则执行步骤513;若是拒绝访问通知,否则结束流程。
72.步骤513、客户端生成数据访问请求,并将该数据访问请求发送至资源端。
73.步骤514、资源端接收该数据访问请求后,对被操作数据对象执行操作信息中对应的操作,生成数据访问结果,并通过区块链的共识机制在区块链中存证数据访问结果。
74.步骤515、资源端将数据访问结果发送至客户端。
75.步骤516、客户端接收用户权限变更指令,生成权限变更请求。这里的用户权限变更指令可以是自动生成的,也可以是管理人员等输入相关信息生成的,具体不做限定。
76.步骤517、客户端将该权限变更请求发送至后台服务器。
77.步骤518、后台服务器根据该权限变更请求中的用户权限信息更新用户权限记录中的对应用户权限信息。
78.这里需要说明的是,上述流程步骤并不唯一,如步骤501至步骤515可以在步骤516至步骤518之前执行,也可以在其之后执行;步骤510可以在步骤509之前执行;由此,上述流程步骤只是一种示例,并不对该访问控制方法的具体实施做限制。
79.基于同样的构思,本发明实施例提供一种基于区块链的访问控制的装置,图6为本
申请实施例提供的一种基于区块链的访问控制的装置示意图,其访问控制策略设置在所述区块链的智能合约中,如图6示,包括:
80.收发模块601,用于接收后台服务器发送的用户权限信息,所述用户权限信息中包含用户角、可操作的数据对象以及对所述数据对象的操作权限;
81.处理模块602,用于生成访问权限请求,所述访问权限请求中包含所述用户权限信息、操作信息和被操作数据对象;
82.所述收发模块601还用于,将所述访问权限请求发送至所述区块链,以使所述访问控制策略根据预设算法和所述用户权限信息、所述操作信息、所述被操作数据对象确定决策结果,并通过所述区块链的共识机制在所述区块链中存证所述决策结果。
83.可选的,所述收发模块601还用于:根据用户登录信息生成权限获取请求;所述客户端将所述权限获取请求发送至所述后台服务器,以使得所述后台服务器根据所述用户登录信息和用户权限记录确定用户权限信息,所述用户权限记录中包含针对每个用户的用户权限信息;所述客户端接收所述后台服务器发送的所述用户权限信息。
84.可选的,所述收发模块601还用于:接收访问权限通知,所述访问权限通知为所述访问控制机制根据所述决策结果确定的。
85.可选的,所述处理模块602还用于:所述客户端确定所述访问权限通知为允许访问通知;所述客户端生成数据访问请求;所述客户端将所述数据访问请求发送至资源端,使得所述资源端根据所述数据访问请求对所述被操作数据对象执行所述操作信息中对应的操作,生成数据访问结果,并通过所述区块链的共识机制在所述区块链中存证所述数据访问结果;所述客户端接收所述数据访问结果。
86.可选的,所述预设算法包括:
87.request()

function(attr(u),attr(o),attr(r),attr(p))
88.其中,request()是布尔变量取1代表所述决策结果为允许访问,取0代表所述决策结果为拒绝访问;attr(u)用于指示访问权限请求对应的用户,attr(o)用于指示被操作数据对象,attr(r)用于指示用户角,attr(p)用于指示操作信息。
89.可选的,所述处理模块602具体用于:以所述用户权限信息为第一集合,以所述操作信息对应的操作以及所述被操作数据对象为第二集合;计算所述第一集合与所述第二集合的关系,根据所述第一集合与所述第二集合的关系确定决策结果。
90.可选的,所述处理模块602具体用于:若所述第二集合为所述第一集合的子集,则所述决策结果为允许访问;否则,所述决策结果为拒绝访问。
91.可选的,所述收发模块601还用于:所述客户端根据接收的用户权限变更指令,生成权限变更请求;所述客户端将所述权限变更请求发送至所述后台服务器,使得所述后台服务器根据所述权限变更请求中的用户权限信息更新所述用户权限记录中的对应用户权限信息。
92.本领域内的技术人员应明白,本技术的实施例可提供为方法、系统、或计算机程序产品。因此,本技术可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本技术可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
93.本技术是参照根据本技术的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
94.这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
95.这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
96.显然,本领域的技术人员可以对本技术进行各种改动和变型而不脱离本技术的精神和范围。这样,倘若本技术的这些修改和变型属于本技术权利要求及其等同技术的范围之内,则本技术也意图包含这些改动和变型在内。

技术特征:


1.一种基于区块链的访问控制方法,其特征在于,访问控制策略设置在所述区块链的智能合约中,所述方法包括:客户端接收后台服务器发送的用户权限信息,所述用户权限信息中包含用户角、可操作的数据对象以及对所述数据对象的操作权限;所述客户端生成访问权限请求,所述访问权限请求中包含所述用户权限信息、操作信息和被操作数据对象;所述客户端将所述访问权限请求发送至所述区块链,以使所述访问控制策略根据预设算法和所述用户权限信息、所述操作信息、所述被操作数据对象确定决策结果,并通过所述区块链的共识机制在所述区块链中存证所述决策结果。2.如权利要求1中所述的方法,其特征在于,客户端接收后台服务器发送的用户权限信息,包括:所述客户端根据用户登录信息生成权限获取请求;所述客户端将所述权限获取请求发送至所述后台服务器,以使得所述后台服务器根据所述用户登录信息和用户权限记录确定用户权限信息,所述用户权限记录中包含针对每个用户的用户权限信息;所述客户端接收所述后台服务器发送的所述用户权限信息。3.如权利要求1中所述的方法,其特征在于,所述访问控制策略根据预设算法和所述用户权限信息、所述操作信息、所述被操作数据对象确定决策结果之后,还包括:所述客户端接收访问权限通知,所述访问权限通知为所述访问控制机制根据所述决策结果确定的。4.如权利要求3中所述的方法,其特征在于,所述决策结果为允许访问,接收访问权限通知之后,还包括:所述客户端确定所述访问权限通知为允许访问通知;所述客户端生成数据访问请求;所述客户端将所述数据访问请求发送至资源端,使得所述资源端根据所述数据访问请求对所述被操作数据对象执行所述操作信息中对应的操作,生成数据访问结果,并通过所述区块链的共识机制在所述区块链中存证所述数据访问结果;所述客户端接收所述数据访问结果。5.如权利要求1中所述的方法,其特征在于,所述预设算法包括:request()

function(attr(u),attr(o),attr(r),attr(p))其中,request()是布尔变量取1代表所述决策结果为允许访问,取0代表所述决策结果为拒绝访问;attr(u)用于指示访问权限请求对应的用户,attr(o)用于指示被操作数据对象,attr(r)用于指示用户角,attr(p)用于指示操作信息。6.如权利要求1中所述的方法,其特征在于,所述访问控制策略根据预设算法和所述用户权限信息、所述操作信息、所述被操作数据对象确定决策结果,包括:以所述用户权限信息为第一集合,以所述操作信息对应的操作以及所述被操作数据对象为第二集合;计算所述第一集合与所述第二集合的关系,根据所述第一集合与所述第二集合的关系确定决策结果。
7.如权利要求6中所述的方法,其特征在于,根据所述第一集合与所述第二集合的关系确定决策结果,包括:若所述第二集合为所述第一集合的子集,则所述决策结果为允许访问;否则,所述决策结果为拒绝访问。8.如权利要求1-7中任一所述的方法,其特征在于,还包括:所述客户端根据接收的用户权限变更指令,生成权限变更请求;所述客户端将所述权限变更请求发送至所述后台服务器,使得所述后台服务器根据所述权限变更请求中的用户权限信息更新所述用户权限记录中的对应用户权限信息。9.一种基于区块链的访问控制装置,其特征在于,访问控制策略设置在所述区块链的智能合约中,所述装置包括:收发模块,用于接收后台服务器发送的用户权限信息,所述用户权限信息中包含用户角、可操作的数据对象以及对所述数据对象的操作权限;处理模块,用于生成访问权限请求,所述访问权限请求中包含所述用户权限信息、操作信息和被操作数据对象;所述收发模块还用于,将所述访问权限请求发送至所述区块链,以使所述访问控制策略根据预设算法和所述用户权限信息、所述操作信息、所述被操作数据对象确定决策结果,并通过所述区块链的共识机制在所述区块链中存证所述决策结果。10.一种计算设备,其特征在于,包括:存储器,用于存储程序指令;处理器,用于调用所述存储器中存储的程序指令,按照获得的程序执行权利要求1至8任一项所述的方法。

技术总结


本发明实施例提供一种基于区块链的访问控制方法及装置,访问控制策略设置在区块链的智能合约中,该方法包括:客户端接收后台服务器发送的用户权限信息,用户权限信息中包含用户角、可操作的数据对象以及对数据对象的操作权限;客户端生成访问权限请求,访问权限请求中包含用户权限信息、操作信息和被操作数据对象;客户端将访问权限请求发送至所述区块链,以使访问控制策略根据预设算法和用户权限信息、操作信息、被操作数据对象确定决策结果,并通过区块链的共识机制在区块链中存证决策结果。上述方法中,访问控制策略设置在智能合约,用户权限信息设置在后台服务器,既能实现细粒度访问控制,又能提高访问控制的安全性,降低区块链计算量。降低区块链计算量。降低区块链计算量。


技术研发人员:

何晨迪 高雪松 陈维强

受保护的技术使用者:

海信集团控股股份有限公司

技术研发日:

2021.05.20

技术公布日:

2022/11/24

本文发布于:2024-09-22 13:40:44,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/1/3426.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:所述   区块   信息   数据
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议