一种基于API网关的数据调用的方法和API网关

著录项
  • CN202011386643.6
  • 20201201
  • CN112199220A
  • 20210108
  • 蚂蚁智信(杭州)信息技术有限公司
  • 全方磊;郑金伟;其他发明人请求不公开姓名
  • G06F9/54
  • G06F9/54 G06F21/62 G06F21/64

  • 浙江省杭州市西湖区西溪路556号8层B段801-12
  • 浙江(33)
  • 济南信达专利事务所有限公司
  • 李世喆
摘要
本说明书实施例提供了一种基于API网关的数据调用的方法和API网关。根据实施例的方法,数据提供方可以将自身拥有的部分数据进行共享,需要调用数据的数据调用方可以针对所要调用的目标API可以发送对应的数据调用申请,然后由API网关将该数据调用申请发送给数据提供方,这样数据提供方即可返回对应的目标数据。为了提高数据传输过程的安全性,可对目标数据进行变形,然后将变形后的目标数据提供给数据调用方。最后再将用于描述数据调用方获取数据过程的记录信息上传至区块链,以便各方查证。
权利要求

1.一种基于API网关的数据调用的方法,包括:

接收来自数据调用方的数据调用申请;

确定所述数据调用申请对应的目标应用程序接口API;

将所述数据调用申请通过所述目标API,发送给提供所述目标API的目标数据提供方;

当接收到来自该目标数据提供方针对所述数据调用申请的目标数据时,对所述目标数据进行变形;

将变形后的所述目标数据发送给该数据调用方;以及

生成用于描述该数据调用方获取所述目标数据过程的记录信息,并将所述记录信息上传至区块链中。

2.根据权利要求1所述的方法,其中,在所述接收来自数据调用方的数据调用申请之前,进一步包括:

接收来自数据调用方的接口调用申请;

确定区块链上是否存储有所述接口调用申请对应的目标API的信息;

若存在,则根据所述接口调用申请,确定该数据调用方是否能够调用所述目标API;

若是,则生成该数据调用方调用所述目标API时所使用的授权信息;以及

将所述授权信息发送给该数据调用方;

在所述将所述数据调用申请通过所述目标API,发送给提供所述目标API的目标数据提供方之前,进一步包括:

确定所述数据调用申请中的授权信息是否与生成的该数据调用方所对应的授权信息相同;

若是,则确定该数据调用方的身份验证通过,并继续执行将所述数据调用申请通过所述目标API发送给提供所述目标API的目标数据提供方。

3.根据权利要求2所述的方法,其中,所述根据所述接口调用申请,确定该数据调用方是否能够调用所述目标API,包括:

确定所述区块链上是否存储有针对所述目标API的审批信息,其中,所述审批信息由该目标数据提供方制定;

若所述区块链上存储有所述审批信息,将所述接口调用申请发送给所述审批信息中的至少一个数据审批方,以通过各所述数据审批方按照所述接口调用申请中的审批流程确定该数据调用方是否能够调用所述目标API;

若所述区块链上未存储所述审批信息,将所述接口调用申请发送给该目标数据提供方,以通过该目标数据提供方确定该数据调用方是否能够调用所述目标API;

当接收到针对所述接口调用申请的审批结果时,若所述审批结果表征该数据调用方能够调用所述目标API,则执行所述生成该数据调用方调用所述目标API时所使用的授权信息。

4.根据权利要求1至3中任一所述的方法,其中,在所述将变形后的所述目标数据发送给该数据调用方之前,进一步包括:确定所述API网关是否与该数据调用方位于同一局域网内;若位于同一局域网内,则所述对所述目标数据进行变形,包括:

对所述目标数据进行数据脱敏处理。

5.根据权利要求1至3中任一所述的方法,其中,在所述对所述目标数据进行变形之前进一步包括:确定所述API网关是否与该数据调用方位于同一局域网内;若未位于同一局域网内,则所述对所述目标数据进行变形,包括:

利用预先封装的软件开发工具包SDK根据所述目标数据,生成用于描述所述目标数据的属性的描述信息;

所述将变形后的所述目标数据发送给该数据调用方,包括:

将所述描述信息和所述SDK发送给该数据调用方,以使该数据调用方调用安装后的所述SDK对所述描述信息进行解密和数据脱敏处理,得到数据脱敏后的所述目标数据。

6.一种API网关,包括:

调用处理模块,配置为接收来自数据调用方的数据调用申请;确定所述数据调用申请对应的目标应用程序接口API;将所述数据调用申请通过所述目标API,发送给提供所述目标API的目标数据提供方;

