资源访问方法、装置、设备及存储介质与流程

文档序号:15931097发布日期:2018-11-14 01:39阅读:213来源:国知局

本发明实施例涉及区块链技术领域,尤其涉及一种资源访问方法、装置、设备及存储介质。

背景技术

在某些互联网应用场景中,通过开放平台向用户提供内容服务的第三方应用(例如熊掌号平台的发布者或微信平台的公众号)需要调用开放平台中资源拥有者(即普通用户)的账号信息,那么第三方应用必须得到资源拥有者的授权。

基于现有oauth(openauthorization,开放授权)协议的资源调用过程如下:第三方应用向资源拥有者发送授权请求,资源拥有者为第三方应用授权并向第三方应用返回授权结果。第三方应用向平台方的授权服务器发送授权结果,授权服务器依据授权结果生成并存储授权记录。并且,授权服务器还依据授权记录生成并存储访问令牌(accesstoken)且向第三方应用颁发访问令牌。后续第三方应用使用授权服务器颁发的访问令牌向平台方的资源服务器请求资源,资源服务器依据授权记录对访问令牌进行鉴权处理,并依据鉴权结果响应第三方应用的请求。

由于现有授权协议中授权记录单方面存储在授权服务器中的,授权服务器仅向第三方应用发送一个访问令牌。访问令牌的有效性是平台方的资源服务器单方面校验的,存在授权验证结果的准确性较低或者公信力不足等缺陷。



技术实现要素:

本发明实施例提供了一种资源访问方法、装置、设备及存储介质,可以提高授权验证结果的准确性。

第一方面,本发明实施例提供了一种资源访问方法,由区块链系统中的节点执行,该方法包括:

接收第三方应用发送的包括访问令牌的资源调用请求,其中所述访问令牌是依据第三方应用的授权记录在区块链中存储的区块地址生成的;

依据所述区块地址得到第三方应用的目标授权记录,并依据所述目标授权记录对所述访问令牌进行校验;

若校验通过,则向第三方应用反馈资源。

第二方面,本发明实施例还提供了一种资源访问方法,由区块链系统中的节点执行,该方法包括:

接收区块链系统中授权服务节点发送的本机第三方应用节点的授权记录在区块链中存储的区块地址;

依据所述区块地址生成访问令牌,并向区块链系统中资源服务节点发送包括所述访问令牌的资源调用请求;

接收所述资源服务节点依据响应所述资源调用请求所反馈的资源信息。

第三方面,本发明实施例还提供了一种资源访问装置,配置于区块链系统中的节点中,该装置包括:

调用请求接收模块,用于接收第三方应用发送的包括访问令牌的资源调用请求,其中所述访问令牌是依据第三方应用的授权记录在区块链中存储的区块地址生成的;

校验模块,用于依据所述区块地址得到第三方应用的目标授权记录,并依据所述目标授权记录对所述访问令牌进行校验;

反馈模块,用于若校验通过,则向第三方应用反馈资源。

第四方面,本发明实施例还提供了一种资源访问装置,配置于区块链系统中的节点中,该装置包括:

地址接收模块,用于接收区块链系统中授权服务节点发送的本机第三方应用节点的授权记录在区块链中存储的区块地址;

访问令牌生成模块,用于依据所述区块地址生成访问令牌;

调用请求发送模块,用于向区块链系统中资源服务节点发送包括所述访问令牌的资源调用请求;

反馈信息接收模块,用于接收所述资源服务节点依据响应所述资源调用请求所反馈的资源信息。

第五方面,本发明实施例还提供了一种设备,该设备包括:

一个或多个处理器;

存储装置,用于存储一个或多个程序;

当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现第一方面中任意所述的资源访问方法或者实现第二方面中任意所述的资源访问方法。

第六方面,本发明实施例还提供了一种存储介质,其上存储有计算机程序,该程序被处理器执行时实现第一方面中任意所述的资源访问方法或者实现第二方面中任意所述的资源访问方法。

