掌桥专利:专业的专利平台
掌桥专利
首页

微服务的调用权限控制方法、装置、服务器、系统及介质

文献发布时间:2023-06-19 12:24:27


微服务的调用权限控制方法、装置、服务器、系统及介质

技术领域

本申请涉及微服务领域,尤其涉及一种微服务的调用权限控制方法、装置、服务器、系统及介质。

背景技术

微服务具有可独立部署、支持对微服务中的组件或服务进行精确缩放、可扩展性高的优点,因此被各大企业广泛应用,以建立外部业务系统或内部系统。然而,系统中的微服务的数量较多,且各微服务间的调用关系混乱,服务提供方无法得知其所有依赖的调用方,存在非法调用的安全风险。

发明内容

本申请实施例提供一种微服务的调用权限控制方法、装置、服务器、系统及介质,旨在提高微服务的调用安全。

第一方面,本申请实施例提供一种微服务的调用权限控制方法,应用于服务器,所述方法包括:

获取待配置调用权限的微服务的调用权限信息;

向审批系统发送所述调用权限信息的审批请求,并获取所述审批系统基于所述审批请求返回的所述调用权限信息的审批结果;

在所述审批结果为审批通过时,将所述调用权限信息发送至分布式存储系统进行存储,以供微服务端在检测到服务调用方的服务调用请求时,基于所述分布式存储系统中的对应调用权限信息,对所述服务调用请求进行校验,若所述服务调用请求通过校验,则响应所述服务调用请求。

第二方面,本申请实施例还提供一种微服务的调用权限控制方法,应用于微服务端,所述方法包括:

通过预设SDK拦截服务调用方发送的服务调用请求,其中,所述服务调用请求用于请求调用服务提供方,所述服务调用请求包括服务调用信息;

通过所述预设SDK从分布式存储系统中获取所述服务提供方的调用权限信息;

根据所述调用权限信息和所述服务调用信息,确定所述服务调用方是否具备调用所述服务提供方的权限;

若所述服务调用方具备调用所述服务提供方的权限,则响应所述服务调用请求;

若所述服务调用方不具备调用所述服务提供方的权限,则向服务器发送调用异常信息。

第三方面,本申请实施例还提供一种微服务的调用权限控制装置,所述微服务的调用权限控制装置包括:

获取模块,用于获取待配置调用权限的微服务的调用权限信息;

发送模块,用于向审批系统发送所述调用权限信息的审批请求;

所述获取模块,还用于获取所述审批系统基于所述审批请求返回的所述调用权限信息的审批结果;

所述发送模块,还用于在所述审批结果为审批通过时,将所述调用权限信息发送至分布式存储系统进行存储,以供微服务端在检测到服务调用方的服务调用请求时,基于所述分布式存储系统中的对应调用权限信息,对所述服务调用请求进行校验,若所述服务调用请求通过校验,则响应所述服务调用请求。

第四方面,本申请实施例还提供一种服务器,所述服务器包括处理器、存储器、以及存储在所述存储器上并可被所述处理器执行的计算机程序,其中所述计算机程序被所述处理器执行时,实现如上所述的微服务的调用权限控制方法的步骤。

第五方面,本申请实施例还提供一种微服务的调用权限控制系统,所述微服务的调用权限控制系统包括分布式存储系统、微服务集群和如上所述的服务器,所述分布式存储系统分别与所述微服务集群和所述服务器通信连接,所述服务器与所述微服务集群通信连接。

第六方面,本申请实施例还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,其中所述计算机程序被处理器执行时,实现如上所述的微服务的调用权限控制方法的步骤。

本申请实施例提供一种微服务的调用权限控制方法、装置、服务器、系统及介质,该调用权限控制方法通过获取包含微服务的调用权限信息的调用权限配置请求,然后向审批系统发送调用权限信息的审批请求,由审批系统对该审批请求中的调用权限信息进行审批,得到该调用权限信息的审批结果,最后获取审批系统发送的该调用权限信息的审批结果,并在该审批结果为审批通过时,将该调用权限信息发送至分布式存储系统进行存储,使得微服务端在检测到服务调用方发送的服务调用请求时,能够基于分布式存储系统中的对应调用权限信息,对服务调用请求进行校验,若服务调用请求通过校验,则响应服务调用请求,以调用对应的微服务,从而避免微服务的非法调用,极大地提高了微服务的调用安全。

