接口调用的处理方法及装置

文档序号:1937801 发布日期:2021-12-07 浏览:18次 >En<

阅读说明:本技术 接口调用的处理方法及装置 (Interface call processing method and device ) 是由 张斌 于 2020-09-14 设计创作,主要内容包括:本公开提供了一种接口调用的处理方法,该方法可以包括以下操作:接收第一对象的调用鉴权请求,其中,调用鉴权请求是第一对象在接收到第二对象的接口调用请求后生成的;确定调用鉴权请求指示的第二对象的身份信息和第二对象请求调用的目标接口的接口参数;根据身份信息和接口参数,验证第二对象是否有权调用目标接口,以得到验证结果;将验证结果发送给第一对象,以供第一对象根据验证结果确定是否允许第二对象调用目标接口。本公开还提供了一种接口调用的处理装置、一种电子设备及一种计算机可读存储介质。(The present disclosure provides a method for processing an interface call, which may include the following operations: receiving a call authentication request of a first object, wherein the call authentication request is generated by the first object after receiving an interface call request of a second object; determining identity information of a second object indicated by the calling authentication request and interface parameters of a target interface called by the second object request; verifying whether the second object is authorized to call the target interface or not according to the identity information and the interface parameters to obtain a verification result; and sending the verification result to the first object so that the first object can determine whether to allow the second object to call the target interface according to the verification result. The disclosure also provides a processing device for interface calling, an electronic device and a computer readable storage medium.)

接口调用的处理方法及装置

技术领域

本公开涉及安全技术领域,更具体地,涉及一种接口调用的处理方法、一种接口调用的处理装置、一种电子设备以及一种计算机可读存储介质。

背景技术

在基于微服务的应用构架中,应用程序被构造为一组松散耦合的服务,服务提供方通过提供接口的形式对外提供服务。为保证应用和数据的安全性,在用户请求调用接口时,服务提供方会进行接口调用鉴权,以确定用户是否有权调用接口。

在实现本发明公开构思过程中,发明人发现相关技术中在进行接口调用鉴权时,不同接口所要求的鉴权配置信息可能不同,这造成了服务提供方需要维护大量的鉴权配置信息,维护成本高,维护难度大,并且也会造成接口调用鉴权效率低的问题。

发明内容

有鉴于此,本公开提供了一种维护成本低、维护难度小、接口调用鉴权效率高的接口调用的处理方法及装置。

本公开的一个方面提供了一种接口调用的处理方法,应用于调用鉴权平台,包括接收第一对象的调用鉴权请求,其中,上述调用鉴权请求是上述第一对象在接收到第二对象的接口调用请求后生成的;确定上述调用鉴权请求指示的上述第二对象的身份信息和上述第二对象请求调用的目标接口的接口参数;根据上述身份信息和上述接口参数,验证上述第二对象是否有权调用上述目标接口,以得到验证结果;将上述验证结果发送给上述第一对象,以供上述第一对象根据上述验证结果确定是否允许上述第二对象调用上述目标接口。

可选地,上述确定上述调用鉴权请求指示的上述第二对象的身份信息,包括确定上述调用鉴权请求指示的上述第二对象的身份令牌;上述根据上述身份信息和上述接口参数,验证上述第二对象是否有权调用上述目标接口,包括根据上述身份令牌和上述接口参数,验证上述第二对象是否有权调用上述目标接口。

可选地,上述根据上述身份令牌和上述接口参数,验证上述第二对象是否有权调用上述目标接口,包括根据上述身份令牌,对上述第二对象进行身份验证操作,得到身份验证结果;在上述身份验证结果指示通过的情况下,获取与上述身份令牌关联的有效接口列表;根据上述有效接口列表和上述接口参数,验证上述第二对象是否有权调用上述目标接口。

可选地,上述根据上述身份令牌,对上述第二对象进行身份验证操作,包括确定上述身份令牌的有效日期和上述身份令牌中的令牌签名;对上述有效日期和上述令牌签名进行验证,以进行上述身份验证操作。

可选地,上述根据上述有效接口列表和上述接口参数,验证上述第二对象是否有权调用上述目标接口,包括确定上述有效接口列表是否包含上述接口参数指示的上述目标接口;以及在上述有效接口列表包含上述目标接口的情况下,确定上述第二对象有权调用上述目标接口。

可选地,上述身份令牌和上述有效接口列表的生成方法包括接收上述第二对象的注册信息,其中,上述注册信息包括上述第二对象的身份信息和接口调用信息;根据上述身份信息和上述接口调用信息,确定上述第二对象有权调用的接口列表,以得到上述有效接口列表;根据上述身份信息和上述有效接口列表,生成上述身份令牌。