本发明实施例的技术方案,区块链系统中的资源服务节点接收第三方应用发送的包含依据第三方应用的授权记录在区块链中存储的区块地址生成的访问令牌的资源调用请求,并依据访问令牌中的区块地址得到第三方应用的目标授权记录,以及依据目标授权记录对访问令牌进行校验。由于授权记录和访问令牌是存储在区块链中的,对第三方应用和资源服务节点都是透明的,不可篡改的,确保了授权记录和访问令牌的准确性和公信力,相应地,也提高了资源服务节点依据授权记录对访问令牌进行校验的准确性。

附图说明

图1是本发明实施例一中提供的一种资源访问方法的流程图;

图2是本发明实施例二中提供的一种资源访问方法的流程图;

图3是本发明实施例三中提供的一种资源访问方法的流程图;

图4是本发明实施例四中提供的一种资源访问方法的流程图;

图5是本发明实施例五中提供的一种资源访问方法的流程图;

图6是本发明实施例六中提供的一种资源访问装置的结构示意图;

图7是本发明实施例七中提供的一种资源访问装置的结构示意图

图8是本发明实施例八中提供的一种设备的结构示意图。

具体实施方式

下面结合附图和实施例对本发明实施例作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明实施例,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明实施例相关的部分而非全部结构。

实施例一

图1为本发明实施例一提供的一种资源访问方法的流程图。本实施例以oauth授权协议为基础,将区块链技术应用于资源访问场景中,用于解决现有的资源调用过程中授权记录仅由授权服务器单方面存储以及访问令牌的有效性仅由资源服务器单方面校验,导致授权记录及访问令牌的准确性及公信力低等问题。所适用的区块链可以是公有链或者联盟链。整套资源访问方法通常由区块链系统中的资源服务节点、第三方应用节点及授权服务节点配合执行。各节点独立的参与到区块链系统的运行过程中。其中,第三方应用节点中配置有第三方应用客户端和区块链应用客户端,一个第三方应用节点可以供多个第三方应用账号使用;授权服务节点中也配置有区块链应用客户端,并且还集成有实现授权服务的功能模块。需要说明的是,区块链系统中可以有一种授权服务节点,也可以有多种授权服务节点。不同授权服务节点实现的授权服务功能不同,例如部分授权服务节点对第一开放平台的授权进行处理,部分授权服务器节点对第二开放平台的授权进行处理等。资源服务节点中也配置有区块链应用客户端,并且还集成有提供资源服务的功能模块,用于向第三方应用提供资源。与授权服务节点相类似,区块链系统中可以有一种资源服务节点,也可以有多种资源服务节点。不同资源服务节点实现的资源服务功能不同。

本发明实施例的方案应用于区块链系统中的资源服务节点,该方法可以由本发明实施例提供的资源访问装置来执行,该装置可采用软件和/或硬件的方式实现,并可集成于承载区块链系统节点的计算设备中。参见图1,该方法具体包括:

s110,接收第三方应用发送的包括访问令牌的资源调用请求,其中访问令牌是依据第三方应用的授权记录在区块链中存储的区块地址生成的。

其中,第三方应用是指借助开放平台的内容和服务向用户提供服务的应用程序,如熊掌号平台的开发者或微信平台的公众号。

资源调用请求是指第三方应用调用资源服务器上存储的资源拥有者的相关资源时,第三方应用节点向本机资源服务节点所发送的请求。可选的,资源调用请求中可以包括访问令牌及第三方应用标识等。访问令牌是第三方应用依据第三方应用的授权记录在区块链中存储的区块地址生成的,可选的,访问令牌中可以包括区块地址及所要调用的资源等;第三方应用标识是指用于唯一识别第三方应用的身份标志,例如可以是第三方应用的公钥或id等。

需要说明的是,本实施例中,第三方应用与资源服务器之间的交互是通过第三方应用所属的第三方应用节点与资源服务器所属的资源服务节点来实现的。具体的,当第三方应用节点所支持的任一第三方应用需要调用资源服务器存储的资源时,可通过第三方应用节点向资源服务节点发送资源调用请求。

第三方应用与资源拥有者之间是相对应的,不同的资源拥有者对相同的第三方应用授予的权限可以不同,也可以相同;相同的资源拥有者对不同的第三方应用授予的权限可以不同,也可以相同。