数据处理模块,配置为当所述调用处理模块接收到来自该目标数据提供方针对所述数据调用申请的目标数据时,对所述目标数据进行变形;

所述调用处理模块,配置为将所述数据处理模块变形后的所述目标数据发送给该数据调用方;

数据上链模块,配置为生成用于描述该数据调用方获取所述目标数据过程的记录信息,并将所述记录信息上传至区块链中。

7.根据权利要求6所述的API网关,其中,所述调用处理模块,包括:

申请接收单元,配置为接收来自数据调用方的接口调用申请;

授权处理单元,配置为确定区块链上是否存储有所述接口调用申请对应的目标API的信息;若存在,则根据所述接口调用申请,确定该数据调用方是否能够调用所述目标API;若是,则生成该数据调用方调用所述目标API时所使用的授权信息;将所述授权信息发送给该数据调用方;

所述数据处理模块,配置为确定所述数据调用申请中的授权信息是否与生成的该数据调用方所对应的授权信息相同;若是,则确定该数据调用方的身份验证通过,并触发所述调用处理模块继续执行将所述数据调用申请通过所述目标API发送给提供所述目标API的目标数据提供方。

8.根据权利要求7所述的API网关,其中,所述授权处理单元,包括:

上链信息确定子单元,配置为确定所述区块链上是否存储有针对所述目标API的审批信息,其中,所述审批信息由该目标数据提供方制定;

审批信息传输子单元,配置为若所述区块链上存储有所述审批信息,将所述接口调用申请发送给所述审批信息中的至少一个数据审批方,以通过各所述数据审批方按照所述接口调用申请中的审批流程确定该数据调用方是否能够调用所述目标API;若所述区块链上未存储所述审批信息,将所述接口调用申请发送给该目标数据提供方,以通过该目标数据提供方确定该数据调用方是否能够调用所述目标API;

审批结果处理子单元,配置为当接收到针对所述接口调用申请的审批结果时,若所述审批结果表征该数据调用方能够调用所述目标API,则执行所述生成该数据调用方调用所述目标API时所使用的授权信息。

9.根据权利要求6至8中任一所述的API网关,其中,

所述数据处理模块,配置为确定所述API网关是否与该数据调用方位于同一局域网内;若位于同一局域网内,对所述目标数据进行数据脱敏处理。

10.根据权利要求6至8中任一所述的API网关,其中,

所述数据处理模块,配置为确定所述API网关是否与该数据调用方位于同一局域网内;若未位于同一局域网内,利用预先封装的软件开发工具包SDK根据所述目标数据,生成用于描述所述目标数据的属性的描述信息;将所述描述信息和所述SDK发送给该数据调用方,以使该数据调用方调用安装后的所述SDK对所述描述信息进行解密和数据脱敏处理,得到数据脱敏后的所述目标数据。

说明书
技术领域

本说明书一个或多个实施例涉及计算机技术领域,尤其涉及一种基于API网关的数据调用的方法和API网关。

数据提供方将自身的部分数据进行共享,便于不同的数据调用方利用该数据开展不同的业务。

目前,数据提供方在向数据调用方提供数据时,通常会将数据进行预处理,以提高数据传输过程的安全性。但是,当数据调用方数量较多时,数据提供方需要进行大量重复性的预处理工作,从而增加数据提供方提供数据时的工作量。

本说明书一个或多个实施例描述了一种基于API网关的数据调用的方法和API网关,能够降低数据提供方提供数据时的工作量。

根据第一方面,提供了一种基于API网关的数据调用的方法,包括:

接收来自数据调用方的数据调用申请;

确定所述数据调用申请对应的目标应用程序接口API;

将所述数据调用申请通过所述目标API,发送给提供所述目标API的目标数据提供方;

当接收到来自该目标数据提供方针对所述数据调用申请的目标数据时,对所述目标数据进行变形;

将变形后的所述目标数据发送给该数据调用方;以及

生成用于描述该数据调用方获取所述目标数据过程的记录信息,并将所述记录信息上传至区块链中。

在一个实施例中,其中,在所述接收来自数据调用方的数据调用申请之前,进一步包括:

接收来自数据调用方的接口调用申请;

确定区块链上是否存储有所述接口调用申请对应的目标API的信息;

若存在,则根据所述接口调用申请,确定该数据调用方是否能够调用所述目标API;

若是,则生成该数据调用方调用所述目标API时所使用的授权信息;以及