附图说明

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

图1是实施本申请实施例提供的微服务的调用权限控制方法的一网络结构示意图;

图2是本申请实施例提供的一种微服务的调用权限控制方法的步骤流程示意图;

图3是本申请实施例提供的另一种微服务的调用权限控制方法的步骤流程示意图;

图4是本申请实施例提供的一种微服务的调用权限控制装置的示意性框图;

图5是本申请实施例提供的另一种微服务的调用权限控制装置的示意性框图;

图6是本申请实施例提供的另一种微服务的调用权限控制装置的示意性框图;

图7是本申请实施例提供的一种服务器的结构示意性框图;

图8是本申请实施例提供的一种微服务的调用权限控制系统的结构示意性框图。

本申请目的的实现、功能特点及优点将结合实施例,参阅附图做进一步说明。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

附图中所示的流程图仅是示例说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解、组合或部分合并,因此实际执行的顺序有可能根据实际情况改变。下面结合附图,对本申请的一些实施方式作详细说明。在不冲突的情况下,下述的实施例及实施例中的特征可以相互组合。

目前,微服务端具有可独立部署、支持对微服务端中的组件或服务进行精确缩放、可扩展性高的优点,因此被各大企业广泛应用,以建立外部业务系统或内部系统。然而,系统中的微服务端的数量较多,且各微服务端间的调用关系混乱,服务提供方无法得知其所有依赖的调用方,存在非法调用的安全风险。

为解决上述问题,本申请实施例提供一种微服务的调用权限控制方法、装置、服务器、系统及介质,该调用权限控制方法通过获取包含微服务的调用权限信息的调用权限配置请求,然后向审批系统发送调用权限信息的审批请求,由审批系统对该审批请求中的调用权限信息进行审批,得到该调用权限信息的审批结果,最后获取审批系统发送的该调用权限信息的审批结果,并在该审批结果为审批通过时,将该调用权限信息发送至分布式存储系统进行存储,使得微服务端在检测到服务调用方发送的服务调用请求时,能够基于分布式存储系统中的对应调用权限信息,对服务调用请求进行校验,若服务调用请求通过校验,则响应服务调用请求,以调用对应的微服务,从而避免微服务的非法调用,极大地提高了微服务的调用安全。

请参阅图1,图1是实施本申请实施例提供的微服务的调用权限控制方法的一网络结构示意图。如图1所示,该网络结构包括服务器11、审批系统12、分布式存储系统13和微服务集群14,服务器100分别与审批系统12、分布式存储系统13和微服务集群14通信连接,分布式存储系统13与微服务集群14通信连接。其中,微服务集群14包括多个微服务,服务器11用于配置、变更、删除微服务的调用权限信息,审批系统12用于审批微服务的调用权限信息,分布式存储系统用于存储给微服务配置的调用权限信息。

在一实施例中,服务器11获取待配置调用权限的微服务的调用权限信息,并向审批系统12发送该调用权限信息的审批请求;审批系统12在接收到服务器11发送的审批请求后,对该审批请求中的调用权限信息进行审批,并向服务器11返回调用权限信息的审批结果;服务器11获取审批系统发送的审批结果,并在该审批结果为审批通过时,将该调用权限信息发送至分布式存储系统13进行存储;微服务端在检测到服务调用方的服务调用请求时,基于分布式存储系统13中的对应调用权限信息,对该服务调用请求进行校验,若该服务调用请求通过校验,则响应服务调用请求。

在一实施例中,微服务端通过预设SDK拦截服务调用方发送的服务调用请求,其中,该服务调用请求用于请求调用服务提供方,该服务调用请求包括服务调用信息;通过预设SDK从分布式存储系统13中获取服务提供方(即微服务端安装的微服务)的调用权限信息;根据该调用权限信息和该服务调用信息,确定服务调用方是否具备调用服务提供方的权限;若服务调用方具备调用服务提供方的权限,则响应服务调用请求;若服务调用方不具备调用服务提供方的权限,则向服务器发送调用异常信息。