s120,依据区块地址得到第三方应用的目标授权记录,并依据目标授权记录对访问令牌进行校验。

其中,区块地址是指用于存储授权记录的区块的id。由于授权记录的字节数不同,将导致一个区块中,内部可以存储一条或多条授权记录。当一个区块存储多条授权记录时,为了便于用户、区块链系统中的第三方应用节点及本机授权服务节点等快速查找到的某一条授权记录,示例性的,区块地址可以包括区块id以及授权记录在区块内存储的字节偏移量。其中,区块id是区块唯一性标识可以是区块高度,字节偏移量是指能够准确定位到某一条授权记录所在区块中位置的偏移量。

授权记录是指用于对第三方应用与资源拥有者之间授权关系进行记录。可选的,授权记录中可以包括资源拥有者标识,第三方应用标识、授予权限集合和授权时间等;其中,资源拥有者标识可以是资源拥有者的用户名、账号、id或手机号等;授予权限集合是指资源拥有者授予第三方应用可访问其相关资源的集合,可以包括资源拥有者的用户名、账号、id、头像、手机号或身份信息权限等。

具体的,当本机资源服务节点接收到第三方应用通过第三方应用节点发送的包括访问令牌的资源调用请求时,通过访问令牌得到访问令牌中包含的区块地址和所要调用的资源;依据该区块地址在区块链中进行查找,得到第三方应用的目标授权记录;对目标授权记录进行解密等处理得到授权记录中包含的授予权限集合,对授予权限集合与所要调用的资源做求交集运算,若结果等于所要调用的资源,则说明第三方应用对所要调用的资源有操作权限;若为空集或小于所要调用的资源,则说明第三方应用对所要调用的资源没有全部操作权限。此时,本机资源服务节点可向第三方应用节点反馈调用失败的信息。

为了防止某一第三方应用的授权区块地址被另外第三方应用所截获,保证资源拥有者资源的安全,第三方应用节点所支持的所有第三方应用中只有授予权限的第三方应用才可访问相关资源。可选的,依据目标授权记录对访问令牌进行校验之前,还可以包括:确定访问令牌是否来自目标授权记录所指定的第三方应用。

示例性的,访问令牌中可以包括第三方应用节点标识、区块地址及第三方应用节点的签名等。其中,第三方应用节点标识可以是第三方应用节点的非对称加密公钥;第三方应用节点的签名是指采用第三方应用节点的非对称加密私钥,对访问令牌中所包含的元素进行数字签名。

需要说明的是,即使某一第三方应用对应某一资源拥有者的授权区块地址被另外的第三方应用所截获,但是截获该授权区块地址的第三方应用也无法模拟原先第三方应用的对访问令牌中元素进行签名。因此,可采用非对称加密公钥对第三方应用节点的签名进行解密,将其与访问令牌中元素进行比对,若一致,则说明访问令牌是来自区块地址所属的第三方应用;否则不是。

此外,由于授权记录是可以更新的,因此,在确定访问令牌是来自区块地址所属的第三方应用之后,需要避免出现如资源拥有者取消对第三方应用的授权后,该第三方应用还依据原先的授权记录生成访问令牌对该资源拥有者的资源进行访问等现象。示例性的,依据目标授权记录对访问令牌进行校验可以包括:确定目标授权记录是否为第三方应用的最新授权记录;若是最新授权记录,则依据目标授权记录对访问令牌进行校验。

具体的,当本机资源服务节点依据访问令牌中的区块地址得到第三方应用的目标授权记录之后,可在区块链中查找该第三方应用存储在该区块链中的所有授权记录,筛选得到该资源调用请求中第三方应用与对应的资源拥有者之间的授权记录;将各授权记录存储在区块的时间进行比对,得到最新的授权记录;将最新的授权记录区块地址与目标授权记录区块地址进行比对,若相同,则说明目标授权记录是最新的授权记录;若不同,则采用最新的授权记录对访问令牌进行校验。

s130,若校验通过,则向第三方应用反馈资源。