将所述授权信息发送给该数据调用方;

在所述将所述数据调用申请通过所述目标API,发送给提供所述目标API的目标数据提供方之前,进一步包括:

确定所述数据调用申请中的授权信息是否与生成的该数据调用方所对应的授权信息相同;

若是,则确定该数据调用方的身份验证通过,并继续执行将所述数据调用申请通过所述目标API发送给提供所述目标API的目标数据提供方。

在一个实施例中,其中,所述根据所述接口调用申请,确定该数据调用方是否能够调用所述目标API,包括:

确定所述区块链上是否存储有针对所述目标API的审批信息,其中,所述审批信息由该目标数据提供方制定;

若所述区块链上存储有所述审批信息,将所述接口调用申请发送给所述审批信息中的至少一个数据审批方,以通过各所述数据审批方按照所述调用申请中的审批流程确定该数据调用方是否能够调用所述目标API;

若所述区块链上未存储所述审批信息,将所述接口调用申请发送给该目标数据提供方,以通过该目标数据提供方确定该数据调用方是否能够调用所述目标API;

当接收到针对所述接口调用申请的审批结果时,若所述审批结果表征该数据调用方该能够调用所述目标API,则执行所述生成该数据调用方调用所述目标API时所使用的授权信息。

在一个实施例中,其中,在所述将变形后的所述目标数据发送给该数据调用方之前,进一步包括:确定是否与该数据调用方位于同一局域网内;若位于同一局域网内,则所述对所述目标数据进行变形,包括:

对所述目标数据进行数据脱敏处理。

在一个实施例中,其中,在所述对所述目标数据进行变形之前进一步包括:确定是否与该数据调用方位于同一局域网内;若未位于同一局域网内,则所述对所述目标数据进行变形,包括:

利用预先封装的软件开发工具包SDK根据所述目标数据,生成用于描述所述目标数据的属性的描述信息;

所述将变形后的所述目标数据发送给该数据调用方,包括:

将所述描述信息和所述SDK发送给该数据调用方,以使该数据调用方调用安装后的所述SDK对所述描述信息进行解密和数据脱敏处理,得到数据脱敏后的所述目标数据。

根据第二方面,提供了一种API网关,包括:

调用处理模块,配置为接收来自数据调用方的数据调用申请;确定所述数据调用申请对应的目标应用程序接口API;将所述数据调用申请通过所述目标API,发送给提供所述目标API的目标数据提供方;

数据处理模块,配置为当所述调用处理模块接收到来自该目标数据提供方针对所述数据调用申请的目标数据时,对所述目标数据进行变形;

所述调用处理模块,配置为将所述数据处理模块变形后的所述目标数据发送给该数据调用方;

数据上链模块,配置为生成用于描述该数据调用方获取所述目标数据过程的记录信息,并将所述记录信息上传至区块链中。

在一个实施例中,其中,所述调用处理模块,包括:

申请接收单元,配置为接收来自数据调用方的接口调用申请;

授权处理单元,配置为确定区块链上是否存储有所述接口调用申请对应的目标API的信息;若存在,则根据所述接口调用申请,确定该数据调用方是否能够调用所述目标API;若是,则生成该数据调用方调用所述目标API时所使用的授权信息;将所述授权信息发送给该数据调用方;

所述数据处理模块,配置为确定所述数据调用申请中的授权信息是否与生成的该数据调用方所对应的授权信息相同;若是,则确定该数据调用方的身份验证通过,并触发所述调用处理模块继续执行将所述数据调用申请通过所述目标API发送给提供所述目标API的目标数据提供方。

在一个实施例中,其中,所述授权处理单元,包括:

上链信息确定子单元,配置为确定所述区块链上是否存储有针对所述目标API的审批信息,其中,所述审批信息由该目标数据提供方制定;

审批信息传输子单元,配置为若所述区块链上存储有所述审批信息,将所述接口调用申请发送给所述审批信息中的至少一个数据审批方,以通过各所述数据审批方按照所述调用申请中的审批流程确定该数据调用方是否能够调用所述目标API;若所述区块链上未存储所述审批信息,将所述接口调用申请发送给该目标数据提供方,以通过该目标数据提供方确定该数据调用方是否能够调用所述目标API;

审批结果处理子单元,配置为当接收到针对所述接口调用申请的审批结果时,若所述审批结果表征该数据调用方该能够调用所述目标API,则执行所述生成该数据调用方调用所述目标API时所使用的授权信息。

在一个实施例中,其中,