以下,将结合图1中的网络结构对本申请的实施例提供的微服务的调用权限控制方法进行详细介绍。需知,图1中的网络结构仅用于解释本申请实施例提供的微服务的调用权限控制方法,但并不构成对本申请实施例提供的微服务的调用权限控制方法应用场景的限定。

请参阅图2,图2是本申请实施例提供的一种微服务的调用权限控制方法的步骤流程示意图。本实施例提供的微服务的调用权限控制方法可以应用于服务器。

如图2所示,该微服务的调用权限控制方法包括步骤S101至步骤S103。

步骤S101、获取待配置调用权限的微服务的调用权限信息。

其中,该调用权限信息包括待配置调用权限的微服务(服务提供方)的微服务标识、至少一个服务调用方的微服务标识、至少一个服务调用方调用服务提供方所使用的至少一个接口的接口标识。可以理解的是,不同微服务的调用权限可以相同,也可以不同,本实施例对此不做具体限定。

示例性的,终端设备显示微服务的调用权限配置页面;响应用户在该调用权限配置页面输入的调用权限信息;响应用户对该调用权限配置页面中的确认按键的触发操作,将该调用权限信息发送给服务器;服务器获取终端设备发送的调用权限信息。

步骤S102、向审批系统发送调用权限信息的审批请求,并获取审批系统基于审批请求返回的调用权限信息的审批结果。

示例性的,审批系统从该审批请求中获取待审批的调用权限信息,并确定该调用权限信息的目标审批链;基于该目标审批链,对该调用权限信息进行审批;定时判断该调用权限信息的审批是否完成,若确定该调用权限信息的审批完成,则获取该目标审批链中的每个审批节点对该调用权限信息的审批结果;根据每个审批节点对该调用权限信息的审批结果,确定该调用权限信息的最终审批结果,并向服务器发送调用权限信息的审批结果。

示例性的,审批系统确定该调用权限信息的目标审批链的方式可以为:审批系统统计该调用权限信息中的服务调用方的个数,得到服务调用方个数;根据该服务调用方个数,从预设的多个审批链中确定该调用权限信息的目标审批链。其中,目标审批链包括至少一个审批节点,服务调用方个数越多,则目标审批链中的审批节点的个数也越多,而服务调用方个数越多,则目标审批链中的审批节点的个数也越少,预设的审批链可基于实际情况进行设置,本实施例对此不做具体限定。

示例性的,审批系统根据该服务调用方个数,从预设的多个审批链中确定该调用权限信息的目标审批链的方式可以为:审批系统确定服务调用方个数所处的预设数量范围,并获取预存的数量范围与审批链之间的映射关系;根据该映射关系和该服务调用方个数所处的预设数量范围,从预设的多个审批链中确定该调用权限信息的目标审批链。其中,预存的数量范围与审批链之间的映射关系可由用户自行设置,本实施例对此不做具体限定。

在一实施例中,服务器在向审批系统发送审批请求之前,服务器确定该调用权限信息的审批等级;根据该审批等级,从预设的多个审批链中确定调用权限信息的目标审批链;根据该调用权限信息和该目标审批链,生成审批请求。其中,审批请求包括待审批的调用权限信息和目标审批链,审批等级越高,则目标审批链中的审批节点的个数也越多,而审批等级越高,则目标审批链中的审批节点的个数也越低。

示例性的,审批系统从该审批请求中获取待审批的调用权限信息和目标审批链;基于该目标审批链,对该调用权限信息进行审批;定时判断该调用权限信息的审批是否完成,若确定该调用权限信息的审批完成,则获取该目标审批链中的每个审批节点对该调用权限信息的审批结果;根据每个审批节点对该调用权限信息的审批结果,确定该调用权限信息的最终审批结果,并向服务器发送调用权限信息的审批结果。

示例性的,服务器确定该调用权限信息的审批等级的方式可以为:确定调用权限信息中的服务调用方的个数,得到服务调用方个数,和/或,确定该调用权限信息中的每个服务调用方的重要程度等级;根据该服务调用方个数和/或每个该服务调用方的重要程度等级,确定该调用权限信息的审批等级。

示例性的,根据该服务调用方个数,确定该调用权限信息的审批等级的方式可以为:服务器确定服务调用方个数所处的预设数量范围,并获取预存的数量范围与审批等级之间的映射关系;根据该映射关系和该服务调用方个数所处的预设数量范围,确定该调用权限信息的审批等级。