可选地,上述根据上述身份信息和上述接口调用信息,确定上述第二对象有权调用的接口列表,包括根据上述接口调用信息,确定上述第二对象请求调用的至少一个未授权接口;根据上述身份信息和上述接口调用信息,进行针对各上述未授权接口的调用鉴权操作,以得到针对各上述未授权接口的第一鉴权结果;根据各上述未授权接口的接口标识,确定发布上述至少一个未授权接口的至少一个第三对象;将上述身份信息和上述接口调用信息发送给各上述第三对象,以供各上述第三对象进行针对上述未授权接口的调用鉴权操作,以得到针对各上述未授权接口的第二鉴权结果;根据上述第一鉴权结果和上述第二鉴权结果,确定上述第二对象有权调用的接口列表。

可选地,还包括接收上述第二对象发送的针对任一未授权接口的权限获取请求;对上述权限获取请求进行审核操作,以确定上述第二对象是否有权调用上述未授权接口;在确定上述第二对象有权调用上述未授权接口的情况下,将上述未授权接口添加至上述有效接口列表中。

本公开的另一个方面提供了一种接口调用的处理方法,应用于第一对象,包括接收第二对象的接口调用请求;基于上述接口调用请求指示的上述第二对象的身份信息和上述第二对象请求调用的目标接口的接口参数,生成调用鉴权请求;将上述调用鉴权请求发送给调用鉴权平台,以供上述调用鉴权平台根据接收到的上述调用鉴权请求确定上述第二对象是否有权调用上述目标接口,以生成验证结果;接收上述调用鉴权平台返回的上述验证结果,并根据上述验证结果确定是否允许上述第二对象调用上述目标接口。

本公开的另一个方面提供了一种接口调用的处理方法,应用于第二对象,包括向调用鉴权平台发送注册信息,其中,上述注册信息包括上述第二对象的身份信息和接口调用信息;接收上述调用鉴权平台返回的身份令牌,其中,上述身份令牌是上述调用鉴权平台根据上述身份信息和上述接口调用信息生成的,上述身份令牌与针对上述第二对象的有效接口列表关联,上述有效接口列表为上述第二对象有权调用的接口列表。

本公开的另一个方面提供了一种接口调用的处理装置。该装置包括第一接收模块,用于接收第一对象的调用鉴权请求,其中,所述调用鉴权请求是所述第一对象在接收到第二对象的接口调用请求后生成的;第一确定模块,用于确定所述调用鉴权请求指示的所述第二对象的身份信息和所述第二对象请求调用的目标接口的接口参数;第一验证模块,用于根据所述身份信息和所述接口参数,验证所述第二对象是否有权调用所述目标接口,以得到验证结果;发送模块,用于将所述验证结果发送给所述第一对象,以供所述第一对象根据所述验证结果确定是否允许所述第二对象调用所述目标接口。

可选地,第一确定模块包括第一确定子模块,用于确定上述调用鉴权请求指示的上述第二对象的身份令牌;第一验证模块包括第一验证子模块,用于根据上述身份令牌和上述接口参数,验证上述第二对象是否有权调用上述目标接口。

可选地,上述第一验证子模块包括第一验证单元,用于根据上述身份令牌,对上述第二对象进行身份验证操作,得到身份验证结果;第一获取单元,用于在上述身份验证结果指示通过的情况下,获取与上述身份令牌关联的有效接口列表;第二验证单元,用于根据上述有效接口列表和上述接口参数,验证上述第二对象是否有权调用上述目标接口。

可选地,上述第一验证单元包括第一处理子单元,用于确定上述身份令牌的有效日期和上述身份令牌中的令牌签名;第一验证子单元,用于对上述有效日期和上述令牌签名进行验证,以进行上述身份验证操作。

可选地,上述第二验证单元包括第二处理子单元,用于确定上述有效接口列表是否包含上述接口参数指示的上述目标接口;以及第三处理子单元,用于在上述有效接口列表包含上述目标接口的情况下,确定上述第二对象有权调用上述目标接口。

可选地,本装置还包括第二接收模块,用于接收上述第二对象的注册信息,其中,上述注册信息包括上述第二对象的身份信息和接口调用信息;第二确定模块,用于根据上述身份信息和上述接口调用信息,确定上述第二对象有权调用的接口列表,以得到上述有效接口列表;第一处理模块,用于根据上述身份信息和上述有效接口列表,生成上述身份令牌。

可选地,上述第二确定模块包括第二确定子模块,用于根据上述接口调用信息,确定上述第二对象请求调用的至少一个未授权接口;第一处理子模块,用于根据上述身份信息和上述接口调用信息,进行针对各上述未授权接口的调用鉴权操作,以得到针对各上述未授权接口的第一鉴权结果;第三确定子模块,用于根据各上述未授权接口的接口标识,确定发布上述至少一个未授权接口的至少一个第三对象;发送子模块,用于将上述身份信息和上述接口调用信息发送给各上述第三对象,以供各上述第三对象进行针对上述未授权接口的调用鉴权操作,以得到针对各上述未授权接口的第二鉴权结果;第四确定子模块,用于根据上述第一鉴权结果和上述第二鉴权结果,确定上述第二对象有权调用的接口列表。