所述数据处理模块,配置为确定是否与该数据调用方位于同一局域网内;对所述目标数据进行数据脱敏处理。

在一个实施例中,其中,

所述数据处理模块,配置为确定是否与该数据调用方位于同一局域网内;若未位于同一局域网内,利用预先封装的软件开发工具包SDK根据所述目标数据,生成用于描述所述目标数据的属性的描述信息;将所述描述信息和所述SDK发送给该数据调用方,以使该数据调用方调用安装后的所述SDK对所述描述信息进行解密和数据脱敏处理,得到数据脱敏后的所述目标数据。

根据说明书实施例提供的方法和设备,数据调用方若基于需求想调用某些数据时,可向API网关发送针对所要调用的数据对应的数据调用申请,以由API网关来确定该数据调用方所要调用的目标API以及提供该目标API的目标数据提供方。API网关在确定出目标数据提供方后可,将数据调用申请发送给该目标数据提供方,以使目标数据提供方针对数据调用申请返回对应的目标数据。然后由API网关对接收到的目标数据进行变形并发送给数据调用方。由于目标数据已经过变形处理,因此,可以使得变形后的目标数据与变形前的目标数据不同,这样非法用户获取到变形后的目标数据后,无法确定目标数据的全文,从而实现提高数据传输的安全性的目的。最后由API网关将该数据调用方调用数据的过程生成记录信息,并上传至区块链,以对数据调用过程进行存证,便于数据提供方、数据调用方查证。由于本实施例中的数据提供方在接收到数据调用申请后,将对应的数据返回给API网关即可,无需进行数据预处理操作,因此,可以简化数据提供方提供数据时的处理操作,从而降低数据提供方提供数据时的工作量。

为了更清楚地说明本说明书实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本说明书的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本说明书一个实施例提供的一种基于API网关的数据调用的方法的流程图;

图2是本说明书一个实施例提供的一种基于API网关的数据调用的方法的示意图;

图3是本说明书另一个实施例提供的API网关的示意图。

如前所述,现有的数据提供方将数据共享给其他的节点时,通常有两种处理方式,第一种方式是通过现有的API网关将未经过预处理的数据传输给其他的节点。第二种方式是先对数据进行预处理,然后再通过API网关传输数据。

对于第一种方式来说,现有的API网关能够实现传统的网关功能,比如,接口的权限认证、签名验签、限流熔断等。但是,对于数据传输过程中的安全则不予考虑。这样,很容易使得数据在通过API网关传输给另一个节点时被非法用户窃取,从而导致数据传输的安全性低。

对于第二种方式来说,需要数据调用方所调用的数据的预处理由数据提供方来操作,这样,当多个数据调用方在不同的时间点调用相同的数据时,数据提供方需要多次对调用的数据进行预处理,使得数据提供方需要进行大量的重复性工作,从而增加数据提供方提供数据时的工作量。

为此,根据本说明书的实施例,总体上数据提供方可向API网关发送能够提供数据的API的信息、描述提供的API的属性的API元数据、对于调用数据的数据调用方的审批流程、对被调用的数据的处理等信息。数据调用方若想调用某API的数据,可先针对所要调用的API进行身份验证,若验证通过,则可向API网关发送用于调用数据的数据调用申请,由API网关确定能够提供数据调用申请对应的目标API的目标数据提供方,并对该数据调用申请进行验证,以防止非法用户非法调用数据。当验证通过且确定出目标数据提供方后,可将数据调用申请通过该目标API发送给该目标数据提供方,由目标数据提供方针对数据调用申请返回对应的目标数据。为了保证数据传输的安全性,API网关会对目标数据进行变形并发送给该数据调用方,完成数据传输操作。然后再将数据调用方调用数据的全过程记录在区块链中,利于任一数据提供方、任一数据调用方查证。

下面介绍本说明书实施例构思的实现方式。如图1所示,本说明书实施例提供了一种基于API网关的数据调用的方法,具体可以包括以下步骤:

步骤101:接收来自数据调用方的数据调用申请;

步骤103:确定数据调用申请对应的目标应用程序接口API;

步骤105:将数据调用申请通过目标API,发送给提供目标API的目标数据提供方;

步骤107:当接收到来自该目标数据提供方针对数据调用申请的目标数据时,对目标数据进行变形;

步骤109:将变形后的目标数据发送给该数据调用方;以及

步骤111:生成用于描述该数据调用方获取目标数据过程的记录信息,并将记录信息上传至区块链中。