示例性的,根据每个该服务调用方的重要程度等级,确定该调用权限信息的审批等级的方式可以为:比较每个该服务调用方的重要程度等级,得到最高的重要程度等级;基于最高的重要程度等级和预存的重要程度等级与审批等级之间的映射关系,确定该调用权限信息的审批等级。

示例性的,根据该服务调用方个数和每个该服务调用方的重要程度等级,确定该调用权限信息的审批等级的方式可以为:根据该服务调用方个数,确定该调用权限信息的第一审批等级;根据每个该服务调用方的重要程度等级,确定该调用权限信息的第二审批等级;若第一审批等级大于第二审批等级,则将第一审批等级确定为调用权限信息的审批等级;若第一审批等级小于第二审批等级,则将第二审批等级确定为调用权限信息的审批等级。

步骤S103、在审批结果为审批通过时,将调用权限信息发送至分布式存储系统进行存储。

其中,分布式存储系统中存储有多个微服务的调用权限信息,微服务端与分布式存储系统通信连接,使得微服务端能够从分布式存储系统中获取配置的调用权限信息。可选的,该分布式存储系统可以为Zookeeper。

在一实施例中,若微服务端检测到服务调用方(其它的微服务)发送的服务调用请求时,基于该分布式存储系统中的微服务端本身安装的微服务的调用权限信息,对该服务调用请求进行校验,若该服务调用请求通过校验,则响应该服务调用请求,实现微服务的调用,若该服务调用请求未通过校验,则向服务器发送调用异常信息。其中,微服务间的远程过程调用(Remote Procedure Call,RPC)包括Feign调用,也即服务调用请求包括Feign调用请求。其中,Feign是spring cloud中服务消费端的调用框架,可以更快捷、优雅地调用HTTP API。

示例性的,作为服务提供方的每个微服务端均安装有预设软件开发工具包SDK,预设SDK用于拦截作为服务调用方的微服务端发送的服务调用请求和从分布式存储系统中获取配置的调用权限信息。

示例性的,微服务端通过预设SDK拦截服务调用方发送的服务调用请求,并通过预设SDK从分布式存储系统中获取服务提供方的调用权限信息;从该服务调用请求中获取服务调用信息,并根据该调用权限信息和该服务调用信息,确定服务调用方是否具备调用服务提供方的权限;若服务调用方具备调用服务提供方的权限,则响应服务调用请求;若服务调用方不具备调用所述服务提供方的权限,则向服务器发送调用异常信息。

在一实施例中,服务器获取任一微服务发送的服务调用信息,该服务调用信息包括服务提供方的第一微服务标识和服务调用方的第二微服务标识;从分布式存储系统中获取第一微服务标识对应的调用权限信息;根据获取到的调用权限信息和服务调用信息,确定服务调用方是否具备调用服务提供方的权限;若服务调用方不具备调用服务提供方的权限,则向服务调用方对应的终端设备发送预设告警信息,以使终端设备输出预设告警信息。其中,预设告警信息用于提示用户存在非法调用的微服务。

其中,服务调用信息还包括服务调用方调用服务提供方的所使用的接口的第一接口标识,服务提供方的调用权限信息包括至少一个服务调用方的第三微服务标识和至少一个服务调用方调用服务提供方所使用的至少一个接口的第二接口标识。

示例性的,确定至少一个第三微服务标识中是否包含第二微服务标识,并确定至少一个第二接口标识中是否包含第一接口标识;若至少一个所述第三微服务标识中包含第二微服务标识,且至少一个第二接口标识中包含第一接口标识,则确定服务调用方具备调用服务提供方的权限;若至少一个第三微服务标识中不包含第二微服务标识或至少一个第二接口标识中不包含第一接口标识,则确定服务调用方不具备调用服务提供方的权限。

上述实施例提供的调用权限控制方法,通过获取包含微服务的调用权限信息的调用权限配置请求,然后向审批系统发送调用权限信息的审批请求,由审批系统对该审批请求中的调用权限信息进行审批,得到该调用权限信息的审批结果,最后获取审批系统发送的该调用权限信息的审批结果,并在该审批结果为审批通过时,将该调用权限信息发送至分布式存储系统进行存储,使得微服务端在检测到服务调用方发送的服务调用请求时,能够基于分布式存储系统中的对应调用权限信息,对服务调用请求进行校验,若服务调用请求通过校验,则响应服务调用请求,以调用对应的微服务,从而避免微服务的非法调用,极大地提高了微服务的调用安全。