可选地,还包括第三接收模块,用于接收上述第二对象发送的针对任一未授权接口的权限获取请求;第三确定模块,用于对上述权限获取请求进行审核操作,以确定上述第二对象是否有权调用上述未授权接口;第二处理模块,用于在确定上述第二对象有权调用上述未授权接口的情况下,将上述未授权接口添加至上述有效接口列表中。

本公开的另一个方面提供了一种电子设备。所述电子设备包括至少一个处理器,以及与所述至少一个处理器通信连接的存储器。其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器实现本公开实施例的方法。

本公开的另一方面提供了一种计算机可读存储介质,存储有计算机可执行指令,所述指令在被执行时用于实现本公开实施例的方法。

本公开的另一方面提供了一种计算机程序,所述计算机程序包括计算机可执行指令,所述指令在被执行时用于实现本公开实施例的方法。

通过本公开实施例,因为采用了接收第一对象的调用鉴权请求,其中,调用鉴权请求是第一对象在接收到第二对象的接口调用请求后生成的;确定调用鉴权请求指示的第二对象的身份信息和第二对象请求调用的目标接口的接口参数;根据身份信息和接口参数,验证第二对象是否有权调用目标接口,以得到验证结果;将验证结果发送给第一对象,以供第一对象根据验证结果确定是否允许第二对象调用目标接口的技术手段,所以至少部分地克服了相关技术中存在的调用配置信息维护成本高、维护难度大和调用鉴权效率低的技术问题,进而达到了有效降低调用配置信息的维护成本及维护难度、有效提高调用鉴权效率的技术效果。

附图说明

为了更完整地理解本公开及其优势,现在将参考结合附图的以下描述,其中:

图1示意性示出了根据本公开实施例的接口调用的处理系统架构;

图2A示意性示出了根据本公开一实施例的接口调用的处理方法的流程图;

图2B示意性示出了根据本公开实施例接收的身份信息的示例图;

图2C示意性示出了根据本公开实施例接收的接口调用信息的示例图;

图2D示意性示出了根据本公开实施例的接口调用的处理系统示意图;

图3示意性示出了根据本公开另一实施例的接口调用的处理方法的流程图;

图4示意性示出了根据本公开实施例的接口调用的处理装置的框图;

图5示意性示出了根据本公开实施例的适于实现接口调用的处理方法和装置的电子设备的框图。

具体实施方式

以下,将参照附图来描述本公开的实施例。但是应该理解,这些描述只是示例性地,而并非要限制本公开的范围。在下面的详细描述中,为便于解释,阐述了许多具体的细节以提供对本公开实施例的全面理解。然而,明显地,一个或多个实施例在没有这些具体细节的情况下也可以被实施。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本公开的概念。

在此使用的术语仅仅是为了描述具体实施例,而并非意在限制本公开。在此使用的术语“包括”、“包含”等表明了所述特征、步骤、操作和/或部件的存在,但是并不排除存在或添加一个或多个其他特征、操步骤、操作或部件。

在此使用的所有术语(包括技术和科学术语)具有本领域技术人员通常所理解的含义,除非另外定义。应注意,这里使用的术语应解释为具有与本说明书的上下文相一致的含义,而不应以理想化或过于刻板的方式来解释。

在使用类似于“A、B和C等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有A、B和C中至少一个的系统”应包括但不限于单独具有A、单独具有B、单独具有C、具有A和B、具有A和C、具有B和C、和/或具有A、B、C的系统等)。

本公开的各个实施例提供了一种接口调用的处理方法以及能够应用该方法的装置。其中,该方法可以包括接收第一对象的调用鉴权请求,其中,调用鉴权请求是第一对象在接收到第二对象的接口调用请求后生成的;确定调用鉴权请求指示的第二对象的身份信息和第二对象请求调用的目标接口的接口参数;然后根据身份信息和接口参数,验证第二对象是否有权调用目标接口,以得到验证结果;最后将验证结果发送给第一对象,以供第一对象根据验证结果确定是否允许第二对象调用目标接口。