在本实施例中,数据调用方若基于需求想调用某些数据时,可向API网关发送针对所要调用的数据对应的数据调用申请,以由API网关来确定该数据调用方所要调用的目标API以及提供该目标API的目标数据提供方。API网关在确定出目标数据提供方后可,将数据调用申请发送给该目标数据提供方,以使目标数据提供方针对数据调用申请返回对应的目标数据。然后由API网关对接收到的目标数据进行变形并发送给数据调用方。由于目标数据已经过变形处理,因此,可以使得变形后的目标数据与变形前的目标数据不同,这样非法用户获取到变形后的目标数据后,无法确定目标数据的全文,从而实现提高数据传输的安全性的目的。最后由API网关将该数据调用方调用数据的过程生成记录信息,并上传至区块链,以对数据调用过程进行存证,便于数据提供方、数据调用方查证。由于本实施例中的数据提供方在接收到数据调用申请后,将对应的数据返回给API网关即可,无需进行数据预处理操作,因此,可以简化数据提供方提供数据时的处理操作,从而降低数据提供方提供数据时的工作量。

为了降低非法用户调用数据的风险,在本说明另一个实施例中,其中,在步骤101之前,进一步包括:

接收来自数据调用方的接口调用申请;

确定区块链上是否存储有接口调用申请对应的目标API的信息;

若区块链上存储有目标API的信息,则根据接口调用申请,确定该数据调用方是否能够调用目标API;

若该数据调用方能够调用目标API,则生成该数据调用方调用目标API时所使用的授权信息;以及

将授权信息发送给该数据调用方;

在将数据调用申请通过目标API,发送给提供目标API的目标数据提供方之前,进一步包括:

确定数据调用申请中的授权信息是否与生成的该数据调用方所对应的授权信息相同;

若数据调用申请中的授权信息与生成的该授权信息相同,则确定该数据调用方的身份验证通过,并继续执行将数据调用申请通过目标API发送给提供目标API的目标数据提供方。

在本实施例中,当任一数据调用方需要调用某一数据提供方提供的API时,需要先向API网关发送用于调用该目标API的接口调用申请。该接口调用申请可以包括所要调用的目标API的信息(例如,目标API的标识、目标API的类型、目标API所属的目标数据提供方的标识)、调用该目标API的理由以及该数据调用方的资质等信息。API网关在接收到接口调用申请后,需要判断接口调用申请中的目标API的信息是否存储在区块链中,若存储在区块链中,则表征该目标API是能够向外提供数据的接口,反之,则不能提供数据。因此,当确定接口调用申请中的目标API能够提供数据时,则生成针对该数据调用方和针对该目标API的验证码或动态口令等授权信息,以便该数据调用方在从该目标API中调用数据之前,先向API网关发送包括该授权信息、目标API的信息、用于描述所要调用的目标数据的属性的信息的数据调用申请。这样API网关可以基于数据调用申请中的授权信息先对该数据调用方的身份进行验证,判断是否为非法用户。若该数据调用方身份验证通过,则可通过目标API向数据提供方发送给数据调用申请,以便数据提供方能够返回对应的目标数据。

为了降低非法用户调用数据的风险,在本说明另一个实施例中,其中,根据接口调用申请,确定该数据调用方是否能够调用目标API,包括:

确定区块链上是否存储有针对目标API的审批信息,其中,审批信息由该目标数据提供方制定;

若区块链上存储有审批信息,将接口调用申请发送给审批信息中的至少一个数据审批方,以通过各数据审批方按照调用申请中的审批流程确定该数据调用方是否能够调用目标API;

若区块链上未存储审批信息,将接口调用申请发送给该目标数据提供方,以通过该目标数据提供方确定该数据调用方是否能够调用目标API;

当接收到针对接口调用申请的审批结果时,若审批结果表征该数据调用方该能够调用目标API,则执行生成该数据调用方调用目标API时所使用的授权信息。

在本实施例中,数据提供方在共享数据时,可以制定由哪个节点作为对数据调用方进行审批的数据审批方,还可以制定数据审批方对数据调用方审批时的审批内容以及审批流程等审批信息。若数据提供方制定对于部分数据的审批信息,则在区块链上会存储有该审批信息,此时API网关则可基于区块链上存储的审批信息确定需要对该数据调用方进行审批的数据审批方,然后将接口调用申请分别发送给数据审批方,以便数据审批方按照区块链上该数据提供方制定的审批信息对数据调用方调用数据进行审批。