具体的,当本机资源服务节点通过目标授权记录对访问令牌的校验通过后,则向对应的第三方应用反馈其所要访问的资源拥有者的资源。

本发明实施例提供的技术方案,区块链系统中的资源服务节点接收第三方应用发送的包含依据第三方应用的授权记录在区块链中存储的区块地址生成的访问令牌的资源调用请求,并依据访问令牌中的区块地址得到第三方应用的目标授权记录,以及依据目标授权记录对访问令牌进行校验。由于授权记录和访问令牌是存储在区块链中的,对第三方应用和资源服务节点都是透明的,不可篡改的,确保了授权记录和访问令牌的准确性和公信力,相应地,也提高了资源服务节点依据授权记录对访问令牌进行校验的准确性。

实施例二

图2为本发明实施例二提供的一种资源访问方法的流程图。本实施例在上述实施例的基础上,进一步的对依据目标授权记录对访问令牌进行校验这一步骤进行优化。参见图2,该方法具体包括:

s210,接收第三方应用发送的包括访问令牌的资源调用请求。

s220,依据区块地址得到第三方应用的目标授权记录。

s230,遍历区块链中存储的授权记录,得到第三方应用的各授权记录。

具体的,本机资源服务节点可依据第三方应用的标识和/或资源拥有者的标识,遍历整个区块链,查找到第三方应用的所有授权记录。

s240,依据各授权记录的时间戳以及目标授权记录的时间戳确定目标授权记录是否为第三方应用的最新授权记录。

其中,授权记录的时间戳可以是区块生成节点记录的将授权记录写入区块的时间,也可以是授权记录中包含的授权时间。

具体的,若本机资源服务节点依据第三方应用的标识和资源拥有者的标识,在整个区块链中进行查找,则得到的是资源调用请求中第三方应用与对应的资源拥有者之间的所有授权记录;可以将各授权记录依据时间进行排序,筛选得到时间最新的授权记录;只将时间最新的授权记录的时间戳与目标授权记录的时间戳进行比对,若一致,则确定目标授权记录是最新授权记录。为了保证准确度,可将时间最新的授权记录区块地址及对应的时间戳分别与目标授权记录区块地址及对应的时间戳进行比对,若均一致,则确定目标授权记录是最新授权记录。

还可以是,依据时间先后顺序将各授权记录和目标授权时间进行排序,若目标授权记录排列在最后,则说明目标授权记录是最新授权记录。

s250,若是最新授权记录,则依据目标授权记录对访问令牌进行校验。

s260,若校验通过,则向第三方应用反馈资源。

本发明实施例提供的技术方案,区块链系统中的资源服务节点在依据目标授权记录对访问令牌进行校验时,通过遍历区块链中存储的授权记录,得到第三方应用的各授权记录,并依据各授权记录的时间戳和目标授权记录的时间戳确定目标授权记录是否为最新的授权记录;且采用最新授权记录对访问令牌进行校验,保证了资源拥有者资源的安全,也提高了资源服务节点依据授权记录对访问令牌进行校验的准确性。

实施例三

图3为本发明实施例三提供的一种资源访问方法的流程图,本实施例在上述实施例的基础上进行优化。参见图3,该方法具体包括:

s310,接收第三方应用发送的包括访问令牌的资源调用请求。

s320,依据区块地址得到第三方应用的目标授权记录。

s330,依据区块链中存储的第三方应用与资源拥有者之间的最新授权记录,生成并维护授权记录查找索引。

由于资源服务节点通过遍历整个区块链,检验授权记录是否为最新的,这一过程对性能的消耗较高且效率低。因此,为了进一步提高校验效率,本机资源服务节点作为区块链中的一个节点,若接收到新的授权记录数据,可以在本地维护一个授权记录查找索引,借助授权记录查找索引可检查当前授权记录是否在后续发生过变更。

其中,授权记录查找索引可以是一个授权记录的索引表,用于记载第三方应用与资源拥有者之间的最新授权记录。示例性的,授权记录查找索引中可以包括第三方应用标识、资源拥有者标识、最新授权记录和最新授权记录的时间戳等。