如图1所示,该系统架构100包括至少一个终端(图中示出了多个,如终端101、102、103)和调用鉴权平台104(可以是服务器或服务器集群等,图中未示出)。在该系统架构100中,终端可以是接口调用方,也可以是接口提供方。具体地,调用鉴权平台104在接收到第一对象的调用鉴权请求后,其中,调用鉴权请求是第一对象在接收到第二对象的接口调用请求后生成的,确定调用鉴权请求指示的第二对象的身份信息和第二对象请求调用的目标接口的接口参数,然后根据身份信息和接口参数,验证第二对象是否有权调用目标接口,以得到验证结果,最后将验证结果发送给第一对象,以供第一对象根据验证结果确定是否允许第二对象调用目标接口。

需要说明的是,第一对象和第二对象仅是为了区别本公开实施例中目标接口的接口提供方和接口调用方,并不对本公开造成任何特殊限定。

以下将结合附图和具体实施例详细阐述本公开。

图2A示意性示出了根据本公开一实施例的接口调用的处理方法的流程图。

如图2A所示,该方法例如可以包括操作S210~S240。

在操作S210,接收第一对象的调用鉴权请求,其中,调用鉴权请求是第一对象在接收到第二对象的接口调用请求后生成的。

在本公开实施例中,具体地,接口是一类预先定义的函数,其用于提供软件系统得以被访问的一组例程。软件系统作为服务提供方通过公开应用程序接口,使得外部程序可以调用该软件系统的服务或者使用该软件系统的资源,而无需改变软件系统的源代码。

随着服务种类及应用场景不同,服务提供方可以提供多种类型、多类应用的接口。示例性地,在人货匹配的应用场景下,服务提供方提供的接口例如可以包括用户属性偏好模型、人群兴趣模型等;在商品营销的应用场景下,服务提供方提供的接口例如可以包括获取商品详情、检测人群种类、品类生命周期模型等。

第一对象为服务提供方,也即接口提供方,第一对象通过提供接口的方式允许其他对象共享其服务或者使用其资源。第二对象为服务请求方,也即接口调用方,第二对象通过访问接口的方式调用第一对象提供的服务或者使用第一对象提供的资源。在第二对象通过向第一对象发送接口调用请求,请求调用第一对象的目标接口时,第一对象需要验证第二对象是否有权调用目标接口。

相比于相关技术中第二对象提供针对目标接口的鉴权配置信息,第一对象根据鉴权配置信息对第二对象进行调用鉴权操作,在本公开实施例中,第一对象在接收到来自第二对象的接口调用请求后,根据接口调用请求中包括的第二对象的身份信息以及第二对象请求调用的目标接口的接口参数,生成调用鉴权请求,并将调用鉴权请求发送给调用鉴权平台,以请求调用鉴权平台进行针对第二对象的调用鉴权操作,以确定第二对象是否有权调用目标接口。

接下来,在操作S220,确定调用鉴权请求指示的第二对象的身份信息和第二对象请求调用的目标接口的接口参数。

在本公开实施例中,具体地,确定调用鉴权请求指示的第二对象的身份信息,具体为确定调用鉴权请求指示的第二对象的身份令牌(token)。身份令牌是当第二对象在调用鉴权平台注册时,由调用鉴权平台为第二对象创建的用于唯一标识其身份信息的字符串。身份令牌关联有第二对象的身份信息,以及关联有第二对象有权调用的有效接口列表。

上述身份令牌和有效接口列表的生成方法,包括接收第二对象的注册信息,其中,注册信息包括第二对象的身份信息和接口调用信息;根据身份信息和接口调用信息,确定第二对象有权调用的接口列表,以得到有效接口列表;根据身份信息和有效接口列表,生成身份令牌。

第二对象在调用鉴权平台注册时,在调用鉴权平台中上传身份信息及接口调用信息。图2B示意性示出了根据本公开实施例接收的身份信息的示例图,如图2B所示,身份信息例如可以包括第二对象的客户端机器的IP地址、客户应用ID(appID,此ID由开放服务平台分配)、客户应用名称(appName)、客户用户代理(userAgent)、业务身份信息(businessIdentity)等。图2C示意性示出了根据本公开实施例接收的接口调用信息的示例图,如图2C所示,接口调用信息可以包括第二对象请求调用的接口的一级分类、接口分类、接口名称、申请人、应用场景、系统来源、系统名称、有效期、单日最大调用量、大促最大调用量、单次调用次数等信息。

调用鉴权平台根据接口调用信息,确定第二对象请求调用的至少一个未授权接口,然后根据第二对象的身份信息及接口调用信息,进行针对至少一个未授权接口的调用鉴权操作,得到针对各未授权接口的第一鉴权结果。同时,调用鉴权平台邀请第三对象,即邀请各未授权接口的发布者进行调用鉴权操作,得到针对各未授权接口的第二鉴权结果。针对任一未授权接口,当第一鉴权结果与第二鉴权结果均指示验证通过时,确定第二对象具有针对该未授权接口的调用权限,并将该未授权接口添加至与第二对象关联的有效接口列表中。