数据提供方也可基于需求不制定审批信息,那么,区块链上则未存储有数据提供方提供的数据相关的审批信息。此时,该数据提供方则作为对数据调用方进行审批的数据审批方。API网关则需要将接口调用申请发送给该数据提供方,以由该数据提供方对数据调用方进行审批。

数据审批方对于数据调用方的接口调用申请审批后,会生成针对该数据调用方的审批结果,并返回给API网关。由API网关判断审批结果所表征的内容。若审批结果表征数据调用方审批通过,则API网关可针对数据调用方以及所要调用的目标API生成授权信息,反之,则可向数据调用方发送指示接口调用申请审批失败的提示信息,以便数据调用方明确是否可以调用数据。

在本说明另一个实施例中,当API网关接收到数据调用方发来的目标数据后,API网关可通过如下两种方式将目标数据发送给数据调用方,具体为:

第一种方式:API网关与数据调用方位于同一局域网内时,此时API网关需要对目标数据进行数据对数据脱敏处理,然后再发送给数据调用方。

第二种方式:API网关与数调用方未在同一局域网内时,此时API网关需要对目标数据进行加密处理,然后再发送给数据调用方。

针对第一种方式,在步骤109之前进一步包括:若该数据调用方与API网关位于同一局域网内,则对目标数据进行数据脱敏处理。

在本实施例中,由于API网关与数据调用方位于同一局域网内,且同一局域网内的节点之间通信的安全性相对较高,因此,API网关可对目标数据进行的数据脱敏处理,使得数据调用方无法确认获得目标数据的全文,而无需进行加密处理,不仅可以简化API网关的数据处理,还可以实现敏感隐私数据的可靠保护。

针对第二种方式,在步骤109之前进一步包括:确定是否与该数据调用方位于同一局域网内;若该数据调用方与API网关未位于同一局域网内,则可利用预先封装的软件开发工具包SDK根据目标数据,生成用于描述目标数据的属性的描述信息;将描述信息和SDK发送给该数据调用方,以使该数据调用方调用安装后的SDK对描述信息进行解密和数据脱敏处理,得到数据脱敏后的目标数据。

在本实施例中,由于在公网中传输数据的安全性相对较低,因此API网关可基于目标数据生成用于描述目标数据的属性的描述信息。由于此时的描述信息不是目标数据的全文,因此描述信息即使被非法用户窃取后,非法用户仍然无法确定描述信息所对应的目标数据,因此可以提高数据传输的安全性。将该描述信息发送给数据调用方,数据调用方利用由API网关预先封装的SDK可对该描述信息进行解密,得到目标数据,然后再对得到的目标数据进行数据脱敏处理,即可得到脱敏后的目标数据。

下面对目标数据对应的描述信息进行举例说明:

预先设置字符信息,其中,

字符“g”表征“女”;

字符“b”表征“男”;

字符“r”表征“成绩”;

字符“c”表征“班级”;

字符“e”表征“英语”;

字符“m”表征“数学”。

那么下述表1的目标数据可以用如下描述信息进行表示:

针对学生a的描述信息为:学生ar31e87m97;

针对学生b的描述信息为:学生br32e93m96;

针对学生c的描述信息为:学生cr33e91m99;

针对表1中的数据的描述信息为:学生ar31e87m97学生br32e93m96学生cr33e91m99。

表1

下面对本说明书实施例提供的一种基于API网关的数据调用的方法进行详细说明,如图2所示,具体包括:

以n个节点中的节点a和节点b分别为数据提供方a和b,以n个节点中的节点c和节点d分别为数据调用方c和d为例。

为了提高数据传输的安全性,数据提供方a和数据提供方b与API网关位于同一局域网内。数据提供方c和d可以与API网关位于同一局域网,也可以位于不同的网络内。

数据提供方a、数据提供方b、数据调用方c和数据调用方d分别设置自身的节点角和用于标识身份的节点名称,将节点角和节点名称发送给API网关。

其中,节点角即能够向其他节点提供数据的节点,也可以是能够调用数据的节点,也可以是能够对数据调用方进行审批的节点。

节点名称即为能够表征该节点身份的唯一标识,比如,数据提供方a中的“a”为节点a的节点名称,“数据提供方”即为节点a的“节点角”。数据提供方b、数据调用方c和数据调用方d的节点角、节点名称的设置同数据提供方a,此处不再赘述。