示例性的,授权记录查找索引中包括至少一个键值对(key-value),每个键值对包括由授权服务节点标识、资源拥有者标识及第三方应用标识组成的关键词(key)和一个区块地址组成的值(value)。其中,授权服务节点标识可以是授权服务节点的非对称加密公钥。具体的,本实施例中的授权记录查找索引中,记录了所有需调用本机资源服务节点上的资源的第三方应用的授权记录信息,每个第三方应用的授权记录信息以一个键值对的形式存储。

示例性的,依据区块链中存储的第三方应用与资源拥有者之间的最新授权记录,维护授权记录查找索引可以包括:若检测到区块链中存储有任一第三方应用与任一资源拥有者之间的最新授权记录,则在授权记录查找索引中以最新授权记录替换该第三方应用与该资源拥有者之间的历史授权记录。

具体的,当本机资源服务节点检测到区块链中存储有任一第三方应用与任一资源拥有者之间的最新授权记录时,可以从区块链中获取该最新授权记录,并用最新授权记录更新授权记录查找索引。也可以是更新该第三方应用的授权记录信息在授权记录查找索引中的键值对中的区块地址。

s340,以第三方应用标识以及资源拥有者标识为关键词,在授权记录查找索引中检索得到最新授权记录。

由于第三方应用与资源拥有者之间是相对应的,因此,可以以第三方应用标识以及资源拥有者标识为关键词,如将第三方应用的公钥及资源拥有者的id作为关键词,输入到授权记录查找索引中进行检索,得到该第三方应用对应的最新授权记录。

s350,确定目标授权记录与检索得到的最新授权记录是否相同。若相同,则执行步骤s360;若不相同,则执行步骤s370。

具体的,将目标授权记录区块地址与在授权记录查找索引中检索得到最新授权记录区块地址进行比对,若两者一致,则说明目标授权记录是最新的授权记录;若不一致,则说明目标授权记录是历史授权记录,并不是第三方应用的最新授权记录。

s360,依据目标授权记录对访问令牌进行校验。

s370,依据最新授权记录对访问令牌进行校验。

本发明实施例提供的技术方案,通过在本机资源服务器中生成并维护一个授权记录查找索引,可快速的检索得到最新授权记录,将最新授权记录与目标授权记录进行比对,即可确定目标授权记录是否为最新授权记录,依据最新授权记录对访问令牌进行校验。该方法可以提高校验效率,同时保证了资源拥有者资源的安全,也提高了资源服务节点依据授权记录对访问令牌进行校验的准确性。

实施例四

图4为本发明实施例四提供的一种资源访问方法的流程图。整套资源访问方法通常由区块链系统中的资源服务节点、第三方应用节点及授权服务节点配合执行。本发明实施例的方案应用于区块链系统中的第三方应用节点,该方法可以由本发明实施例提供的资源访问装置来执行,该装置可采用软件和/或硬件的方式实现,并可集成于承载区块链系统节点的计算设备中。参见图4,该方法具体包括:

s410,接收区块链系统中授权服务节点发送的本机第三方应用节点的授权记录在区块链中存储的区块地址。

具体的,为了保证授权记录在本机授权服务节点、资源服务节点和第三方应用之间是公开透明,不可篡改的,以便资源服务节点后续如果单方面拒绝第三方应用对资源的调用时,第三方应用可通过其所属的第三方应用节点获取区块链上存储的授权记录来进行举证,授权服务节点在接收到区块生成节点返回的授权记录存储在区块链中的区块地址之后,授权服务节点将会把本机第三方应用节点的授权记录在区块链中存储的区块地址反馈至本机第三方应用节点。

s420,依据区块地址生成访问令牌,并向区块链系统中资源服务节点发送包括访问令牌的资源调用请求。

其中,访问令牌是指第三方应用进行资源访问的依据;可选的,访问令牌中可以包括区块地址及本机第三方应用节点标识等。

具体的,当本机第三方应用节点接收到区块链系统中的授权服务节点发送的本机第三方应用节点的授权记录在区块链中存储的区块地址后,本机第三方应用节点将依据该区块地址、本机第三方应用节点标识等进行签名生成访问令牌,发送至区块链系统中的资源服务节点进行资源访问。