针对未授权接口的调用鉴权操作,包括应用鉴权和接口鉴权。应用鉴权是验证第二对象(也即第二对象所代表的接口调用方)是否具有调用权限,具体地,根据第二对象的身份信息,判断第二对象是否具有针对某服务提供方进行接口调用的权限。接口鉴权是验证第二对象针对某未授权接口是否具有调用权限。

示例性地,在订单服务的应用场景下,某服务提供方(即接口提供方,也即第三对象)只计划开放订单查询接口的权限,而涉及订单退款等操作的接口拒绝第三方调用。此时,若第二对象请求调用的未授权接口包括订单退款接口,则确定第二对象不具有针对订单退款接口的调用权限,订单退款接口不被加入与第二对象关联的有效接口列表中。再示例性地,若服务提供方(即接口提供方,也即第三对象)判断第二对象针对某未授权接口的调用量过大,可能会影响其他调用方针对该未授权接口的的正常调用,甚至可能会对该未授权接口的安全性能造成威胁,此时可判定第二对象不具有针对该未授权接口的调用权限,该未授权接口不被加入与第二对象关联的有效接口列表中。

在得到与第二对象关联的有效接口列表后,根据第二对象的身份信息和前述有效接口列表,生成第二对象的身份令牌,并将身份令牌返回给第二对象,以供第二对象根据接收到的身份令牌进行接口调用。具体地,当第二对象请求调用某目标接口时,第二对象向目标接口的接口提供方发送接口调用请求,接口调用请求包括第二对象的身份令牌。第一对象根据接收到的第二对象的身份令牌,以及根据第二对象请求调用的目标接口的接口参数生成调用鉴权请求,并将调用鉴权请求发送给调用鉴权平台,以请求调用鉴权平台验证第二对象是否有权调用该目标接口。其中,接口参数可以包括接口类名和接口名称,接口类名描述接口所属类别,或者描述接口的应用分类,接口名称指示接口类名下的具体接口。

接下来,在操作S230,根据身份信息和接口参数,验证第二对象是否有权调用目标接口,以得到验证结果。

在本公开实施例中,具体地,根据调用鉴权请求指示的第二对象的身份信息,和第二对象请求调用的目标接口的接口参数,进行针对目标接口的调用鉴权操作,得到验证结果。进一步地,根据接收到的第二对象的身份令牌,确定与第二对象关联的有效接口列表;根据第二对象请求调用的目标接口的接口类名和接口名称,判断目标接口是否位于有效接口列表中,以及当有效接口列表包含目标接口时,判定第二对象具有针对目标接口的调用权限。

图2D示意性示出了根据本公开实施例的接口调用的处理系统示意图,如图2D所示,接口调用方(如第二对象)向调用鉴权平台发送注册信息,调用鉴权平台根据注册信息中的身份信息和接口调用信息,为接口调用方生成身份令牌并将身份令牌返回给接口调用方,同时调用鉴权平台还生成与接口调用方关联的有效接口列表。在接口调用方需要进行接口调用时,其向接口提供方(如第一对象)发送接口调用请求,接口调用请求中包括接口调用方的身份令牌和其请求访问的目标接口的接口参数;接口提供方根据接收到的接口调用请求,生成调用鉴权请求,并将调用鉴权请求发送给调用鉴权平台,以供调用鉴权平台根据调用鉴权请求中的身份令牌和目标接口的接口参数,确定接口调用方是否有权调用目标接口并生成验证结果;调用鉴权平台将验证结果返回给调用鉴权平台,以供调用鉴权平台根据验证结果确定是否允许接口调用方调用目标接口。

本公开实施例通过利用独立于接口调用方和接口提供方的第三方平台(即调用鉴权平台)进行接口调用鉴权,接口调用方在进行接口调用时,其只需向接口提供方发送身份令牌,同时接口提供方也只需将接口调用方的身份令牌发送给调用鉴权平台进行权限验证,接口提供方无需维护针对不同接口的大量的鉴权配置信息,接口调用鉴权的数据维护成本低、维护难度小,接口调用鉴权效率得以有效提高。

接下来,在操作S240,将验证结果发送给第一对象,以供第一对象根据验证结果确定是否允许第二对象调用目标接口。

在本公开实施例中,具体地,在确定出针对目标接口的调用鉴权操作的验证结果后,将验证结果发送给第一对象。验证结果指示第一对象是否具有针对目标接口的调用权限,第一对象可以根据验证结果确定是否允许第二对象调用目标接口。

针对第二对象的接口调用操作,可以通过保存调用记录的形式,生成第二对象的接口调用日志,并将接口调用日志与第二对象的身份令牌进行关联保存,其中,调用记录可以包括身份令牌、接口类名和接口名称。可选地,调用鉴权平台还可接收第二对象发送的针对任一未授权接口的权限获取请求,通过对权限获取请求进行审核操作,确定第二对象是否有权调用未授权接口,以及在确定第二对象有权调用未授权接口的情况下,将未授权接口添加至有效接口列表中。