API网关接收到数据提供方a、数据提供方b、数据调用方c和数据调用方d分别对应的节点角和节点名称后,将接收到的信息上传至区块链,以完成数据提供方a、数据提供方b、数据调用方c和数据调用方d在区块链上的注册。同时,API网关还可针对数据提供方a、数据提供方b、数据调用方c和数据调用方d分别生成对应的私钥和公钥,为了提高各个数据提供方的私钥的安全性,API网关可对各私钥分别进行对称加密,然后将加密后的私钥存储到API网关的本地数据库中。再将各节点对应的私钥发给对应的节点。比如,将数据提供方a对应的私钥发送给数据提供方a。然后将生成的公钥上传至区块链中。

数据提供方a和数据提供方b还需要确定所要共享的数据、用于描述能够提供该数据的API的属性的API元数据、对于该数据进行何种安全保护策略(比如,某些字符如何脱敏)、以及对调用该数据的数据调用方进行审批的审批内容、审批流程等审批信息。将上述各自制定的信息发送给API网关,由API网关上传至区块链中,保证信息不可篡改。

具体地,API元数据是指向该API请求数据时需要发送的元数据、该API针对接收到的元数据能够返回的元数据以及用于描述API本身的信息。

若数据调用方c想调用数据提供方a的API,可先从区块链中记录的API中确定所要调用的目标API,然后向API网关发送包括数据调用方c的资质、所要调用的目标API的信息以及调用目标API的理由等信息的接口调用申请。

API网关可先从区块链上确定提供目标API的数据提供方a是否制定审批信息,若区块链上存在数据提供方a针对目标API提供的数据指定的审批信息,则将该接口调用申请发送给审批信息中所指示的数据审批方,以使数据审批方按照审批信息中所指示的审批流程和审批内容对数据调用方c进行审批,以确定数据调用方c是否能够调用目标API。若对数据调用方c的审批结果表征数据调用方c能够调用目标API,则可针对数据调用方c以及所要调用的目标API生成授权信息,并发送给数据调用方c。

若API网关区块链上未存储数据提供方a针对目标API提供的数据指定的审批信息时,则将接口调用申请发送给数据提供方a,由数据提供方a作为数据审批方对数据调用方c进行审批。

为了保证审批的公正性,API网关需要收集审数据审批方对于数据调用方c的审批信息,然后记录在区块链中。

具体地,若数据提供方所共享的数据存在错误,或者其制定的审批信息存在异常,比如,审批信息对于数据调用方来说审批通过的成功率过高。此时,数据提供方可通过API网关撤销发送给数据调用方的授权信息,以使数据调用方无法调用该数据提供方提供的数据。并将区块链上的提供的API的信息标记为无法调用等提示信息,避免其他数据调用方再次调用该API。

数据调用方c若想调用数据提供方a共享的数据,可向API网关发送数据调用申请,该数据调用申请中可包括所要调用的目标API的信息、表征具有调用目标API的权限的授权信息,以及所要调用的数据的请求元数据。

API网关在接收到数据调用申请后,可将生成的针对数据调用方c的授权信息与数据调用申请中的授权信息进行比对,若两个授权信息一致,则表征数据调用申请中的授权信息为合法的信息,可以确定数据调用方c具有调用目标API的权限,此时,可将数据调用申请发送给数据提供方a。

数据提供方a接收到数据调用申请后,基于数据调用申请中的请求元数据向API网关返回对应的目标数据。

API网关接收到目标数据后,可先确定是否与数据调用方c位于同一局域网内,若是,则可对目标数据进行数据脱敏处理,然后再发送给数据调用方c。若API网关与数据调用方c未在同一局域网内,则需要基于目标数据、数据调用方c的公钥以及数据提供方a的公钥,生成用于描述目标数据的属性的描述信息,然后将描述信息和封装好的SDK发送给数据调用方c。

此时,数据调用方c能够从描述信息中搜索内容,但是无法确定完整的目标数据。比如,学生a:成绩为90分、班级为一年三班、性别女,学生b:成绩为85分、班级为三年二班、性别男。对于学生a的描述信息为“学生a、成绩、班级和女”,对于学生b的描述信息为“学生b、成绩、班级和男”。此时将描述信息通过公网发送给数据调用方c,非法用户获取到描述信息后仍无法确定描述信息所表征的具体内容,因此,可以提高描述信息传输的安全性。

若数据调用方c与API网关未在同一局域网内,数据调用方c可先在本地安装由API网关预先封装后好的SDK。数据调用方c在接收到描述信息后,可通过SDK利用数调用方c存储的私钥对描述信息进行解密,得到目标数据,然后再对目标数据进行数据脱敏处理,最终得到数据脱敏后的目标数据,并输出。