示例性的,依据区块地址生成访问令牌可以包括:依据本机第三方应用节点的非对称加密公钥和区块地址生成访问令牌。具体可以是:依据本机第三方应用节点的非对称加密公钥和区块地址生成访问令牌主体;采用本机第三方应用节点的非对称加密私钥对访问令牌主体进行数字签名。

其中,非对称加密公钥和非对称加密私钥是成对出现的,若加密时采用的是非对称加密私钥,则需要采用非对称加密公钥来进行解密。具体的,访问令牌的主体为{第三方应用节点的非对称加密公钥,区块地址},对应的,对访问令牌的主体进行签名为sign(区块地址,第三方应用节点的非对称加密私钥),访问令牌为:{第三方应用节点的非对称加密公钥,区块地址,sign(区块地址,第三方应用的非对称加密私钥)}。

为了避免出现资源服务节点单方面对访问令牌进行校验,导致公信力不足的现象,以及降低资源服务节点作假的概率。示例性的,依据区块地址生成访问令牌之后,还可以包括:向区块链系统中监管节点发送包括访问令牌的授权校验请求,其中授权校验请求用于指示监管节点依据区块地址得到第三方应用的授权记录,并依据第三方应用的授权记录对访问令牌进行校验。

其中,监管节点是指公信力较强的,用于保障访问令牌权威性的第三方节点。可以是区块链中独立的节点,监管节点中也配置有区块链应用客户端。可选的,授权校验请求中可以包括待校验的访问令牌。

为了保证第三方应用的权益,以及弱化资源服务节点的权力,本实施例采用公信力较强的第三方监管节点作为仲裁,在任一第三方应用被资源服务节点单方面拒绝对资源的调用时对访问令牌进行再次校验。具体的,若第三方应用节点所支持的任一第三方应用,被资源服务节点单方面拒绝对资源的调用时,可向监管节点发送授权校验请求。监管节点接收到该请求后对访问令牌进行和资源服务节点相同的校验流程,具体过程为:先校验访问令牌是否来自区块地址所属的第三方应用,在确定访问令牌是来自区块地址所属的第三方应用后,依据第三方应用的授权记录对访问令牌进行校验。

s430,接收资源服务节点依据响应资源调用请求所反馈的资源信息。

其中,资源信息可以是第三方应用所要访问的资源本身或资源对应的链接。

具体的,若资源服务节点对资源调用请求中的访问令牌进行校验通过后,则将向第三方应该节点反馈其所要访问的资源拥有者的资源;第三方应该节点接收到资源服务节点反馈的资源信息后,依据该资源信息进行资源访问。

本发明实施例提供的技术方案,第三方应用节点通过授权服务节点发送的授权记录在区块链中存储的区块地址,依据区块地址生成访问令牌,并向资源服务节点发送包括访问令牌的资源调用请求来进行资源调用。由于授权记录和访问令牌是存储在区块链中的,对第三方应用和资源服务节点都是透明的,不可篡改的,确保了授权记录和访问令牌的准确性和公信力,并且,还允许区块链系统中其他节点对访问令牌进行鉴权处理,相比于现有技术中依赖一个中心化的鉴权服务器,可以提升性能和系统容错能力。

实施例五

图5为本发明实施例五提供的一种资源访问方法的流程图,本实施在上述实施例的基础上,提供了一种区块链系统中的第三方应用节点、授权服务节点及资源服务节点进行交互的优选示例。参见图5,该方法具体包括:

s510,授权服务节点向第三方应用节点发送授权记录存储在区块链中的区块地址。

s520,第三方应用节点接收区块链系统中授权服务节点发送的本机第三方应用节点的授权记录在区块链中存储的区块地址。

s530,第三方应用节点依据区块地址生成访问令牌,并向区块链系统中资源服务节点发送包括访问令牌的资源调用请求。

s540,资源服务节点接收第三方应用发送的包括访问令牌的资源调用请求。

s550,资源服务节点依据区块地址得到第三方应用的目标授权记录,并依据目标授权记录对访问令牌进行校验。