可选地,当需要解除第二对象针对某接口的调用权限时,从有效接口列表中删除该接口的接口标识。具体地,当针对某接口的授权条件发生更改时,接口提供方将更改后的授权条件同步给调用鉴权平台,调用鉴权平台重新确定第二对象针对该接口的调用权限是否发生更改。该种设计有利于实现对与接口调用方关联的有效接口列表进行更新,由于根据有效接口列表进行接口调用鉴权操作,因此这有利于提高接口调用鉴权效率,和提高接口调用鉴权准确性。

在本公开实施例中,通过接收第一对象的调用鉴权请求,其中,调用鉴权请求是第一对象在接收到第二对象的接口调用请求后生成的,确定调用鉴权请求指示的第二对象的身份信息和第二对象请求调用的目标接口的接口参数,然后根据身份信息和接口参数,验证第二对象是否有权调用目标接口,以得到验证结果,并将验证结果发送给第一对象,以供第一对象根据验证结果确定是否允许第二对象调用目标接口。利用独立于第一对象(接口提供方)与第二对象(接口调用方)的第三方平台(调用鉴权平台),进行针对第二对象的接口调用鉴权操作,提供接口服务的提供方无需维护针对各接口的鉴权配置信息,这有利于降低接口调用鉴权的数据维护成本及维护难度,有利于提高接口调用鉴权的鉴权效率。

图3示意性示出了根据本公开另一实施例的接口调用的处理方法的流程图。

如图3所示,操作S230例如可以包括操作S310~S330。

在操作S310,根据身份令牌,对第二对象进行身份验证操作,得到身份验证结果。

在本公开实施例中,具体地,对第二对象进行身份验证操作,具体可以包括确定身份令牌的有效日期和身份令牌中的令牌签名;对有效日期和令牌签名进行验证,以进行身份验证操作。

验证身份令牌的有效日期可以包括验证身份令牌的签发日期是否位于有效日期内,还可以包括验证身份令牌的时间戳是否位于预设的时间窗内。通过验证身份令牌的签发日期是否位于有效日期内,以确定第二对象的身份令牌是否有效。此外可选地,为保证接口调用的安全性,防止接口调用方(如第二对象)向接口提供方(如第一对象)发送的身份令牌被攻击者截获,防止攻击者将身份令牌发送给接口提供方,伪装成已授权的接口调用方进行接口调用,接口调用方在请求调用某接口时,将附加有时间戳的身份令牌发送给接口调用方,接口调用方在请求调用鉴权平台进行接口调用鉴权时,调用鉴权平台判断身份令牌的时间戳是否位于预设的时间窗内,当时间戳位于预设的时间窗内时,确定第二对象的身份令牌有效。

令牌签名可以是身份令牌的签名,令牌签名可采用私有秘钥进行加密。调用鉴权平台验证令牌签名的有效性,并可以拒绝令牌签名无效的接口调用请求。当有效日期和令牌签名均验证通过后,确定针对第二对象的身份验证结果为通过。

接下来,在操作S320,在身份验证结果指示通过的情况下,获取与身份令牌关联的有效接口列表。

在本公开实施例中,具体地,当确定第二对象的身份验证结果为通过后,获取与身份令牌关联的有效接口列表,有效接口列表包括第二对象有权调用的所有接口的接口标识,接口标识具体可以包括接口的接口类名和接口名称。接口类名和接口名称这两个参数对每个接口来说都是不同且固定的,因此可针对每个接口固定该两个参数,因此,也可利用该两个参数唯一标识各个接口。

接下来,在操作S330,根据有效接口列表和接口参数,验证第二对象是否有权调用目标接口。

在本公开实施例中,具体地,确定有效接口列表是否包含接口参数指示的目标接口,在有效接口列表包含目标接口的情况下,确定第二对象有权调用目标接口;在有效接口列表不包含目标接口的情况下,确定第二对象无权调用目标接口。

接口调用方在调用鉴权平台进行注册时,通过获取接口调用方请求调用的未授权接口的接口标识,调用鉴权平台和接口提供方进行针对各未授权接口的调用鉴权操作,生成与接口调用方的身份令牌关联的有效接口列表。在之后的接口调用操作中,无需接口提供方根据大量的调用配置信息,进行针对目标接口的调用鉴权操作,接口调用鉴权效率高。