请参阅图3,图3是本申请实施例提供的另一种微服务的调用权限控制方法的步骤流程示意图。本实施例提供的调用权限控制方法应用于微服务端。

如图3所示,该微服务的调用权限控制方法包括步骤S201至S205。

步骤S201、通过预设SDK拦截服务调用方发送的服务调用请求。

其中,服务调用请求用于请求调用服务提供方,服务调用请求包括服务调用方的服务调用信息,该服务调用信息包括服务提供方的第一微服务标识、服务调用方的第二微服务标识、服务调用方调用服务提供方的所使用的接口的第一接口标识,作为服务提供方的每个微服务端均安装有预设软件开发工具包SDK,预设SDK用于拦截作为服务调用方的微服务发送的服务调用请求和从分布式存储系统中获取配置的调用权限信息。

步骤S202、通过预设SDK从分布式存储系统中获取服务提供方的调用权限信息。

其中,分布式存储系统中存储有多个作为服务提供方的微服务的调用权限信息。可选的,该分布式存储系统可以为Zookeeper。服务提供方的调用权限信息包括至少一个服务调用方的第三微服务标识和至少一个服务调用方调用服务提供方所使用的至少一个接口的第二接口标识。

步骤S203、根据调用权限信息和服务调用信息,确定服务调用方是否具备调用服务提供方的权限。

示例性的,确定至少一个第三微服务标识中是否包含第二微服务标识,并确定至少一个第二接口标识中是否包含第一接口标识;若至少一个所述第三微服务标识中包含第二微服务标识,且至少一个第二接口标识中包含第一接口标识,则确定服务调用方具备调用服务提供方的权限;若至少一个第三微服务标识中不包含第二微服务标识或至少一个第二接口标识中不包含第一接口标识,则确定服务调用方不具备调用服务提供方的权限。

步骤S204、若服务调用方具备调用服务提供方的权限,则响应服务调用请求。

示例性的,响应服务调用请求的方式可以为:基于服务提供方的第二微服务标识和第二接口标识,调用作为服务提供方的微服务端,得到响应数据,并基于服务调用方的第一微服务标识,向作为服务调用方的微服务端发送给响应数据。

步骤S205、若服务调用方不具备调用服务提供方的权限,则向服务器发送调用异常信息。

其中,调用异常信息包括包括服务调用方的微服务标识、服务提供方的微服务标识、服务调用方调用服务提供方所使用的接口的接口标识和调用异常标识,该调用异常标识用于表示作为服务调用方的微服务的调用出现异常。

上述实施例提供的微服务的调用权限控制方法,服务提供方通过拦截服务调用方发送的服务调用请求,并从分布式存储系统中获取服务提供方的调用权限信息,然后基于该调用权限信息和该服务调用请求中的服务调用信息,来确定服务调用方是否具备调用服务提供方的权限,使得在服务调用方具备调用服务提供方的权限时,响应服务调用请求,而在服务调用方不具备调用服务提供方的权限时,不响应服务调用请求,而是向服务器发送调用异常信息,从而避免微服务的非法调用,极大地提高了微服务的调用安全。

请参阅图4,图4是本申请实施例提供的一种微服务的调用权限控制装置的示意性框图。

如图4所示,该微服务的调用权限控制装置300,包括:

获取模块310,用于获取待配置调用权限的微服务的调用权限信息;

发送模块320,用于向审批系统发送所述调用权限信息的审批请求;

所述获取模块310,还用于获取所述审批系统基于所述审批请求返回的所述调用权限信息的审批结果;

所述发送模块320,还用于在所述审批结果为审批通过时,将所述调用权限信息发送至分布式存储系统进行存储,以供微服务端在检测到服务调用方的服务调用请求时,基于所述分布式存储系统中的对应调用权限信息,对所述服务调用请求进行校验,若所述服务调用请求通过校验,则响应所述服务调用请求。