s560,若校验通过,资源服务节点向第三方应用反馈资源。

示例性的,若校验未通过,资源服务节点向第三方应用反馈校验失败信息。

s570,第三方应用节点接收资源服务节点依据响应资源调用请求所反馈的资源信息。

本发明实施例提供的技术方案,区块链系统中的资源服务节点接收第三方应用发送的包含依据第三方应用的授权记录在区块链中存储的区块地址生成的访问令牌的资源调用请求,并依据访问令牌中的区块地址得到第三方应用的目标授权记录,以及依据目标授权记录对访问令牌进行校验。由于授权记录和访问令牌是存储在区块链中的,对第三方应用和资源服务节点都是透明的,不可篡改的,确保了授权记录和访问令牌的准确性和公信力,相应地,也提高了资源服务节点依据授权记录对访问令牌进行校验的准确性。

实施例六

图6为本发明实施例六提供的一种资源访问装置的结构框图,该装置配置于区块链系统中的节点中,可执行本发明实施例一、实施例二和实施例三所提供的资源访问方法,具备执行方法相应的功能模块和有益效果。如图6所示,该装置可以包括:

调用请求接收模块610,用于接收第三方应用发送的包括访问令牌的资源调用请求,其中访问令牌是依据第三方应用的授权记录在区块链中存储的区块地址生成的;

校验模块620,用于依据区块地址得到第三方应用的目标授权记录,并依据目标授权记录对访问令牌进行校验;

反馈模块630,用于若校验通过,则向第三方应用反馈资源。

本发明实施例提供的技术方案,区块链系统中的资源服务节点接收第三方应用发送的包含依据第三方应用的授权记录在区块链中存储的区块地址生成的访问令牌的资源调用请求,并依据访问令牌中的区块地址得到第三方应用的目标授权记录,以及依据目标授权记录对访问令牌进行校验。由于授权记录和访问令牌是存储在区块链中的,对第三方应用和资源服务节点都是透明的,不可篡改的,确保了授权记录和访问令牌的准确性和公信力,相应地,也提高了资源服务节点依据授权记录对访问令牌进行校验的准确性。

示例性的,校验模块620可以包括:

最新记录确定单元,用于确定目标授权记录是否为第三方应用的最新授权记录;

校验单元,用于若目标授权记录是第三方应用的最新授权记录,则依据目标授权记录对访问令牌进行校验。

可选的,最新记录确定单元具体可以用于:

遍历区块链中存储的授权记录,得到第三方应用的各授权记录;依据各授权记录的时间戳以及目标授权记录的时间戳确定目标授权记录是否为第三方应用的最新授权记录。

示例性的,上述装置还可以包括:

索引生成维护模块,用于依据区块链中存储的第三方应用与资源拥有者之间的最新授权记录,生成并维护授权记录查找索引。

示例性的,索引生成维护模块具体可以用于:

若检测到区块链中存储有任一第三方应用与任一资源拥有者之间的最新授权记录,则在授权记录查找索引中以最新授权记录替换该第三方应用与该资源拥有者之间的历史授权记录。

示例性的,最新记录确定单元具体还可以用于:

以第三方应用标识以及资源拥有者标识为关键词,在授权记录查找索引中检索得到最新授权记录;确定目标授权记录与检索得到的最新授权记录是否相同。

示例性的,上述装置还可以包括:

确定模块,用于确定访问令牌是否来自目标授权记录所指定的第三方应用。

实施例七

图7为本发明实施例七提供的一种资源访问装置的结构框图,该装置配置于区块链系统中的节点中,可执行本发明实施例四所提供的资源访问方法,具备执行方法相应的功能模块和有益效果。如图7所示,该装置可以包括:

地址接收模块710,用于接收区块链系统中授权服务节点发送的本机第三方应用节点的授权记录在区块链中存储的区块地址;

访问令牌生成模块720,用于依据区块地址生成访问令牌;

调用请求发送模块730,用于向区块链系统中资源服务节点发送包括访问令牌的资源调用请求;

反馈信息接收模块740,用于接收资源服务节点依据响应资源调用请求所反馈的资源信息。