在本公开实施例中,接口提供方在获取到接口调用请求后,将接口调用方的身份令牌发送给调用鉴权平台,以进行针对目标接口的调用鉴权操作。提供接口服务的应用程序可以无需维护针对各接口的鉴权配置信息,调用鉴权数据维护成本低,维护难度小;调用鉴权平台根据与身份令牌关联的有效接口列表,确定接口调用方是否具有针对目标接口的调用权限,相比于利用与目标接口关联的大量的鉴权配置信息进行调用鉴权操作,本申请有利于提高接口调用鉴权效率。

图4示意性示出了根据本公开实施例的接口调用的处理装置的框图。

如图4所示,该装置包括第一接收模块401、第一确定模块402、第一验证模块403和发送模块404。

具体地,第一接收模块401,用于接收第一对象的调用鉴权请求,其中,调用鉴权请求是第一对象在接收到第二对象的接口调用请求后生成的;第一确定模块402,用于确定调用鉴权请求指示的第二对象的身份信息和第二对象请求调用的目标接口的接口参数;第一验证模块403,用于根据身份信息和接口参数,验证第二对象是否有权调用目标接口,以得到验证结果;发送模块404,用于将验证结果发送给第一对象,以供第一对象根据验证结果确定是否允许第二对象调用目标接口。

在本公开实施例中,通过接收第一对象的调用鉴权请求,其中,调用鉴权请求是第一对象在接收到第二对象的接口调用请求后生成的,确定调用鉴权请求指示的第二对象的身份信息和第二对象请求调用的目标接口的接口参数,然后根据身份信息和接口参数,验证第二对象是否有权调用目标接口,以得到验证结果,并将验证结果发送给第一对象,以供第一对象根据验证结果确定是否允许第二对象调用目标接口。利用独立于第一对象(接口提供方)与第二对象(接口调用方)的第三方平台(调用鉴权平台),进行针对第二对象的接口调用鉴权操作,提供接口服务的提供方无需维护针对各接口的鉴权配置信息,这有利于降低接口调用鉴权的数据维护成本及维护难度,有利于提高接口调用鉴权的鉴权效率。

作为一种可选的实施例,第一确定模块包括第一确定子模块,用于确定调用鉴权请求指示的第二对象的身份令牌;第一验证模块包括第一验证子模块,用于根据身份令牌和接口参数,验证第二对象是否有权调用目标接口。

作为一种可选的实施例,第一验证子模块包括第一验证单元,用于根据身份令牌,对第二对象进行身份验证操作,得到身份验证结果;第一获取单元,用于在身份验证结果指示通过的情况下,获取与身份令牌关联的有效接口列表;第二验证单元,用于根据有效接口列表和接口参数,验证第二对象是否有权调用目标接口。

作为一种可选的实施例,第一验证单元包括第一处理子单元,用于确定身份令牌的有效日期和身份令牌中的令牌签名;第一验证子单元,用于对有效日期和令牌签名进行验证,以进行身份验证操作。

作为一种可选的实施例,第二验证单元包括第二处理子单元,用于确定有效接口列表是否包含接口参数指示的目标接口;以及第三处理子单元,用于在有效接口列表包含目标接口的情况下,确定第二对象有权调用目标接口。

作为一种可选的实施例,本装置还包括第二接收模块,用于接收第二对象的注册信息,其中,注册信息包括第二对象的身份信息和接口调用信息;第二确定模块,用于根据身份信息和接口调用信息,确定第二对象有权调用的接口列表,以得到有效接口列表;第一处理模块,用于根据身份信息和有效接口列表,生成身份令牌。

作为一种可选的实施例,第二确定模块包括第二确定子模块,用于根据接口调用信息,确定第二对象请求调用的至少一个未授权接口;第一处理子模块,用于根据身份信息和接口调用信息,进行针对各未授权接口的调用鉴权操作,以得到针对各未授权接口的第一鉴权结果;第三确定子模块,用于根据各未授权接口的接口标识,确定发布至少一个未授权接口的至少一个第三对象;发送子模块,用于将身份信息和接口调用信息发送给各第三对象,以供各第三对象进行针对未授权接口的调用鉴权操作,以得到针对各未授权接口的第二鉴权结果;第四确定子模块,用于根据第一鉴权结果和第二鉴权结果,确定第二对象有权调用的接口列表。

作为一种可选的实施例,还包括第三接收模块,用于接收第二对象发送的针对任一未授权接口的权限获取请求;第三确定模块,用于对权限获取请求进行审核操作,以确定第二对象是否有权调用未授权接口;第二处理模块,用于在确定第二对象有权调用未授权接口的情况下,将未授权接口添加至有效接口列表中。

在本公开实施例中,接口提供方在获取到接口调用请求后,将接口调用方的身份令牌发送给调用鉴权平台,以进行针对目标接口的调用鉴权操作。提供接口服务的应用程序可以无需维护针对各接口的鉴权配置信息,调用鉴权数据维护成本低,维护难度小;调用鉴权平台根据与身份令牌关联的有效接口列表,确定接口调用方是否具有针对目标接口的调用权限,相比于利用与目标接口关联的大量的鉴权配置信息进行调用鉴权操作,本申请有利于提高接口调用鉴权效率。

