资源访问方法、装置及设备
技术领域
本文件涉及计算机技术领域,尤其涉及一种资源访问方法、装置及设备。
背景技术
随着无纸化办公的普及,各种电子形式的文档、表格、图片等成为用户的主要办公资源。对于一些重要的资源,用户通常会进行隐私设置,经隐私设置的资源只有该用户可以访问,其他用户均无权访问。但实际生活中,也存在一些业务场景,用户希望其指定的用户可以访问资源,而除该指定用户外的其他用户无权访问资源。
发明内容
本说明书一个或多个实施例的目的是提供一种资源访问方法、装置及设备,以解决粗粒度的资源访问授权不能满足用户需求的问题。
为解决上述技术问题,本说明书一个或多个实施例是这样实现的:
本说明书一个或多个实施例提供了一种资源访问方法。该方法包括接收资源的持有用户的第一终端设备发送的授权请求。其中,所述授权请求用于请求为待授权用户授予所述资源的访问权限。所述授权请求包括所述资源的第一数字身份信息、所述待授权用户的第二数字身份信息和待授予的访问权限信息。根据所述第一数字身份信息、所述第二数字身份信息和所述访问权限信息,生成可验证声明。将所述可验证声明的第一记录信息保存至区块链中。将所述可验证声明发送给所述第一终端设备,以使所述第一终端设备将所述可验证声明发送给所述待授权用户的第二终端设备。或者,将所述可验证声明发送给所述待授权用户的可验证声明托管平台,以使所述托管平台代理所述待授权用户保存所述可验证声明。
本说明书一个或多个实施例提供了一种资源访问装置。所述装置包括接收模块,其接收资源的持有用户的第一终端设备发送的授权请求。其中,所述授权请求用于请求为待授权用户授予所述资源的访问权限。所述授权请求包括所述资源的第一数字身份信息、所述待授权用户的第二数字身份信息和待授予的访问权限信息。该装置还包括第一生成模块,其根据所述第一数字身份信息、所述第二数字身份信息和所述访问权限信息,生成可验证声明。该装置还包括保存模块,其将所述可验证声明的第一记录信息保存至区块链中。该装置还包括发送模块,其将所述可验证声明发送给所述第一终端设备,以使所述第一终端设备将所述可验证声明发送给所述待授权用户的第二终端设备。或者,发送模块将所述可验证声明发送给所述待授权用户的可验证声明托管平台,以使所述托管平台代理所述待授权用户保存所述可验证声明。
本说明书一个或多个实施例提供了一种资源访问设备。该设备包括处理器。该设备还包括被安排成存储计算机可执行指令的存储器。所述计算机可执行指令在被执行时接收资源的持有用户的第一终端设备发送的授权请求。其中,所述授权请求用于请求为待授权用户授予所述资源的访问权限。所述授权请求包括所述资源的第一数字身份信息、所述待授权用户的第二数字身份信息和待授予的访问权限信息。根据所述第一数字身份信息、所述第二数字身份信息和所述访问权限信息,生成可验证声明。将所述可验证声明的第一记录信息保存至区块链中。将所述可验证声明发送给所述第一终端设备,以使所述第一终端设备将所述可验证声明发送给所述待授权用户的第二终端设备。或者,将所述可验证声明发送给所述待授权用户的可验证声明托管平台,以使所述托管平台代理所述待授权用户保存所述可验证声明。
本说明书一个或多个实施例提供了一种存储介质。该存储介质用于存储计算机可执行指令。所述计算机可执行指令在被执行时接收资源的持有用户的第一终端设备发送的授权请求。其中,所述授权请求用于请求为待授权用户授予所述资源的访问权限。所述授权请求包括所述资源的第一数字身份信息、所述待授权用户的第二数字身份信息和待授予的访问权限信息。根据所述第一数字身份信息、所述第二数字身份信息和所述访问权限信息,生成可验证声明。将所述可验证声明的第一记录信息保存至区块链中。将所述可验证声明发送给所述第一终端设备,以使所述第一终端设备将所述可验证声明发送给所述待授权用户的第二终端设备。或者,将所述可验证声明发送给所述待授权用户的可验证声明托管平台,以使所述托管平台代理所述待授权用户保存所述可验证声明。
本说明书的一个实施例中,实现了细粒度的、对部分用户的资源访问授权,能够更好的满足业务发展需求;再者,通过将可验证声明的第一记录信息保存至区块链中,不仅确保了授权的有效性,而且能够为访问权限的验证提供有效依据。
附图说明
为了更清楚地说明本说明书一个或多个实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本说明书一个或多个实施例提供的一种资源访问方法的第一种场景示意图;
图2为本说明书一个或多个实施例提供的一种资源访问方法的第二种场景示意图;
图3为本说明书一个或多个实施例提供的一种资源访问方法的第三种场景示意图;
图4为本说明书一个或多个实施例提供的一种资源访问方法的第四种场景示意图;
图5为本说明书一个或多个实施例提供的一种资源访问方法的第一种流程示意图;
图6为本说明书一个或多个实施例提供的一种资源访问方法的第二种流程示意图;
图7为本说明书一个或多个实施例提供的一种资源访问方法的第三种流程示意图;
图8为本说明书一个或多个实施例提供的一种资源访问方法的第四种流程示意图;
图9为本说明书一个或多个实施例提供的一种资源访问方法的第五种流程示意图;
图10为本说明书一个或多个实施例提供的一种资源访问方法的第六种流程示意图;
图11为本说明书一个或多个实施例提供的一种资源访问方法的第七种流程示意图;
图12为本说明书一个或多个实施例提供的一种资源访问方法的第八种流程示意图;
图13为本说明书一个或多个实施例提供的权限变更过程的第一种流程示意图;
图14为本说明书一个或多个实施例提供的权限变更过程的第二种流程示意图;
图15为本说明书一个或多个实施例提供的一种资源访问装置的模块组成示意图;
图16为本说明书一个或多个实施例提供的一种资源访问设备的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本说明书一个或多个实施例中的技术方案,下面将结合本说明书一个或多个实施例中的附图,对本说明书一个或多个实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本说明书的一部分实施例,而不是全部的实施例。基于本说明书一个或多个实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本文件的保护范围。
图1为本说明书一个或多个实施例提供的一种资源访问方法的应用场景示意图,如图1所示,该场景包括:资源的持有用户的第一终端设备、权限控制节点和区块链;其中,第一终端设备可以为手机、平板电脑、台式计算机、便携笔记本式计算机等(图1中仅示出手机);第一终端设备通过无线网络与权限控制节点进行通信连接。
具体的,资源的持有用户预先从指定机构为其持有的资源申请第一数字身份信息,以通过第一数字身份信息标识该资源。当资源的持有用户的第一终端设备接收到待授权用户的第二终端设备发送的访问授权请求时,或者资源的持有用户与待授权用户线下协商访问授权事宜之后,资源的持有用户操作其第一终端设备,编辑资源的第一数字身份信息、待授权用户的第二数字身份信息、待授予的访问权限信息等;第一终端设备响应于资源的持有用户的授权操作,向权限控制节点发送授权请求。权限控制节点根据授权请求包括的第一数字身份信息、第二数字身份信息和访问权限信息等生成可验证声明(英文全称:Verifiable Claims;简称:VC);将可验证声明的第一记录信息保存至区块链中,并将可验证声明发送给第一终端设备,以使第一终端设备将可验证声明发送给待授权用户的第二终端设备;或者,如图2所示,该场景还可以包括待授权用户的可验证声明托管平台(以下简称托管平台),权限控制节点将可验证声明发送至该托管平台,以使托管平台代理待授权用户保存可验证声明。其中,数字身份信息如DID(英文全称:Decentralized Identifiers;中文:去中心化身份或分布式身份)。
进一步的,在本说明书的一个或多个实施例中,权限控制节点可以为区块链中的第一区块链节点,对应的,在图1基础上的资源访问方法的应用场景示意图如图3所示;需要说明的是,在图2的基础上权限控制节点也可以为区块链中的第一区块链节点。
进一步的,在本说明书的一个或多个实施例中,权限控制节点还可以为对资源的访问权限进行控制的权限控制平台,对应的,如图4所示,在图1基础上的资源访问方法的应用场景中还可以包括至少一个接入区块链的区块链节点(图4中仅示出一个),权限控制平台通过无线网络与区块链节点进行通信连接,并通过区块链节点将可验证声明的第一记录信息保存至区块链中;需要说明的是,在图2的基础上权限控制节点也可以为权限控制平台。
以上,根据资源的第一数字身份信息、待授权用户的第二数字身份信息以及待授予的访问权限信息等生成可验证声明,以对待授权用户授予对资源的访问权限,使得该待授权用户可基于可验证声明访问相应的资源;由此,实现了细粒度的、对部分用户的资源访问授权,能够更好的满足业务发展需求;再者,通过将可验证声明的第一记录信息保存至区块链中,不仅确保了授权的有效性,而且能够为访问权限的验证提供有效依据。
基于上述应用场景架构,本说明书一个或多个实施例提供了一种资源访问访问。图5为本说明书一个或多个实施例提供的一种资源访问方法的流程示意图,图5中的方法能够由图1中的权限控制节点执行,如图5所示,该方法包括以下步骤:
步骤S102,接收资源的持有用户的第一终端设备发送的授权请求;其中,授权请求用于请求为待授权用户授予资源的访问权限;授权请求包括资源的第一数字身份信息、待授权用户的第二数字身份信息和待授予的访问权限信息;
其中,资源如文档、图片、表格、文件夹等,待授予的访问权限信息如对资源的读权限、写权限、修改权限等信息。
步骤S104,根据第一数字身份信息、第二数字身份信息和访问权限信息,生成可验证声明,将可验证声明的第一记录信息保存至区块链中;
其中,可验证声明为资源的持有用户为待授权用户授予的资源访问权限的证明。
需要指出的是,当权限控制节点为前述权限控制平台时,相应的,步骤S104中将可验证声明的第一记录信息保存至区块链中,包括:权限控制平台向区块链节点发送可验证声明的第一记录信息,以使区块链节点将第一记录信息保存至区块链中。
步骤S106,将可验证声明发送给第一终端设备,以使第一终端设备将可验证声明发送给待授权用户的第二终端设备;或者,将可验证声明发送给待授权用户的可验证声明托管平台,以使托管平台代理待授权用户保存可验证声明。
本说明书一个或多个实施例中,根据资源的第一数字身份信息、待授权用户的第二数字身份信息以及待授予的访问权限信息等生成可验证声明,以对该待授权用户授予对资源的访问权限,使得该待授权用户可基于可验证声明访问相应的资源;由此,实现了细粒度的、对部分用户的资源访问授权,能够更好的满足业务发展需求;再者,通过将可验证声明的第一记录信息保存至区块链中,不仅确保了授权的有效性,而且能够为访问权限的验证提供有效依据。
为了确保授予的访问权限有效,本说明书一个或多个实施例中,在生成可验证声明之前对待授予的访问权限信息进行验证;具体的,如图6所示,步骤S104包括:
步骤S104-2,若确定访问权限信息满足预设的授权条件,则根据第一数字身份信息、第二数字身份信息和访问权限信息,生成可验证声明,将可验证声明的第一记录信息保存至区块链中。
具体的,授权请求还包括第一签名数据,该第一签名数据为采用第一数字身份信息所对应的私钥,对第一指定信息进行签名而得的签名数据;其中,第一指定信息可以在实际应用中根据需要自行设定,例如第一指定信息包括第一数字身份信息、第二数字身份信息、访问权限信息中的一个或多个。相应的,步骤S104-2中确定访问权限信息满足预设的授权条件,包括:
若根据获取的第一数字身份信息所对应的公钥对第一签名数据验证通过、且确定访问权限信息未同时包括第一预设权限信息和第二预设权限信息,则确定访问权限信息满足预设的授权条件;其中,第一预设权限信息所对应的权限与第二预设权限信息所对应的权限为互斥的权限。例如,第一权限信息为all,表征对待授权用户授予对资源的所有访问权限,第二预设权限信息为none,表征对待授权用户不授予任何权限。需要指出的是,当待授予的访问权限信息中包括第一预设权限信息all或者包括第二预设权限信息none时,可忽略其他权限信息,如待授予的访问权限信息中包括write(写权限)和all,则确定对待授权用户授予对资源的所有访问权限。
进一步的,获取第一数字身份信息所对应的公钥可以包括:根据第一数字身份信息从区块链中查询对应的文档(did doc),从查询到的文档中获取公钥;或者,根据第一数字身份信息向指定的安全机构发送公钥获取请求,以使该安全机构根据第一数字身份信息,从保存的数字身份信息与公钥的对应关系中获取对应的公钥,并将获取的公钥发送给权限控制节点;权限控制节点接收安全机构发送的公钥。
更进一步的,若确定访问权限信息不满足预设的授权条件,则发送授权失败信息给第一终端设备。
通过对待授予的访问权限信息进行验证,确保了授予的访问权限的有效性,避免了因授予互斥的访问权限而造成的无法界定访问权限等问题。
由于资源的持有用户可能对多个待授权用户授予权限,为了对授予的各待授权用户的访问权限进行区分,以及在后续进行访问权限验证时,能够便捷的从区块链中查询到对应的第一记录信息,本说明书一个或多个实施例中,如图7所示,步骤S102之后还可以包括:
步骤S103-2,根据第一预设算法,基于第一数字身份信息和第二数字身份信息生成可验证声明的声明标识;
其中,第一预设算法可以在实际应用中根据需要自行设定,例如第一预设算法为sha256算法,相应的,步骤S103-2可以包括:将第一数字身份信息与第二数字身份信息拼接得到拼接字符串,采用sha256算法对得到的拼接字符串进行运算,并将运算结果确定为声明标识。
步骤S103-4,将声明标识保存至指定数据库中。
其中,指定数据库包括各处于有效状态的可验证声明的声明标识,以在进行访问权限信息验证时,无需访问区块链,即可快速的基于指定数据库包括的声明标识,确定是否存在相应的可验证声明。
与步骤S103-2和步骤S103-4对应的,如图7所示,步骤S104包括:
步骤S104-4,获取第二签名数据,其中,第二签名数据为采用第一数字身份信息所对应的私钥,对第二指定信息进行签名而得的签名数据;
可选地,第二指定信息与前述第一指定信息相同,即第二签名数据为前述第一签名数据,相应的,获取第二签名数据包括:从授权请求中获取第一签名数据,并将获取的第一签名数据确定为第二签名数据。或者,第二指定信息与第一指定信息不同,且第一数字身份信息所对应的私钥由资源的持有者保管,即保存于第一终端设备中;相应的,获取第二签名数据包括:权限控制节点根据第一数字身份信息,向第一终端设备发送签名请求,以使第一终端设备采用保存的第一数字身份信息对应的私钥,对第二指定信息进行签名得到第二签名数据,并将第二签名数据发送给权限控制节点;权限控制节点接收第一终端设备发送的第二签名数据。或者,第二指定信息与第一指定信息不同,且第一数字身份信息所对应的私钥保存于密钥托管机构;相应的,获取第二签名数据包括:权限控制节点根据第一数字身份信息,向密钥托管机构用户的第四终端设备发送签名请求,以使第四终端设备采用保存的第一数字身份信息所对应的私钥,对第二指定信息进行签名得到第二签名数据,并将第二签名数据发送给权限控制节点;权限控制节点接收第四终端设备发送的第二签名数据。
步骤S104-6,根据声明标识、第二签名数据、第一数字身份信息、第二数字身份信息和访问权限信息,生成可验证声明;
步骤S104-8,根据第二预设算法,计算可验证声明的哈希值;
其中,第二预设算法可以在实际应用中根据需要自行设定,例如为MD5算法等。
步骤S104-10,将声明标识、哈希值、表征可验证声明处于有效状态的有效性字段关联记录,将记录的信息确定为可验证声明的第一记录信息;
步骤S104-12,将第一记录信息保存至区块链中。
通过生成可验证声明的声明标识,并基于声明标识生成可验证声明,能够根据声明标识对各可验证声明进行有效区分,进而根据可验证声明对各待授权用户的访问权限进行区分;再者,通过计算可验证声明的哈希值,并根据计算的哈希值、声明标识等生成第一记录信息,能够在确保授予的资源访问权限的隐私性的基础上,为后续资源访问权限的验证提供有效依据。
考虑到不同的用户具有不同的可验证声明的使用习惯,本说明书一个或多个实施例中,待授权用户可以选择自行保管可验证声明,还可以选择由可验证声明托管平台代为保管可验证声明,并在其第二数字身份信息对应的文档中声明可验证声明的托管方信息;与之对应的,如图8所示,步骤S106包括:
步骤S106-2,获取第二数字身份信息所对应的文档;
具体的,当权限控制节点为第一区块链节点时,根据第二数字身份信息从区块链中查询对应的文档;当权限控制节点为权限控制平台时,根据第二数字身份信息向区块链节点发送查询请求,以使区块链节点根据第二数字身份信息从区块链中查询对应的文档,并将查询到的文档发送给权限控制平台;或者,区块链节点根据第二数字身份信息从区块链中查询到对应的文档后,确定文档中是否包括可验证声明的托管方信息,并将确定结果信息发送给权限控制平台。
步骤S106-4,确定获取的文档中是否包括可验证声明的托管方信息,是则执行步骤S106-6,否则执行步骤S106-8;
步骤S106-6,将可验证声明发送给托管方信息所对应的托管平台,以使托管平台代理待授权用户保存可验证声明;
步骤S106-8,将可验证声明发送给第一终端设备,以使第一终端设备将可验证声明发送给待授权用户的第二终端设备。
至此,权限控制节点基于第一终端设备发送的授权请求,生成可验证声明,以通过可验证声明证明授予的资源访问权限,完成了资源的持有用户对待授权用户的资源访问授权,实现了细粒度的、对部分用户的资源访问授权。之后,待授权用户即可基于可验证声明访问相应的资源,为了确保待授权用户仅可对资源进行已被授予的访问权限所对应的操作,如图9所示,本说明书一个或多个实施例中,步骤S106之后还包括:
步骤S108,接收资源所在的第三终端设备发送的鉴权请求;其中,鉴权请求为第三终端设备基于待授权用户对资源的访问请求而发送;鉴权请求包括待验证的访问权限信息;
具体而言,当待授权用户需要访问资源时,操作资源(如点击或双击资源等),资源所在的第三终端设备检测到待授权用户的资源访问操作时,可以展示访问信息输入界面,以使待授权用户输入自身的第二数字身份信息、访问类型信息等,并在访问信息输入完成时点击提交按钮,以向第三终端设备发送访问请求;第三终端设备接收到访问请求时,获取待授权用户提交的访问信息,根据访问类型信息确定待验证的访问权限信息;以及根据第一数字身份信息所对应的私钥对第三指定信息进行签名得到第三签名数据,根据第三签名数据、确定的访问权限信息、第一数字身份信息、第二数字身份信息等生成鉴权请求,向权限控制节点发送鉴权请求。
其中,访问类型信息如读资源、写资源等,相应的确定的访问权限信息为读权限、写权限等。第三指定信息可以在实际应用中根据需要自信设定,如第三指定信息包括确定的访问权限信息、第一数字身份信息、第二数字身份信息等中的一个或多个。需要指出的,当待授权用户自行保管可验证声明时,还通过访问信息输入界面上传可验证声明,对应的,鉴权请求还包括可验证声明。
步骤S110,获取可验证声明;
如前所述,鉴权请求还包括第三签名数据,相应的,如图10所示,步骤S110包括:
步骤S110`,若根据获取的第一数字身份信息所对应的公钥对鉴权请求包括的第三签名数据验证通过、且确定待验证的访问权限信息满足预设的访问条件,则获取可验证声明。
具体的,根据鉴权请求包括的第一数字身份信息,获取对应的公钥;采用获取的公钥验证第三签名数据,若验证未通过,则发送验证失败的验证结果给第三终端设备;若验证通过,则确定待验证的访问权限信息是否同时包括第一预设权限信息和第二预设权限信息,若是,则确定待验证的访问权限信息不满足预设的访问条件,发送验证失败的验证结果给第三终端设备;若否,则确定待验证的访问权限信息满足预设的访问条件,获取可验证声明,以基于可验证声明验证鉴权请求包括的访问权限信息是否在已授予的访问权限之内。其中,获取第一数字身份信息对应的公钥的过程,可参见前述相关描述,这里不再赘述。
进一步的,考虑到未被授权的用户也可能尝试访问资源,为了避免因未授权用户的访问而多次访问区块链,以及因未授权用户的访问而造成过多的验证操作,本说明书一个或多个实施例中,如图11所示,S110`可以包括:
步骤S110-2,若根据获取的第一数字身份信息所对应的公钥对鉴权请求包括的第三签名数据验证通过、且确定待验证的访问权限信息满足预设的访问条件,则根据第一预设算法,基于鉴权请求包括的第一数字身份信息和第二数字身份信息生成声明标识;
步骤S110-4,若确定指定数据库中包括生成的声明标识,则确定鉴权请求是否包括可验证声明,是则执行步骤S110-6;否则执行步骤S110-8;
具体的,确定指定数据库中是否包括生成的声明标识,若否,则向第三终端设备发送验证失败的验证结果;若是,则确定鉴权请求是否包括可验证声明,若鉴权请求包括可验证声明,则执行步骤S110-6,若鉴权请求未包括可验证声明,则执行步骤S110-8.
步骤S110-6,从鉴权请求中获取可验证声明,执行步骤S112;
步骤S110-8,获取第二数字身份信息所对应的文档,根据生成的声明标识和获取的文档包括的托管方信息,向对应的托管平台发送可验证声明的获取请求;
其中,获取第二数字身份信息所对应的文档的过程可参见前述相关描述,重复之处这里不再赘述。
步骤S110-10,接收托管平台发送的可验证声明,执行步骤S112。
由此,在获取可验证声明之前,通过生成声明标识并确定指定数据库中是否包括所生成的声明标识,能够及时的验证出当前访问资源的用户是否持有可验证声明,即是否有权限访问资源。
步骤S112,基于区块链保存的第一记录信息和获取的可验证声明,对待验证的访问权限信息进行验证;
具体的,如图12所示,步骤S112包括:
步骤S112-2,若生成的声明标识与获取的可验证声明所包括的声明标识匹配,则根据声明标识从区块链中查询关联的第一记录信息;
具体的,将生成的声明标识与可验证声明中的声明标识进行匹配,若一致,则确定匹配成功,根据声明标识从区块链中查询关联的第一记录信息;若不一致,则确定匹配失败,发送验证失败结果给第三终端设备。
需要指出的是,若在步骤S108之前进行了访问权限的变更处理,则步骤S112-2包括:若生成的声明标识与获取的可验证声明所包括的声明标识匹配,则根据声明标识从区块链中查询关联的最后一条记录信息;其中,访问权限的变更处理在后文中进行详述。
步骤S112-4,若查询到的第一记录信息所包括的有效性字段表征获取的可验证声明处于有效状态、对获取的可验证声明中的第二签名数据验证通过、且获取的可验证声明中的访问权限信息包括待验证的访问权限信息,则确定对待验证的访问权限信息验证通过。
具体的,确定查询到的第一记录信息中的有效性字段是否表征可验证声明处于有效状态,若否,则向第三终端设备发送验证失败的验证结果;若是,则获取第一数字身份信息所对应的公钥,采用获取的公钥对获取的可验证声明中的第二签名数据进行验证,若验证未通过,则向第三终端设备发送验证失败的验证结果;若验证通过,则确定获取的可验证声明中的访问权限信息是否包括待验证的访问权限信息,若是,则确定对待验证的访问权限信息验证通过,若否,则向第三终端设备发送验证失败的验证结果。需要指出的是,对于有效性字段、第二签名数据、访问权限信息的验证顺序不限为上述顺序,可在实际应用中根据需要自行设定。
步骤S114,向第三终端设备发送验证结果,以使第三终端设备根据验证结果确定是否允许待授权用户访问资源。
由此,在实现了细粒度的、对部分用户的资源访问授权的基础上,权限控制节点还能够基于区块链中的记录信息和可验证声明,对资源访问权限进行验证,使得只有被授权的用户才可访问相应的资源,满足了业务的发展需求。需要指出的是,当权限控制节点为第一区块链节点时,可以基于区块链中的智能合约对待验证的访问权限信息进行验证。
考虑到在实际应用中,因人物角色的变换或业务的变化等因素,资源的持有用户对于已授予的资源访问权限可能会有变更的需求,基于此,本说明书一个或多个实施例中,如图13所示,步骤S106之后还可以包括:
步骤S202,接收第一终端设备发送的权限变更请求;其中,权限变更请求用于请求对授予待授权用户的资源的访问权限进行变更;权限变更请求包括待变更的访问权限信息;
具体而言,当资源的持有用户需要对授予待授权用户的资源的访问权限进行变更时,操作其第一终端设备,编辑资源的第一数字身份信息、待授权用户的第二数字身份信息、待变更的访问权限信息等;第一终端设备响应于资源持有用户的权限变更操作,根据获取的第一数字身份信息、待授权用户的第二数字身份信息、待变更的访问权限信息生成权限变更请求,向权限控制节点发送该权限变更请求;权限控制节点接收第一终端设备发送的权限变更请求。
步骤S204,若确定待变更的访问权限信息满足预设的变更条件,则根据待变更的访问权限信息进行访问权限变更处理;
具体的,如图14所示,步骤S204包括:
步骤S204-2,若确定待变更的访问权限信息满足预设的变更条件,则根据第一预设算法,基于权限变更请求包括的第一数字身份信息和第二数字身份信息生成原始声明标识;
其中,权限变更请求包括采用第一数字身份信息对第四指定信息签名而得的第四签名数据,相应的,步骤S204-2包括:若根据获取的第一数字身份信息所对应的公钥对第四签名数据验证通过、且确定待变更的访问权限信息未同时包括第一预设权限信息和第二预设权限信息,则确定待变更的访问权限信息满足预设的变更条件;根据第一预设算法,基于第一数字身份信息和第二数字身份信息生成原始声明标识。其中,生成原始声明标识的过程可参见前述相关描述,这里不再赘述。
步骤S204-4,若确定原始声明标识所对应的可验证声明处于有效状态,则将原始声明标识和表征可验证声明处于无效状态的有效性字段关联记录,将记录的信息确定为可验证声明的第二记录信息,将第二记录信息保存至区块链中;
为了避免变更后的资源访问权限与变更前的资源访问权限冲突,本说明书一个或多个实施例中,在更变资源访问权限时需要首先将变更前的资源访问权限撤销,也即将变更前的可验证声明设置为无效状态。
可选地,在一个或多个实施例中,权限变更请求不包括变更前的可验证声明的声明标识,相应的,步骤S204-4中确定原始声明标识所对应的可验证声明处于有效状态包括:若确定指定数据库中包括原始声明标识、且根据原始声明标识从区块链中获取的目标有效性字段表征可验证声明处于有效状态,则确定原始声明标识所对应的可验证声明处于有效状态;
具体的,确定指定数据库中是否包括计算的原始声明标识,若否,则发送变更失败信息给第一终端设备;若是,则按照记录信息保存至区块链的时间的先后顺序,根据计算的原始声明标识从区块链中查询关联的最后一个记录信息,将该最后一个记录信息中的有效性字段确定为目标有效性字段,确定目标有效性字段是否表征可验证声明处于有效状态,若是,则确定原始声明标识所对应的可验证声明处于有效状态,将原始声明标识和表征可验证声明处于无效状态的有效性字段关联记录,将记录的信息确定为可验证声明的第二记录信息,将第二记录信息保存至区块链中;若否,则确定原始声明标识所对应的可验证声明处于无效状态,执行步骤S204-6。
可选地,在另一个或多个实施例中,权限变更请求包括变更前的可验证声明的声明标识,相应的,步骤S204-4中确定原始声明标识所对应的可验证声明处于有效状态包括:若确定计算的原始声明标识与权限变更请求包括的声明标识匹配、指定数据库中包括计算的原始声明标识、且根据原始声明标识从区块链中获取的目标有效性字段表征可验证声明处于有效状态,则确定原始声明标识所对应的可验证声明处于有效状态。
具体的,确定计算的原始声明标识与权限变更请求包括的声明标识是否相同,若否,则向第一终端设备发送变更失败信息;若是,则确定指定数据库中是否包括计算的原始声明标识,若不包括,则向第一终端设备发送变更失败信息;若包括,则按照记录信息保存至区块链的时间的先后顺序,根据计算的原始声明标识从区块链中查询关联的最后一个记录信息,将该最后一个记录信息中的有效性字段确定为目标有效性字段,确定目标有效性字段是否表征可验证声明处于有效状态,若是,则确定原始声明标识所对应的可验证声明处于有效状态,将原始声明标识和表征可验证声明处于无效状态的有效性字段关联记录,将记录的信息确定为可验证声明的第二记录信息,将第二记录信息保存至区块链中;若否,则确定原始声明标识所对应的可验证声明处于无效状态,执行步骤S204-6。
步骤S204-6,根据第一预设算法,基于第一数字身份信息、第二数字身份信息和原始声明标识,生成新的声明标识;
其中,第一预设算法如前所述可以在实际应用中根据需要自行设定,如sha256算法,相应的,步骤S204-6可以包括:将第一数字身份信息、第二数字身份信息和原始声明标识进行拼接得到拼接字符串,根据sha256算法对得到的拼接字符串进行运算,将运算结果确定为新的声明标识。
步骤S204-8,根据新的声明标识、第一数字身份信息、第二数字身份信息、待变更的访问权限信息,生成新的可验证声明,将新的可验证声明的第一记录信息保存至区块链中。
其中,生成新的可验证声明的过程与前述生成可验证声明的过程相似,可参见前述相关描述,这里不再赘述。
进一步的,为了便于对变更后的访问权限进行验证等操作,步骤S204-8之后还包括:将指定数据库中保存的原始声明标识更新为生成的新的声明标识,即删除指定数据库中保存的原始声明标识,并将新的声明标识保存至指定数据库中。
步骤S204-10,将新的可验证声明发送给第一终端设备,以使第一终端设备将新的可验证声明发送给待授权用户的第二终端设备;或者,将新的可验证声明和原始声明标识发送给托管平台,以使托管平台代理将保存的原始声明标识所对应的可验证声明更新为新的可验证声明。
具体的,根据权限变更请求包括的第二数字身份信息从区块链中查询对应的文档,确定查询到的文档中是否包括托管方信息,若否,则将新的可验证声明发送给第一终端设备,以使第一终端设备将新的可验证声明发送给待授权用户的第二终端设备;若是,则将新的可验证声明和原始声明标识发送给托管平台,以使托管平台代理根据原始声明标识查询保存的对应的可验证声明,并删除查询到的可验证声明,保存接收到的新的可验证声明。
步骤S206,向第一终端设备发送权限变更结果。
需要指出的,当步骤S204-10中将新的可验证声明发送给第一终端设备时,可以将新的可验证声明与变更成功的权限变更结果一同发送给第一终端设备,也可以在将新的可验证声明发送给第一终端设备之后,发送变更成功的权限变更结果给第一终端设备。
以上,在权限控制节点接收到权限变更请求时,首先将原始的可验证声明设置为无效状态,并基于待变更的访问权限信息生成新的可验证声明,以实现访问权限的变更;其在实现了细粒度的、对部分用户的资源访问授权的基础上,实现了对授予的资源访问权限的变更,能够更好的适应于业务的发展需求。需要指出的是,当权限控制节点为第一区块链节点时,可以基于区块链中的智能合约进行变更条件的验证、以及变更处理等。
本说明书一个或多个实施例中,根据资源的第一数字身份信息、待授权用户的第二数字身份信息以及待授予的访问权限信息等生成可验证声明,以对该待授权用户授予对资源的访问权限,使得该待授权用户可基于可验证声明访问相应的资源;由此,实现了细粒度的、对部分用户的资源访问授权,能够更好的满足业务发展需求;再者,通过将可验证声明的第一记录信息保存至区块链中,不仅确保了授权的有效性,而且能够为访问权限的验证提供有效依据。
对应上述图5至图14描述方法,基于相同的技术构思,本说明书一个或多个实施例还提供一种资源访问装置。图15为本说明书一个或多个实施例提供的资源访问装置的模块组成示意图,该装置用于执行图2至图14描述的方法,如图15所示,该装置包括:
接收模块301,其接收资源的持有用户的第一终端设备发送的授权请求;其中,所述授权请求用于请求为待授权用户授予所述资源的访问权限;所述授权请求包括所述资源的第一数字身份信息、所述待授权用户的第二数字身份信息和待授予的访问权限信息;
第一生成模块302,其根据所述第一数字身份信息、所述第二数字身份信息和所述访问权限信息,生成可验证声明;
保存模块303,其将所述可验证声明的第一记录信息保存至区块链中;
发送模块304,其将所述可验证声明发送给所述第一终端设备,以使所述第一终端设备将所述可验证声明发送给所述待授权用户的第二终端设备;或者,将所述可验证声明发送给所述待授权用户的可验证声明托管平台,以使所述托管平台代理所述待授权用户保存所述可验证声明。
本说明书一个或多个实施例提供的资源访问装置,根据资源的第一数字身份信息、待授权用户的第二数字身份信息以及待授予的访问权限信息等生成可验证声明,以对该待授权用户授予对资源的访问权限,使得该待授权用户可基于可验证声明访问相应的资源;由此,实现了细粒度的、对部分用户的资源访问授权,能够更好的满足业务发展需求;再者,通过将可验证声明的第一记录信息保存至区块链中,不仅确保了授权的有效性,而且能够为访问权限的验证提供有效依据。
可选地,所述第一生成模块302,若确定所述访问权限信息满足预设的授权条件,则根据所述第一数字身份信息、所述第二数字身份信息和所述访问权限信息,生成可验证声明。
可选地,所述授权请求还包括:第一签名数据;所述第一签名数据为采用所述第一数字身份信息所对应的私钥,对第一指定信息进行签名而得的签名数据;
所述第一生成模块302,若根据获取的所述第一数字身份信息所对应的公钥对所述第一签名数据验证通过、且确定所述访问权限信息未同时包括第一预设权限信息和第二预设权限信息,则确定所述访问权限信息满足预设的授权条件;其中,所述第一预设权限信息所对应的权限与所述第二预设权限信息所对应的权限为互斥的权限。
可选地,所述发送模块304,若所述第一生成模块302确定所述访问权限信息不满足预设的授权条件,则发送授权失败信息给所述第一终端设备。
可选地,所述装置还包括:第二生成模块;
所述第二生成模块,在所述接收模块301接收资源的持有用户的第一终端设备发送的授权请求之后,根据第一预设算法,基于所述第一数字身份信息和所述第二数字身份信息生成所述可验证声明的声明标识。
可选地,所述第一生成模块302,获取第二签名数据,其中,所述第二签名数据为采用所述第一数字身份信息所对应的私钥,对第二指定信息进行签名而得的签名数据;以及,
根据所述声明标识、所述第二签名数据、所述第一数字身份信息、所述第二数字身份信息和所述访问权限信息,生成可验证声明。
可选地,所述保存模块303,根据第二预设算法,计算所述可验证声明的哈希值;以及,
将所述声明标识、所述哈希值、表征所述可验证声明处于有效状态的有效性字段关联记录,将记录的信息确定为所述可验证声明的第一记录信息;
将所述第一记录信息保存至所述区块链中。
可选地,所述发送模块304,获取所述第二数字身份信息所对应的文档;以及,
确定所述文档中是否包括所述可验证声明的托管方信息;
若是,则将所述可验证声明发送给所述托管方信息所对应的所述托管平台,以使所述托管平台代理所述待授权用户保存所述可验证声明;
若否,则将所述可验证声明发送给所述第一终端设备,以使所述第一终端设备将所述可验证声明发送给所述待授权用户的第二终端设备。
可选地,所述装置还包括:获取模块和验证模块;
所述接收模块301,接收所述资源所在的第三终端设备发送的鉴权请求;其中,所述鉴权请求为所述第三终端设备基于所述待授权用户对所述资源的访问请求而发送;所述鉴权请求包括待验证的访问权限信息;
所述获取模块,获取所述可验证声明;
所述验证模块,基于所述区块链保存的所述第一记录信息和获取的所述可验证声明,对所述待验证的访问权限信息进行验证;
所述发送模块304,向所述第三终端设备发送验证结果,以使所述第三终端设备根据所述验证结果确定是否允许所述待授权用户访问所述资源。
可选地,所述鉴权请求还包括:第三签名数据;其中,所述第三签名数据为采用所述第一数字身份信息所对应的私钥对第三指定信息签名而得的签名数据;
所述获取模块,若根据获取的所述第一数字身份信息所对应的公钥对所述第三签名数据验证通过、且确定所述待验证的访问权限信息满足预设的访问条件,则获取所述可验证声明。
可选地,所述鉴权请求还包括:所述第一数字身份信息和所述第二数字身份信息;
所述保存模块303,在所述第二生成模块根据第一预设算法,基于所述第一数字身份信息和所述第二数字身份信息生成所述可验证声明的声明标识之后,将所述声明标识保存至指定数据库中;
所述获取模块,根据所述第一预设算法,基于所述第一数字身份信息和所述第二数字身份信息生成声明标识;以及,
若确定所述指定数据库中包括生成的所述声明标识,则确定所述鉴权请求是否包括所述可验证声明;
若包括,则从所述鉴权请求中获取所述可验证声明;
若不包括,则获取所述第二数字身份信息所对应的文档;
根据生成的所述声明标识和所述文档包括的托管方信息,向对应的托管平台发送可验证声明的获取请求;
接收所述托管平台发送的所述可验证声明。
可选地,所述验证模块,若所述第二生成模块生成的所述声明标识与获取的所述可验证声明所包括的声明标识匹配,则根据所述声明标识从区块链中查询关联的第一记录信息;以及,
若查询到的所述第一记录信息所包括的有效性字段表征获取的所述可验证声明处于有效状态、对获取的所述可验证声明中的第二签名数据验证通过、且获取的所述可验证声明中的访问权限信息包括所述待验证的访问权限信息,则确定对所述待验证的访问权限信息验证通过。
可选地,所述装置还包括:变更模块;
所述接收模块301,还接收所述第一终端设备发送的权限变更请求;其中,所述权限变更请求用于请求对授予所述待授权用户的所述资源的访问权限进行变更;所述权限变更请求包括待变更的访问权限信息;
所述变更模块,若确定所述待变更的访问权限信息满足预设的变更条件,则根据所述待变更的访问权限信息进行访问权限变更处理;
所述发送模块304,向所述第一终端设备发送权限变更结果。
可选地,所述权限变更请求还包括:所述第一数字身份信息和所述第二数字身份信息;
所述变更模块,根据所述第一预设算法,基于所述第一数字身份信息和所述第二数字身份信息生成原始声明标识;
若确定所述原始声明标识所对应的可验证声明处于有效状态,则将所述原始声明标识和表征所述可验证声明处于无效状态的有效性字段关联记录,将记录的信息确定为所述可验证声明的第二记录信息,将所述第二记录信息保存至所述区块链中;以及,
根据所述第一预设算法,基于所述第一数字身份信息、所述第二数字身份信息和所述原始声明标识,生成新的声明标识;
根据所述新的声明标识、所述第一数字身份信息、所述第二数字身份信息、所述待变更的访问权限信息,生成新的可验证声明,将所述新的可验证声明的第一记录信息保存至所述区块链中
将所述新的可验证声明发送给所述第一终端设备,以使所述第一终端设备将所述新的可验证声明发送给所述待授权用户的第二终端设备;或者,将所述新的可验证声明和所述原始声明标识发送给所述托管平台,以使所述托管平台代理将保存的所述原始声明标识所对应的可验证声明更新为所述新的可验证声明。
可选地,所述保存模,303,在所述第二生成模块根据第一预设算法,基于所述第一数字身份信息和所述第二数字身份信息生成所述可验证声明的声明标识之后,将所述声明标识保存至指定数据库中;
可选地,所述变更模块,若确定所述指定数据库中包括所述原始声明标识、且根据所述原始声明标识从所述区块链中获取的目标有效性字段表征所述可验证声明处于有效状态,则确定所述原始声明标识所对应的可验证声明处于有效状态;或者,
若确定所述原始声明标识与所述权限变更请求包括的声明标识匹配、所述指定数据库中包括所述原始声明标识、且根据所述原始声明标识从所述区块链中获取的目标有效性字段表征所述可验证声明处于有效状态,则确定所述原始声明标识所对应的可验证声明处于有效状态。
可选地,所述保存模块303,在所述变更模块生成新的声明标识之后,将所述指定数据库中保存的所述原始声明标识更新为所述新的声明标识。
本说明书一个或多个实施例提供的资源访问装置,根据资源的第一数字身份信息、待授权用户的第二数字身份信息以及待授予的访问权限信息等生成可验证声明,以对该待授权用户授予对资源的访问权限,使得该待授权用户可基于可验证声明访问相应的资源;由此,实现了细粒度的、对部分用户的资源访问授权,能够更好的满足业务发展需求;再者,通过将可验证声明的第一记录信息保存至区块链中,不仅确保了授权的有效性,而且能够为访问权限的验证提供有效依据。
需要说明的是,本说明书中关于资源访问装置的实施例与本说明书中关于资源访问方法的实施例基于同一发明构思,因此该实施例的具体实施可以参见前述对应的资源访问方法的实施,重复之处不再赘述。
进一步地,对应上述图5至图14描述的方法,基于相同的技术构思,本说明书一个或多个实施例还提供一种资源访问设备,该设备用于执行图5至图14描述的方法,图16为本说明书一个或多个实施例提供的一种资源访问设备的结构示意图。
如图16所示,资源访问设备可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上的处理器401和存储器402,存储器402中可以存储有一个或一个以上存储应用程序或数据。其中,存储器402可以是短暂存储或持久存储。存储在存储器402的应用程序可以包括一个或一个以上模块(图示未示出),每个模块可以包括资源访问设备中的一系列计算机可执行指令。更进一步地,处理器401可以设置为与存储器402通信,在资源访问设备上执行存储器402中的一系列计算机可执行指令。资源访问设备还可以包括一个或一个以上电源403,一个或一个以上有线或无线网络接口404,一个或一个以上输入输出接口405,一个或一个以上键盘406等。
在一个具体的实施例中,资源访问设备包括有存储器,以及一个或一个以上的程序,其中一个或者一个以上程序存储于存储器中,且一个或者一个以上程序可以包括一个或一个以上模块,且每个模块可以包括对资源访问设备中的一系列计算机可执行指令,且经配置以由一个或者一个以上处理器执行该一个或者一个以上程序包含用于进行以下计算机可执行指令:
接收资源的持有用户的第一终端设备发送的授权请求;其中,所述授权请求用于请求为待授权用户授予所述资源的访问权限;所述授权请求包括所述资源的第一数字身份信息、所述待授权用户的第二数字身份信息和待授予的访问权限信息;
根据所述第一数字身份信息、所述第二数字身份信息和所述访问权限信息,生成可验证声明,将所述可验证声明的第一记录信息保存至区块链中;
将所述可验证声明发送给所述第一终端设备,以使所述第一终端设备将所述可验证声明发送给所述待授权用户的第二终端设备;或者,将所述可验证声明发送给所述待授权用户的可验证声明托管平台,以使所述托管平台代理所述待授权用户保存所述可验证声明。
本说明书一个或多个实施例提供的资源访问设备,根据资源的第一数字身份信息、待授权用户的第二数字身份信息以及待授予的访问权限信息等生成可验证声明,以对该待授权用户授予对资源的访问权限,使得该待授权用户可基于可验证声明访问相应的资源;由此,实现了细粒度的、对部分用户的资源访问授权,能够更好的满足业务发展需求;再者,通过将可验证声明的第一记录信息保存至区块链中,不仅确保了授权的有效性,而且能够为访问权限的验证提供有效依据。
可选地,计算机可执行指令在被执行时,所述根据所述第一数字身份信息、所述第二数字身份信息和所述访问权限信息,生成可验证声明,包括:
若确定所述访问权限信息满足预设的授权条件,则根据所述第一数字身份信息、所述第二数字身份信息和所述访问权限信息,生成可验证声明。
可选地,计算机可执行指令在被执行时,所述授权请求还包括:第一签名数据;所述第一签名数据为采用所述第一数字身份信息所对应的私钥,对第一指定信息进行签名而得的签名数据;
所述确定所述访问权限信息满足预设的授权条件,包括:
若根据获取的所述第一数字身份信息所对应的公钥对所述第一签名数据验证通过、且确定所述访问权限信息未同时包括第一预设权限信息和第二预设权限信息,则确定所述访问权限信息满足预设的授权条件;其中,所述第一预设权限信息所对应的权限与所述第二预设权限信息所对应的权限为互斥的权限。
可选地,计算机可执行指令在被执行时,所述方法还包括:
若确定所述访问权限信息不满足预设的授权条件,则发送授权失败信息给所述第一终端设备。
可选地,计算机可执行指令在被执行时,所述接收资源的持有用户的第一终端设备发送的授权请求之后,还包括:
根据第一预设算法,基于所述第一数字身份信息和所述第二数字身份信息生成所述可验证声明的声明标识。
可选地,计算机可执行指令在被执行时,所述根据所述第一数字身份信息、所述第二数字身份信息和所述访问权限信息,生成可验证声明,包括:
获取第二签名数据,其中,所述第二签名数据为采用所述第一数字身份信息所对应的私钥,对第二指定信息进行签名而得的签名数据;
根据所述声明标识、所述第二签名数据、所述第一数字身份信息、所述第二数字身份信息和所述访问权限信息,生成可验证声明。
可选地,计算机可执行指令在被执行时,所述将所述可验证声明的记录信息保存至区块链中,包括:
根据第二预设算法,计算所述可验证声明的哈希值;
将所述声明标识、所述哈希值、表征所述可验证声明处于有效状态的有效性字段关联记录,将记录的信息确定为所述可验证声明的第一记录信息;
将所述第一记录信息保存至所述区块链中。
可选地,计算机可执行指令在被执行时,所述将所述可验证声明发送给所述第一终端设备,以使所述第一终端设备将所述可验证声明发送给所述待授权用户的第二终端设备;或者,将所述可验证声明发送给所述待授权用户的可验证声明托管平台,以使所述托管平台代理所述待授权用户保存所述可验证声明,包括:
获取所述第二数字身份信息所对应的文档;
确定所述文档中是否包括所述可验证声明的托管方信息;
若是,则将所述可验证声明发送给所述托管方信息所对应的所述托管平台,以使所述托管平台代理所述待授权用户保存所述可验证声明;
若否,则将所述可验证声明发送给所述第一终端设备,以使所述第一终端设备将所述可验证声明发送给所述待授权用户的第二终端设备。
可选地,计算机可执行指令在被执行时,所述方法还包括:
接收所述资源所在的第三终端设备发送的鉴权请求;其中,所述鉴权请求为所述第三终端设备基于所述待授权用户对所述资源的访问请求而发送;所述鉴权请求包括待验证的访问权限信息;
获取所述可验证声明;
基于所述区块链保存的所述第一记录信息和获取的所述可验证声明,对所述待验证的访问权限信息进行验证;
向所述第三终端设备发送验证结果,以使所述第三终端设备根据所述验证结果确定是否允许所述待授权用户访问所述资源。
可选地,计算机可执行指令在被执行时,所述鉴权请求还包括:第三签名数据;其中,所述第三签名数据为采用所述第一数字身份信息所对应的私钥对第三指定信息签名而得的签名数据;
所述获取所述可验证声明,包括:
若根据获取的所述第一数字身份信息所对应的公钥对所述第三签名数据验证通过、且确定所述待验证的访问权限信息满足预设的访问条件,则获取所述可验证声明。
可选地,计算机可执行指令在被执行时,所述鉴权请求还包括:所述第一数字身份信息和所述第二数字身份信息;
所述根据第一预设算法,基于所述第一数字身份信息和所述第二数字身份信息生成所述可验证声明的声明标识之后,还包括:
将所述声明标识保存至指定数据库中;
所述获取所述可验证声明,包括:
根据所述第一预设算法,基于所述第一数字身份信息和所述第二数字身份信息生成声明标识;
若确定所述指定数据库中包括生成的所述声明标识,则确定所述鉴权请求是否包括所述可验证声明;
若包括,则从所述鉴权请求中获取所述可验证声明;
若不包括,则获取所述第二数字身份信息所对应的文档;以及,
根据生成的所述声明标识和所述文档包括的托管方信息,向对应的托管平台发送可验证声明的获取请求;
接收所述托管平台发送的所述可验证声明。
可选地,计算机可执行指令在被执行时,所述基于所述区块链保存的所述第一记录信息和获取的所述可验证声明,对所述待验证的访问权限信息进行验证,包括:
若生成的所述声明标识与获取的所述可验证声明所包括的声明标识匹配,则根据所述声明标识从区块链中查询关联的第一记录信息;
若查询到的所述第一记录信息所包括的有效性字段表征获取的所述可验证声明处于有效状态、对获取的所述可验证声明中的第二签名数据验证通过、且获取的所述可验证声明中的访问权限信息包括所述待验证的访问权限信息,则确定对所述待验证的访问权限信息验证通过。
可选地,计算机可执行指令在被执行时,所述方法还包括:
接收所述第一终端设备发送的权限变更请求;其中,所述权限变更请求用于请求对授予所述待授权用户的所述资源的访问权限进行变更;所述权限变更请求包括待变更的访问权限信息;
若确定所述待变更的访问权限信息满足预设的变更条件,则根据所述待变更的访问权限信息进行访问权限变更处理;
向所述第一终端设备发送权限变更结果。
可选地,计算机可执行指令在被执行时,所述权限变更请求还包括:所述第一数字身份信息和所述第二数字身份信息;
所述根据所述待变更的访问权限信息进行访问权限变更处理,包括:
根据所述第一预设算法,基于所述第一数字身份信息和所述第二数字身份信息生成原始声明标识;
若确定所述原始声明标识所对应的可验证声明处于有效状态,则将所述原始声明标识和表征所述可验证声明处于无效状态的有效性字段关联记录,将记录的信息确定为所述可验证声明的第二记录信息,将所述第二记录信息保存至所述区块链中;以及,
根据所述第一预设算法,基于所述第一数字身份信息、所述第二数字身份信息和所述原始声明标识,生成新的声明标识;
根据所述新的声明标识、所述第一数字身份信息、所述第二数字身份信息、所述待变更的访问权限信息,生成新的可验证声明,将所述新的可验证声明的第一记录信息保存至所述区块链中
将所述新的可验证声明发送给所述第一终端设备,以使所述第一终端设备将所述新的可验证声明发送给所述待授权用户的第二终端设备;或者,将所述新的可验证声明和所述原始声明标识发送给所述托管平台,以使所述托管平台代理将保存的所述原始声明标识所对应的可验证声明更新为所述新的可验证声明。
可选地,计算机可执行指令在被执行时,所述根据第一预设算法,基于所述第一数字身份信息和所述第二数字身份信息生成所述可验证声明的声明标识之后,还包括:
将所述声明标识保存至指定数据库中;
所述确定所述原始声明标识所对应的可验证声明处于有效状态,包括:
若确定所述指定数据库中包括所述原始声明标识、且根据所述原始声明标识从所述区块链中获取的目标有效性字段表征所述可验证声明处于有效状态,则确定所述原始声明标识所对应的可验证声明处于有效状态;或者,
若确定所述原始声明标识与所述权限变更请求包括的声明标识匹配、所述指定数据库中包括所述原始声明标识、且根据所述原始声明标识从所述区块链中获取的目标有效性字段表征所述可验证声明处于有效状态,则确定所述原始声明标识所对应的可验证声明处于有效状态。
可选地,计算机可执行指令在被执行时,所述生成新的声明标识之后,还包括:
将所述指定数据库中保存的所述原始声明标识更新为所述新的声明标识。
本说明书一个或多个实施例提供的资源访问设备,根据资源的第一数字身份信息、待授权用户的第二数字身份信息以及待授予的访问权限信息等生成可验证声明,以对该待授权用户授予对资源的访问权限,使得该待授权用户可基于可验证声明访问相应的资源;由此,实现了细粒度的、对部分用户的资源访问授权,能够更好的满足业务发展需求;再者,通过将可验证声明的第一记录信息保存至区块链中,不仅确保了授权的有效性,而且能够为访问权限的验证提供有效依据。
需要说明的是,本说明书中关于资源访问设备的实施例与本说明书中关于资源访问方法的实施例基于同一发明构思,因此该实施例的具体实施可以参见前述对应的资源访问方法的实施,重复之处不再赘述。
进一步地,对应上述图5至图14所示的方法,基于相同的技术构思,本说明书一个或多个实施例还提供了一种存储介质,用于存储计算机可执行指令,一个具体的实施例中,该存储介质可以为U盘、光盘、硬盘等,该存储介质存储的计算机可执行指令在被处理器执行时,能实现以下流程:
接收资源的持有用户的第一终端设备发送的授权请求;其中,所述授权请求用于请求为待授权用户授予所述资源的访问权限;所述授权请求包括所述资源的第一数字身份信息、所述待授权用户的第二数字身份信息和待授予的访问权限信息;
根据所述第一数字身份信息、所述第二数字身份信息和所述访问权限信息,生成可验证声明,将所述可验证声明的第一记录信息保存至区块链中;
将所述可验证声明发送给所述第一终端设备,以使所述第一终端设备将所述可验证声明发送给所述待授权用户的第二终端设备;或者,将所述可验证声明发送给所述待授权用户的可验证声明托管平台,以使所述托管平台代理所述待授权用户保存所述可验证声明。
本说明书一个或多个实施例提供的存储介质所存储的计算机可执行指令在被处理器执行时,根据资源的第一数字身份信息、待授权用户的第二数字身份信息以及待授予的访问权限信息等生成可验证声明,以对该待授权用户授予对资源的访问权限,使得该待授权用户可基于可验证声明访问相应的资源;由此,实现了细粒度的、对部分用户的资源访问授权,能够更好的满足业务发展需求;再者,通过将可验证声明的第一记录信息保存至区块链中,不仅确保了授权的有效性,而且能够为访问权限的验证提供有效依据。
可选地,该存储介质存储的计算机可执行指令在被处理器执行时,所述根据所述第一数字身份信息、所述第二数字身份信息和所述访问权限信息,生成可验证声明,包括:
若确定所述访问权限信息满足预设的授权条件,则根据所述第一数字身份信息、所述第二数字身份信息和所述访问权限信息,生成可验证声明。
可选地,该存储介质存储的计算机可执行指令在被处理器执行时,所述授权请求还包括:第一签名数据;所述第一签名数据为采用所述第一数字身份信息所对应的私钥,对第一指定信息进行签名而得的签名数据;
所述确定所述访问权限信息满足预设的授权条件,包括:
若根据获取的所述第一数字身份信息所对应的公钥对所述第一签名数据验证通过、且确定所述访问权限信息未同时包括第一预设权限信息和第二预设权限信息,则确定所述访问权限信息满足预设的授权条件;其中,所述第一预设权限信息所对应的权限与所述第二预设权限信息所对应的权限为互斥的权限。
可选地,该存储介质存储的计算机可执行指令在被处理器执行时,所述方法还包括:
若确定所述访问权限信息不满足预设的授权条件,则发送授权失败信息给所述第一终端设备。
可选地,该存储介质存储的计算机可执行指令在被处理器执行时,所述接收资源的持有用户的第一终端设备发送的授权请求之后,还包括:
根据第一预设算法,基于所述第一数字身份信息和所述第二数字身份信息生成所述可验证声明的声明标识。
可选地,该存储介质存储的计算机可执行指令在被处理器执行时,所述根据所述第一数字身份信息、所述第二数字身份信息和所述访问权限信息,生成可验证声明,包括:
获取第二签名数据,其中,所述第二签名数据为采用所述第一数字身份信息所对应的私钥,对第二指定信息进行签名而得的签名数据;
根据所述声明标识、所述第二签名数据、所述第一数字身份信息、所述第二数字身份信息和所述访问权限信息,生成可验证声明。
可选地,该存储介质存储的计算机可执行指令在被处理器执行时,所述将所述可验证声明的记录信息保存至区块链中,包括:
根据第二预设算法,计算所述可验证声明的哈希值;
将所述声明标识、所述哈希值、表征所述可验证声明处于有效状态的有效性字段关联记录,将记录的信息确定为所述可验证声明的第一记录信息;
将所述第一记录信息保存至所述区块链中。
可选地,该存储介质存储的计算机可执行指令在被处理器执行时,所述将所述可验证声明发送给所述第一终端设备,以使所述第一终端设备将所述可验证声明发送给所述待授权用户的第二终端设备;或者,将所述可验证声明发送给所述待授权用户的可验证声明托管平台,以使所述托管平台代理所述待授权用户保存所述可验证声明,包括:
获取所述第二数字身份信息所对应的文档;
确定所述文档中是否包括所述可验证声明的托管方信息;
若是,则将所述可验证声明发送给所述托管方信息所对应的所述托管平台,以使所述托管平台代理所述待授权用户保存所述可验证声明;
若否,则将所述可验证声明发送给所述第一终端设备,以使所述第一终端设备将所述可验证声明发送给所述待授权用户的第二终端设备。
可选地,该存储介质存储的计算机可执行指令在被处理器执行时,所述方法还包括:
接收所述资源所在的第三终端设备发送的鉴权请求;其中,所述鉴权请求为所述第三终端设备基于所述待授权用户对所述资源的访问请求而发送;所述鉴权请求包括待验证的访问权限信息;
获取所述可验证声明;
基于所述区块链保存的所述第一记录信息和获取的所述可验证声明,对所述待验证的访问权限信息进行验证;
向所述第三终端设备发送验证结果,以使所述第三终端设备根据所述验证结果确定是否允许所述待授权用户访问所述资源。
可选地,该存储介质存储的计算机可执行指令在被处理器执行时,所述鉴权请求还包括:第三签名数据;其中,所述第三签名数据为采用所述第一数字身份信息所对应的私钥对第三指定信息签名而得的签名数据;
所述获取所述可验证声明,包括:
若根据获取的所述第一数字身份信息所对应的公钥对所述第三签名数据验证通过、且确定所述待验证的访问权限信息满足预设的访问条件,则获取所述可验证声明。
可选地,该存储介质存储的计算机可执行指令在被处理器执行时,所述鉴权请求还包括:所述第一数字身份信息和所述第二数字身份信息;
所述根据第一预设算法,基于所述第一数字身份信息和所述第二数字身份信息生成所述可验证声明的声明标识之后,还包括:
将所述声明标识保存至指定数据库中;
所述获取所述可验证声明,包括:
根据所述第一预设算法,基于所述第一数字身份信息和所述第二数字身份信息生成声明标识;
若确定所述指定数据库中包括生成的所述声明标识,则确定所述鉴权请求是否包括所述可验证声明;
若包括,则从所述鉴权请求中获取所述可验证声明;
若不包括,则获取所述第二数字身份信息所对应的文档;以及,
根据生成的所述声明标识和所述文档包括的托管方信息,向对应的托管平台发送可验证声明的获取请求;
接收所述托管平台发送的所述可验证声明。
可选地,该存储介质存储的计算机可执行指令在被处理器执行时,所述基于所述区块链保存的所述第一记录信息和获取的所述可验证声明,对所述待验证的访问权限信息进行验证,包括:
若生成的所述声明标识与获取的所述可验证声明所包括的声明标识匹配,则根据所述声明标识从区块链中查询关联的第一记录信息;
若查询到的所述第一记录信息所包括的有效性字段表征获取的所述可验证声明处于有效状态、对获取的所述可验证声明中的第二签名数据验证通过、且获取的所述可验证声明中的访问权限信息包括所述待验证的访问权限信息,则确定对所述待验证的访问权限信息验证通过。
可选地,该存储介质存储的计算机可执行指令在被处理器执行时,所述方法还包括:
接收所述第一终端设备发送的权限变更请求;其中,所述权限变更请求用于请求对授予所述待授权用户的所述资源的访问权限进行变更;所述权限变更请求包括待变更的访问权限信息;
若确定所述待变更的访问权限信息满足预设的变更条件,则根据所述待变更的访问权限信息进行访问权限变更处理;
向所述第一终端设备发送权限变更结果。
可选地,该存储介质存储的计算机可执行指令在被处理器执行时,所述权限变更请求还包括:所述第一数字身份信息和所述第二数字身份信息;
所述根据所述待变更的访问权限信息进行访问权限变更处理,包括:
根据所述第一预设算法,基于所述第一数字身份信息和所述第二数字身份信息生成原始声明标识;
若确定所述原始声明标识所对应的可验证声明处于有效状态,则将所述原始声明标识和表征所述可验证声明处于无效状态的有效性字段关联记录,将记录的信息确定为所述可验证声明的第二记录信息,将所述第二记录信息保存至所述区块链中;以及,
根据所述第一预设算法,基于所述第一数字身份信息、所述第二数字身份信息和所述原始声明标识,生成新的声明标识;
根据所述新的声明标识、所述第一数字身份信息、所述第二数字身份信息、所述待变更的访问权限信息,生成新的可验证声明,将所述新的可验证声明的第一记录信息保存至所述区块链中
将所述新的可验证声明发送给所述第一终端设备,以使所述第一终端设备将所述新的可验证声明发送给所述待授权用户的第二终端设备;或者,将所述新的可验证声明和所述原始声明标识发送给所述托管平台,以使所述托管平台代理将保存的所述原始声明标识所对应的可验证声明更新为所述新的可验证声明。
可选地,该存储介质存储的计算机可执行指令在被处理器执行时,所述根据第一预设算法,基于所述第一数字身份信息和所述第二数字身份信息生成所述可验证声明的声明标识之后,还包括:
将所述声明标识保存至指定数据库中;
所述确定所述原始声明标识所对应的可验证声明处于有效状态,包括:
若确定所述指定数据库中包括所述原始声明标识、且根据所述原始声明标识从所述区块链中获取的目标有效性字段表征所述可验证声明处于有效状态,则确定所述原始声明标识所对应的可验证声明处于有效状态;或者,
若确定所述原始声明标识与所述权限变更请求包括的声明标识匹配、所述指定数据库中包括所述原始声明标识、且根据所述原始声明标识从所述区块链中获取的目标有效性字段表征所述可验证声明处于有效状态,则确定所述原始声明标识所对应的可验证声明处于有效状态。
可选地,该存储介质存储的计算机可执行指令在被处理器执行时,所述生成新的声明标识之后,还包括:
将所述指定数据库中保存的所述原始声明标识更新为所述新的声明标识。
本说明书一个或多个实施例提供的存储介质所存储的计算机可执行指令在被处理器执行时,根据资源的第一数字身份信息、待授权用户的第二数字身份信息以及待授予的访问权限信息等生成可验证声明,以对该待授权用户授予对资源的访问权限,使得该待授权用户可基于可验证声明访问相应的资源;由此,实现了细粒度的、对部分用户的资源访问授权,能够更好的满足业务发展需求;再者,通过将可验证声明的第一记录信息保存至区块链中,不仅确保了授权的有效性,而且能够为访问权限的验证提供有效依据。
需要说明的是,本说明书中关于存储介质的实施例与本说明书中关于资源访问方法的实施例基于同一发明构思,因此该实施例的具体实施可以参见前述对应的资源访问方法的实施,重复之处不再赘述。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
在30世纪30年代,对于一个技术的改进可以很明显地区分是硬件上的改进(例如,对二极管、晶体管、开关等电路结构的改进)还是软件上的改进(对于方法流程的改进)。然而,随着技术的发展,当今的很多方法流程的改进已经可以视为硬件电路结构的直接改进。设计人员几乎都通过将改进的方法流程编程到硬件电路中来得到相应的硬件电路结构。因此,不能说一个方法流程的改进就不能用硬件实体模块来实现。例如,可编程逻辑器件(Programmable Logic Device,PLD)(例如现场可编程门阵列(Field Programmable GateArray,FPGA))就是这样一种集成电路,其逻辑功能由用户对器件编程来确定。由设计人员自行编程来把一个数字系统“集成”在一片PLD上,而不需要请芯片制造厂商来设计和制作专用的集成电路芯片。而且,如今,取代手工地制作集成电路芯片,这种编程也多半改用“逻辑编译器(logic compiler)”软件来实现,它与程序开发撰写时所用的软件编译器相类似,而要编译之前的原始代码也得用特定的编程语言来撰写,此称之为硬件描述语言(Hardware Description Language,HDL),而HDL也并非仅有一种,而是有许多种,如ABEL(Advanced Boolean Expression Language)、AHDL(Altera Hardware DescriptionLanguage)、Confluence、CUPL(Cornell University Programming Language)、HDCal、JHDL(Java Hardware Description Language)、Lava、Lola、MyHDL、PALASM、RHDL(RubyHardware Description Language)等,目前最普遍使用的是VHDL(Very-High-SpeedIntegrated Circuit Hardware Description Language)与Verilog。本领域技术人员也应该清楚,只需要将方法流程用上述几种硬件描述语言稍作逻辑编程并编程到集成电路中,就可以很容易得到实现该逻辑方法流程的硬件电路。
控制器可以按任何适当的方式实现,例如,控制器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(Application Specific Integrated Circuit,ASIC)、可编程逻辑控制器和嵌入微控制器的形式,控制器的例子包括但不限于以下微控制器:ARC 625D、Atmel AT91SAM、Microchip PIC18F26K30 以及Silicone Labs C8051F330,存储器控制器还可以被实现为存储器的控制逻辑的一部分。本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本说明书实施例时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
本领域内的技术人员应明白,本说明书一个或多个实施例可提供为方法、系统或计算机程序产品。因此,本说明书一个或多个实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本说明书可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本说明书是参照根据本说明书实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本说明书一个或多个实施例可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本说明书的一个或多个实施例,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本文件的实施例而已,并不用于限制本文件。对于本领域技术人员来说,本文件可以有各种更改和变化。凡在本文件的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本文件的权利要求范围之内。