具体地,为了保证数据调用方c调用数据过程可查证,对于数据调用方c调用数据的过程、数据调用方c的审批过程以及数据调用方c利用SDK进行数据解密等操作的过程,会由API网关从数据调用方c中的SDK进行采集,然后上传至区块链中,以便数据提供方a能够基于数据调用方c调用数据的次数、时间、数据量等信息,判断数据调用方c是否存在非法调用数据等异常行为。

可以理解的是,API网关利用公钥生成描述信息以及SDK对描述信息进行解密过程中,可进行公钥举证处理,以提高数据加密和数据传输的安全性。

本说明书一个实施例提供了API网关,如图3所示,该API网关包括:

调用处理模块301,配置为接收来自数据调用方的数据调用申请;确定所述数据调用申请对应的目标应用程序接口API;将所述数据调用申请通过所述目标API,发送给提供所述目标API的目标数据提供方;

数据处理模块302,配置为当所述调用处理模块301接收到来自该目标数据提供方针对所述数据调用申请的目标数据时,对所述目标数据进行变形;

所述调用处理模块301,配置为将所述数据处理模块302变形后的所述目标数据发送给该数据调用方;

数据上链模块303,配置为生成用于描述该数据调用方通过所述调用处理模块301和所述数据处理模块302获取所述目标数据过程的记录信息,并将所述记录信息上传至区块链中。

在本说明书另一个实施例中,其中,所述调用处理模块301,包括:

申请接收单元,配置为接收来自数据调用方的接口调用申请;

授权处理单元,配置为确定区块链上是否存储有所述接口调用申请对应的目标API的信息;若存在,则根据所述接口调用申请,确定该数据调用方是否能够调用所述目标API;若是,则生成该数据调用方调用所述目标API时所使用的授权信息;将所述授权信息发送给该数据调用方;

所述数据处理模块302,配置为确定所述数据调用申请中的授权信息是否与生成的该数据调用方所对应的授权信息相同;若是,则确定该数据调用方的身份验证通过,并触发所述调用处理模块301继续执行将所述数据调用申请通过所述目标API发送给提供所述目标API的目标数据提供方。

在本说明书另一个实施例中,所述授权处理单元,包括:

上链信息确定子单元,配置为确定所述区块链上是否存储有针对所述目标API的审批信息,其中,所述审批信息由该目标数据提供方制定;

审批信息传输子单元,配置为若所述区块链上存储有所述审批信息,将所述接口调用申请发送给所述审批信息中的至少一个数据审批方,以通过各所述数据审批方按照所述调用申请中的审批流程确定该数据调用方是否能够调用所述目标API;若所述区块链上未存储所述审批信息,将所述接口调用申请发送给该目标数据提供方,以通过该目标数据提供方确定该数据调用方是否能够调用所述目标API;

审批结果处理子单元,配置为当接收到针对所述接口调用申请的审批结果时,若所述审批结果表征该数据调用方该能够调用所述目标API,则执行所述生成该数据调用方调用所述目标API时所使用的授权信息。

在本说明书另一个实施例中,其中,

所述数据处理模块302,配置为确定是否与该数据调用方位于同一局域网内;对所述目标数据进行数据脱敏处理。

在本说明书另一个实施例中,其中,

所述数据处理模块302,配置为确定是否与该数据调用方位于同一局域网内;若未位于同一局域网内,利用预先封装的软件开发工具包SDK根据所述目标数据,生成用于描述所述目标数据的属性的描述信息;将所述描述信息和所述SDK发送给该数据调用方,以使该数据调用方调用安装后的所述SDK对所述描述信息进行解密和数据脱敏处理,得到数据脱敏后的所述目标数据。

可以理解的是,本说明书实施例示意的结构并不构成对API网关的具体限定。在说明书的另一些实施例中,API网关可以包括比图示更多或者更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件、软件或者软件和硬件的组合来实现。

上述API网关内的各模块之间的信息交互、执行过程等内容,由于与本说明书方法实施例基于同一构思,具体内容可参见本说明书方法实施例中的叙述,此处不再赘述。

本领域技术人员应该可以意识到,在上述一个或多个示例中,本发明所描述的功能可以用硬件、软件、挂件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。

以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的技术方案的基础之上,所做的任何修改、等同替换、改进等,均应包括在本发明的保护范围之内。

本文发布于:2024-09-24 16:34:15,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/4/86202.html

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

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