可选地,第一接收模块401、第一确定模块402、第一验证模块403和发送模块404中的模块、子模块中的任意多个、或其中任意多个的至少部分功能可以在一个模块中实现。根据本公开实施例的模块中的任意一个或多个可以被拆分成多个模块来实现。根据本公开实施例的模块中的任意一个或多个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、片上系统、基板上的系统、封装上的系统、专用集成电路(ASIC),或可以通过对电路进行集成或封装的任何其他的合理方式的硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者根据本公开实施例的模块中的一个或多个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。

例如,第一接收模块401、第一确定模块402、第一验证模块403和发送模块404中的任意多个可以合并在一个模块中实现,或者其中的任意一个模块可以被拆分成多个模块。或者,这些模块中的一个或多个模块的至少部分功能可以与其他模块的至少部分功能相结合,并在一个模块中实现。可选地,第一接收模块401、第一确定模块402、第一验证模块403和发送模块404中的至少一个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、片上系统、基板上的系统、封装上的系统、专用集成电路(ASIC),或可以通过对电路进行集成或封装的任何其他的合理方式等硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,第一接收模块401、第一确定模块402、第一验证模块403和发送模块404中的至少一个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。

图5示意性示出了根据本公开实施例的适于实现接口调用的处理方法和装置的电子设备的框图。图5示出的计算机系统仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。

如图5所示,根据本公开实施例的计算机系统500包括处理器501,其可以根据存储在只读存储器(ROM)502中的程序或者从存储部分508加载到随机访问存储器(RAM)503中的程序而执行各种适当的动作和处理。处理器501例如可以包括通用微处理器(例如CPU)、指令集处理器和/或相关芯片组和/或专用微处理器(例如,专用集成电路(ASIC)),等等。处理器501还可以包括用于缓存用途的板载存储器。处理器501可以包括用于执行根据本公开实施例的方法流程的不同动作的单一处理单元或者是多个处理单元。

在RAM 503中,存储有系统500操作所需的各种程序和数据。处理器501、ROM 502以及RAM 503通过总线504彼此相连。处理器501通过执行ROM 502和/或RAM 503中的程序来执行根据本公开实施例的方法流程的各种操作。需要注意,所述程序也可以存储在除ROM 502和RAM 503以外的一个或多个存储器中。处理器501也可以通过执行存储在所述一个或多个存储器中的程序来执行根据本公开实施例的方法流程的各种操作。

可选地,系统500还可以包括输入/输出(I/O)接口505,输入/输出(I/O)接口505也连接至总线504。系统500还可以包括连接至I/O接口505的以下部件中的一项或多项:包括键盘、鼠标等的输入部分506;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分507;包括硬盘等的存储部分508;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分509。通信部分509经由诸如因特网的网络执行通信处理。驱动器510也根据需要连接至I/O接口506。可拆卸介质511,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器510上,以便于从其上读出的计算机程序根据需要被安装入存储部分508。

可选地,根据本公开实施例的方法流程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读存储介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分509从网络上被下载和安装,和/或从可拆卸介质511被安装。在该计算机程序被处理器501执行时,执行本公开实施例的系统中限定的上述功能。可选地,上文描述的系统、设备、装置、模块、单元等可以通过计算机程序模块来实现。

本公开还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例中描述的设备/装置/系统中所包含的;也可以是单独存在,而未装配入该设备/装置/系统中。上述计算机可读存储介质承载有一个或者多个程序,当上述一个或者多个程序被执行时,实现根据本公开实施例的方法。

可选地,计算机可读存储介质可以是非易失性的计算机可读存储介质,例如可以包括但不限于:便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。例如,可选地,计算机可读存储介质可以包括上文描述的ROM 502和/或RAM 503和/或ROM 502和RAM 503以外的一个或多个存储器。

附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

本领域技术人员可以理解,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合和/或结合,即使这样的组合或结合没有明确记载于本公开中。特别地,在不脱离本公开精神和教导的情况下,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合和/或结合。所有这些组合和/或结合均落入本公开的范围。

以上对本公开的实施例进行了描述。但是,这些实施例仅仅是为了说明的目的,而并非为了限制本公开的范围。尽管在以上分别描述了各实施例,但是这并不意味着各个实施例中的措施不能有利地结合使用。本公开的范围由所附权利要求及其等同物限定。不脱离本公开的范围,本领域技术人员可以做出多种替代和修改,这些替代和修改都应落在本公开的范围之内。

22页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:权限配置方法、装置及计算机可读存储介质

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类