在一实施例中,如图5所示,微服务的调用权限控制装置300还包括:

确定模块330,用于确定所述调用权限信息的审批等级;

所述确定模块330,还用于根据所述审批等级,从预设的多个审批链中确定所述调用权限信息的目标审批链;

生成模块340,用于根据所述调用权限信息和所述目标审批链,生成所述审批请求。

在一实施例中,所述确定模块330还用于:

确定所述调用权限信息中的服务调用方的个数,得到服务调用方个数,和/或,确定所述调用权限信息中的每个服务调用方的重要程度等级;

根据所述服务调用方个数和/或每个所述服务调用方的重要程度等级,确定所述调用权限信息的审批等级。

在一实施例中,所述获取模块310,还用于获取任一所述微服务发送的服务调用信息,其中,所述服务调用信息包括服务提供方的第一微服务标识和服务调用方的第二微服务标识;

所述获取模块310,还用于从所述分布式存储系统中获取所述第一微服务标识对应的所述调用权限信息;

所述确定模块330,还用于根据获取到的所述调用权限信息和所述服务调用信息,确定所述服务调用方是否具备调用所述服务提供方的权限;

所述发送模块320,还用于若所述服务调用方不具备调用所述服务提供方的权限,则向所述服务调用方对应的终端设备发送预设告警信息。

在一实施例中,述服务调用信息还包括所述服务调用方调用所述服务提供方的所使用的接口的第一接口标识,所述调用权限信息包括至少一个服务调用方的第三微服务标识和至少一个所述服务调用方调用服务提供方所使用的至少一个接口的第二接口标识,所述确定模块330还用于:

确定至少一个所述第三微服务标识中是否包含所述第二微服务标识,并确定至少一个所述第二接口标识中是否包含所述第一接口标识;

若至少一个所述第三微服务标识中包含所述第二微服务标识,且至少一个所述第二接口标识中包含所述第一接口标识,则确定所述服务调用方具备调用所述服务提供方的权限;

若至少一个所述第三微服务标识中不包含所述第二微服务标识或至少一个所述第二接口标识中不包含所述第一接口标识,则确定所述服务调用方不具备调用所述服务提供方的权限。

请参阅图6,图6是本申请实施例提供的另一种微服务的调用权限控制装置的示意性框图。

如图6所示,该微服务的调用权限控制装置400,包括:

拦截模块410,用于通过拦截服务调用方发送的服务调用请求,其中,所述服务调用请求用于请求调用服务提供方,所述服务调用请求包括服务调用信息;

获取模块420,用于通过所述预设SDK从分布式存储系统中获取所述服务提供方的调用权限信息;

确定模块430,用于根据所述调用权限信息和所述服务调用信息,确定所述服务调用方是否具备调用所述服务提供方的权限;

响应模块440,用于若所述服务调用方具备调用所述服务提供方的权限,则响应所述服务调用请求;

发送模块450,用于若所述服务调用方不具备调用所述服务提供方的权限,则向服务器发送调用异常信息。

需要说明的是,所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的装置和各模块及单元的具体工作过程,可以参考前述微服务的调用权限控制方法实施例中的对应过程,在此不再赘述。

请参阅图7,图7是本申请实施例提供的一种服务器的结构示意性框图。

如图7所示,该服务器包括通过系统总线连接的处理器、存储器和网络接口,其中,存储器可以包括存储介质和内存储器。

存储介质可存储操作系统和计算机程序。该计算机程序包括程序指令,该程序指令被执行时,可使得处理器执行任意一种微服务的调用权限控制方法。

处理器用于提供计算和控制能力,支撑整个服务器的运行。

该网络接口用于进行网络通信,如发送分配的任务等。本领域技术人员可以理解,图7中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的服务器的限定,具体的服务器可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。

应当理解的是,处理器可以是中央处理单元(Central Processing Unit,CPU),该处理器还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。其中,通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。

其中,在一实施例中,所述处理器用于运行存储在存储器中的计算机程序,以实现如下步骤:

获取待配置调用权限的微服务的调用权限信息;

向审批系统发送所述调用权限信息的审批请求,并获取所述审批系统基于所述审批请求返回的所述调用权限信息的审批结果;