本发明实施例提供的技术方案,第三方应用节点通过授权服务节点发送的授权记录在区块链中存储的区块地址,依据区块地址生成访问令牌,并向资源服务节点发送包括访问令牌的资源调用请求来进行资源调用。由于授权记录和访问令牌是存储在区块链中的,对第三方应用和资源服务节点都是透明的,不可篡改的,确保了授权记录和访问令牌的准确性和公信力,并且,还允许区块链系统中其他节点对访问令牌进行鉴权处理,相比于现有技术中依赖一个中心化的鉴权服务器,可以提升性能和系统容错能力。

示例性的,访问令牌生成模块720具体可以用于:依据本机第三方应用节点的非对称加密公钥和区块地址生成访问令牌。

示例性的,访问令牌生成模块720具体还可以用于:依据本机第三方应用节点的非对称加密公钥和区块地址生成访问令牌主体;采用本机第三方应用节点的非对称加密私钥对访问令牌主体进行数字签名。

示例性的,上述装置还可以包括:

校验请求发送模块,用于在依据区块地址生成访问令牌之后,向区块链系统中监管节点发送包括访问令牌的授权校验请求,其中授权校验请求用于指示监管节点依据区块地址得到第三方应用的授权记录,并依据第三方应用的授权记录对访问令牌进行校验。

实施例八

图8为本发明实施例八提供的一种设备的结构示意图,图8示出了适于用来实现本发明实施例实施方式的示例性设备12的框图。图8显示的设备12仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。设备12典型的是承担区块链系统节点功能的计算设备。

如图8所示,设备12以通用计算设备的形式表现。设备12的组件可以包括但不限于:一个或者多个处理器或者处理单元16,系统存储器28,连接不同系统组件(包括系统存储器28和处理单元16)的总线18。

总线18表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(isa)总线,微通道体系结构(mac)总线,增强型isa总线、视频电子标准协会(vesa)局域总线以及外围组件互连(pci)总线。

设备12典型地包括多种计算机系统可读介质。这些介质可以是任何能够被设备12访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。

系统存储器28可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(ram)30和/或高速缓存存储器32。设备12可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统34可以用于读写不可移动的、非易失性磁介质(图8未显示,通常称为“硬盘驱动器”)。尽管图8中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如cd-rom,dvd-rom或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线18相连。系统存储器28可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本发明实施例各实施例的功能。

具有一组(至少一个)程序模块42的程序/实用工具40,可以存储在例如系统存储器28中,这样的程序模块42包括但不限于操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块42通常执行本发明实施例所描述的实施例中的功能和/或方法。

设备12也可以与一个或多个外部设备14(例如键盘、指向设备、显示器24等)通信,还可与一个或者多个使得用户能与该设备12交互的设备通信,和/或与使得该设备12能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(i/o)接口22进行。并且,设备12还可以通过网络适配器20与一个或者多个网络(例如局域网(lan),广域网(wan)和/或公共网络,例如因特网)通信。如图所示,网络适配器20通过总线18与设备12的其它模块通信。应当明白,尽管图中未示出,可以结合设备12使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、raid系统、磁带驱动器以及数据备份存储系统等。

处理单元16通过运行存储在系统存储器28中的程序,从而执行各种功能应用以及数据处理,例如实现本发明实施例所提供的资源访问方法。

实施例九

本发明实施例九还提供一种计算机可读存储介质,其上存储有计算机程序(或称为计算机可执行指令),该程序被处理器执行时可实现上述实施例中任意的资源访问方法。该计算机可读存储介质,可以配置于区块链系统中的节点上,如可以配置于资源服务节点、第三方应用节点和授权服务节点上。

本发明实施例的计算机存储介质,可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑磁盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。

计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。

计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于无线、电线、光缆、rf等等,或者上述的任意合适的组合。

可以以一种或多种程序设计语言或其组合来编写用于执行本发明实施例操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如java、smalltalk、c++,还包括常规的过程式程序设计语言—诸如”c”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(lan)或广域网(wan)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。

注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明实施例进行了较为详细的说明,但是本发明实施例不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1