在所述审批结果为审批通过时,将所述调用权限信息发送至分布式存储系统进行存储,以供微服务端在检测到服务调用方的服务调用请求时,基于所述分布式存储系统中的对应调用权限信息,对所述服务调用请求进行校验,若所述服务调用请求通过校验,则响应所述服务调用请求。

在一实施例中,所述处理器在实现向审批系统发送所述调用权限信息的审批请求之前,还用于实现:

确定所述调用权限信息的审批等级;

根据所述审批等级,从预设的多个审批链中确定所述调用权限信息的目标审批链;

根据所述调用权限信息和所述目标审批链,生成所述审批请求。

在一实施例中,所述处理器在实现确定所述调用权限信息的审批等级时,用于实现:

确定所述调用权限信息中的服务调用方的个数,得到服务调用方个数,和/或,确定所述调用权限信息中的每个服务调用方的重要程度等级;

根据所述服务调用方个数和/或每个所述服务调用方的重要程度等级,确定所述调用权限信息的审批等级。

在一实施例中,所述分布式存储系统存储有多个所述微服务的调用权限信息,所述处理器还用于实现以下步骤:

获取任一所述微服务发送的服务调用信息,其中,所述服务调用信息包括服务提供方的第一微服务标识和服务调用方的第二微服务标识;

从所述分布式存储系统中获取所述第一微服务标识对应的所述调用权限信息;

根据获取到的所述调用权限信息和所述服务调用信息,确定所述服务调用方是否具备调用所述服务提供方的权限;

若所述服务调用方不具备调用所述服务提供方的权限,则向所述服务调用方对应的终端设备发送预设告警信息。

在一实施例中,所述服务调用信息还包括所述服务调用方调用所述服务提供方的所使用的接口的第一接口标识,所述调用权限信息包括至少一个服务调用方的第三微服务标识和至少一个所述服务调用方调用服务提供方所使用的至少一个接口的第二接口标识,所述处理器在实现根据获取到的所述调用权限信息和所述服务调用信息,确定所述服务调用方是否具备调用所述服务提供方的权限时,用于实现:

确定至少一个所述第三微服务标识中是否包含所述第二微服务标识,并确定至少一个所述第二接口标识中是否包含所述第一接口标识;

若至少一个所述第三微服务标识中包含所述第二微服务标识,且至少一个所述第二接口标识中包含所述第一接口标识,则确定所述服务调用方具备调用所述服务提供方的权限;

若至少一个所述第三微服务标识中不包含所述第二微服务标识或至少一个所述第二接口标识中不包含所述第一接口标识,则确定所述服务调用方不具备调用所述服务提供方的权限。

需要说明的是,所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的服务器的具体工作过程,可以参考前述微服务的调用权限控制方法实施例中的对应过程,在此不再赘述。

通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本申请可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台服务器(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例或者实施例的某些部分所述的方法。

请参阅图8,图8是本申请实施例提供的一种微服务的调用权限控制系统的结构示意性框图。

如图8所示,微服务的调用权限控制系统500包括:分布式存储系统510、微服务集群520和服务器530,分布式存储系统510分别与微服务集群520和服务器通信530连接,服务器530与微服务集群520通信连接。其中,微服务集群520包括多个微服务。

需要说明的是,所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的微服务的调用权限控制系统的具体工作过程,可以参考前述微服务的调用权限控制方法实施例中的对应过程,在此不再赘述。

本申请实施例还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序中包括程序指令,所述程序指令被执行时所实现的方法可参阅本申请微服务的调用权限控制方法的各个实施例。

其中,所述计算机可读存储介质可以是易失性的,也可以是非易失性的。所述计算机可读存储介质可以是前述实施例所述的服务器的内部存储单元,例如所述服务器的硬盘或内存。所述计算机可读存储介质也可以是所述服务器的外部存储设备,例如所述服务器上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。

进一步地,所述计算机可读存储介质可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序等;存储数据区可存储根据区块链节点的使用所创建的数据等。

本申请所指区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(Blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层等。

应当理解,在此本申请说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本申请。如在本申请说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。

还应当理解,在本申请说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。

上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。

相关技术
  • 微服务的调用权限控制方法、装置、服务器、系统及介质
  • 一种基于微服务架构下服务调用权限控制方法
技术分类

06120113283850