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

微服务调用方法、调用装置、电子设备和存储介质

文献发布时间:2023-06-19 11:45:49


微服务调用方法、调用装置、电子设备和存储介质

技术领域

本公开涉及信息安全技术领域和金融领域,更具体地,涉及一种微服务调用方法、调用装置、电子设备和存储介质。

背景技术

由于微服务架构具有易于开发、易于维护、伸缩性强等优点,其被越来越多地企业所应用。其中,微服务的安全认证属于微服务架构下安全领域内一个重要部分。目前,相关技术中可以使用集中式结构对于微服务调用进行安全管控。具体地,首先,建设统一的认证鉴权中心,并将所有的微服务接入该中心进行统一管理,例如基于OAuth2.0协议开发的Authserver。然后,服务调用方在每次调用目标服务前,先向Authserver发起认证请求,Authserver认证通过后返回一个令牌。接着,服务调用方随即携带令牌调用目标微服务,服务提供方获取该令牌后,向Authserver发起请求校验令牌有效性,校验通过后即开放服务调用,提供目标微服务。

在实现本公开构思的过程中,发明人发现现有技术中至少存在如下问题:

集中式的安全管控方式使得服务提供方处理所有服务调用时,为了确认调用请求的真实性和有效性,每次都需要调用认证中心的令牌验证服务,导致服务提供方频繁发起请求,性能较低。

发明内容

有鉴于此,本公开实施例提供了一种能够避免服务提供方通过频繁请求的方式进行安全认证,从而提高调用性能的微服务调用方法,以及调用装置、电子设备和存储介质。

本公开实施例的一个方面提供了一种应用于管理端的微服务调用方法。微服务调用方法包括接收消费方发送的调用申请,其中,调用申请包括消费方的第一标识、以及服务方的第二标识,服务方用于对消费方认证通过后提供微服务。响应调用申请生成加密信息,并基于第二标识获取服务方的调用信息,其中,加密信息与第一标识、以及第二标识相互关联。将加密信息和调用信息发送到消费方,以使得消费方基于调用信息向服务方发送调用请求,其中,调用请求包括第一业务数据和第一标识,消费方利用加密信息加密第一业务数据。将加密信息发送到服务方,以使得服务方基于第一标识关联到加密信息,并基于加密信息对加密的第一业务数据进行解密得到解密结果,其中,服务方基于解密结果对消费方进行认证。

根据本公开的实施例,加密信息包括第一加密信息和第二加密信息,将加密信息发送到消费方和服务方包括:利用第一加密信息对第二加密信息进行加密。将加密的第二加密信息发送到消费方和服务方。

根据本公开的实施例,响应调用申请生成加密信息包括生成第一加密信息,具体包括:利用非对称加密算法生成第一加密信息,其中,第一加密信息包括相互对应的公钥和私钥。

根据本公开的实施例,将加密后的第二加密信息发送到消费方和服务方包括:将公钥和加密的第二加密信息发送到消费方和服务方。其中,利用第一加密信息对第二加密信息进行加密包括:利用私钥对第二加密信息进行加密。

根据本公开的实施例,生成加密信息包括:生成加密盐、以及密钥。其中,消费方利用加密信息加密第一业务数据包括:将加密盐与第一业务数据进行组合获得第二业务数据。利用密钥对第二业务数据进行加密。

根据本公开的实施例,响应调用申请包括:基于第二标识向服务方发送调用通知,其中,调用通知包括第一标识。当接收到服务方发送的同意信息后,响应同意信息生成加密信息,并基于第二标识获取调用信息。

本公开实施例的另一个方面提供了一种应用于消费方的微服务调用方法。微服务调用方法包括:向管理端发送调用申请,其中,调用申请包括消费方的第一标识、以及服务方的第二标识,服务方用于对消费方认证通过后提供微服务。接收管理端发送的服务方的调用信息、以及加密信息,其中,加密信息与第一标识、以及第二标识相互关联。基于加密信息对第一业务数据进行加密。基于调用信息向服务方发送调用请求,其中,调用请求包括加密的第一业务数据、以及第一标识,以使得服务方基于第一标识关联到加密信息,并基于加密信息对加密的第一业务数据进行解密得到解密结果,其中,服务方基于解密结果对消费方进行认证。

根据本公开的实施例,加密信息包括第一加密信息和第二加密信息,基于加密信息对第一业务数据进行加密包括:接收管理端发送的解密信息,其中,解密信息与第一加密信息对应,管理端利用第一加密信息对第二加密信息进行加密。基于解密信息对加密后的第二加密信息进行解密,得到第二加密信息。基于第二加密信息对第一业务数据进行加密。

根据本公开的实施例,接收管理端发送的解密信息包括:接收管理端发送的公钥,其中,管理端利用非对称加密算法生成第一加密信息,第一加密信息包括相互对应的公钥和私钥,管理端利用私钥加密第二加密信息。

根据本公开的实施例,加密信息包括加密盐、以及密钥,基于加密信息对第一业务数据进行加密包括:将加密盐与第一业务数据进行组合获得第二业务数据。利用密钥对第二业务数据进行加密。

本公开实施例的另一个方面提供了一种应用于服务方的微服务调用方法。微服务调用方法包括:接收管理端发送的加密信息,其中,加密信息与消费方的第一标识、以及服务方的第二标识相关联。接收消费方发送的调用请求,其中,调用请求包括加密的第一业务数据、以及第一标识。基于第一标识关联到加密信息。基于加密信息对加密的第一业务数据进行解密得到解密结果,并基于解密结果对消费方进行认证。响应解密成功后获得的第一业务数据,提供消费方调用的微服务。

根据本公开的实施例,加密信息包括第二加密信息,接收管理端发送的加密信息包括:接收管理端发送的解密信息、以及加密后的第二加密信息。基于解密信息对加密后的第二加密信息进行解密,获得第二加密信息。

根据本公开的实施例,加密信息还包括第一加密信息,接收管理端发送的解密信息包括:接收管理端发送的公钥,其中,管理端利用非对称加密算法生成第一加密信息,第一加密信息包括相互对应的公钥和私钥,管理端利用私钥加密第二加密信息。

根据本公开的实施例,加密信息包括加密盐、以及密钥,基于加密信息对加密的第一业务数据进行解密包括:利用密钥和加密盐对加密的第二业务数据进行解密,其中,第二业务数据包括组合后的加密盐与第一业务数据,消费方利用密钥对第二业务数据进行加密。

根据本公开的实施例,在接收管理端发送的加密信息之前,还包括:接收管理端发送的调用通知,其中,调用通知包括第一标识。基于第一标识向管理端发送同意信息。

本公开实施例的另一方面提供了一种应用于管理端的微服务调用装置。微服务调用装置包括第一接收模块、响应申请模块、第一发送模块和第二发送模块,其中,第一接收模块用于接收消费方发送的调用申请,其中,调用申请包括消费方的第一标识、以及服务方的第二标识,服务方用于对消费方认证通过后提供微服务。响应申请模块用于响应调用申请生成加密信息,并基于第二标识获取服务方的调用信息,其中,加密信息与第一标识、以及第二标识相互关联。第一发送模块用于将加密信息和调用信息发送到消费方,以使得消费方基于调用信息向服务方发送调用请求,其中,调用请求包括第一业务数据和第一标识,消费方利用加密信息加密第一业务数据。第二发送模块用于将加密信息发送到服务方,以使得服务方基于第一标识关联到加密信息,并基于加密信息对加密的第一业务数据进行解密得到解密结果,其中,服务方基于解密结果对消费方进行认证。

本公开实施例的另一方面提供了一种应用于消费方的微服务调用装置。微服务调用装置包括第三发送模块、第二接收模块、数据加密模块和第四发送模块,其中,第三发送模块用于向管理端发送调用申请,其中,调用申请包括消费方的第一标识、以及服务方的第二标识,服务方用于对消费方认证通过后提供微服务。第二接收模块用于接收管理端发送的服务方的调用信息、以及加密信息,其中,加密信息与第一标识、以及第二标识相互关联。数据加密模块用于基于加密信息对第一业务数据进行加密。第四发送模块用于基于调用信息向服务方发送调用请求,其中,调用请求包括加密的第一业务数据、以及第一标识,以使得服务方基于第一标识关联到加密信息,并基于加密信息对加密的第一业务数据进行解密得到解密结果,其中,服务方基于解密结果对消费方进行认证。

本公开实施例的另一方面提供了一种应用于服务方的微服务调用装置。微服务调用装置包括第三接收模块、第四接收模块、信息确定模块、数据解密模块和服务提供模块。第三接收模块用于接收管理端发送的加密信息,其中,加密信息与消费方的第一标识、以及服务方的第二标识相关联。第四接收模块用于接收消费方发送的调用请求,其中,调用请求包括加密的第一业务数据、以及第一标识。信息确定模块用于基于第一标识关联到加密信息。数据解密模块用于基于加密信息对加密的第一业务数据进行解密得到解密结果,其中,基于解密结果对消费方进行认证。服务提供模块用于响应解密成功后获得的第一业务数据,提供消费方调用的微服务。

本公开实施例的另一方面提供了一种电子设备。电子设备包括一个或多个存储器、以及一个或多个处理器。存储器存储有可执行指令。处理器执行可执行指令以实现如上的方法。

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

本公开实施例的又一方面提供了一种计算机程序产品,包括计算机程序/指令,该计算机程序/指令被处理器执行时实现如上的方法。

上述一个或多个实施例具有如下优点或益效果:可以至少部分地解决服务提供方需要频繁发起请求进行安全认证的问题。在消费方调用微服务时,管理端先接收消费方发送的调用申请,然后将加密信息和服务方的调用信息发送给消费方,并把加密信息发送给服务方,从而能够使得消费方对调用请求中的第一业务数据进行加密,若服务方能够利用加密信息进行解密获得第一业务数据,即表明通过了安全认证,然后再基于第一业务数据提供微服务,使得服务方无需再频繁请求外部进行安全校验,提高了微服务调用性能。

附图说明

通过以下参照附图对本公开实施例的描述,本公开的上述以及其他目的、特征和优点将更为清楚,在附图中:

图1示意性示出了本公开实施例的可以应用微服务调用方法的示例性系统架构;

图2示意性示出了根据本公开的实施例的应用于消费方的微服务调用方法的流程图;

图3示意性示出了根据本公开的一实施例的基于加密信息对第一业务数据进行加密的流程图;

图4示意性示出了根据本公开的另一实施例的基于加密信息对第一业务数据进行加密的流程图;

图5示意性示出了根据本公开的实施例的应用于管理端的微服务调用方法的流程图;

图6示意性示出了根据本公开的实施例的将加密信息发送到消费方和服务方的流程图;

图7示意性示出了根据本公开的实施例的操作S520中响应调用申请的流程图;

图8示意性示出了根据本公开的实施例的应用于服务方的微服务调用方法的流程图;

图9示意性示出了根据本公开的实施例的应用于服务方的微服务调用方法的流程图;

图10示意性示出了根据本公开的另一实施例的应用于服务方的微服务调用方法的流程图;

图11示意性示出了根据本公开的一实施例的微服务调用流程的示意图;

图12示意性示出了根据本公开的实施例的应用于消费方的微服务调用装置;

图13示意性示出了根据本公开的实施例的应用于服务方的微服务调用装置;

图14示意性示出了根据本公开的实施例的应用于管理端的微服务调用装置;以及

图15示意性示出了根据本公开实施例的适于实现微服务调用方法和装置的计算机系统的方框图。

具体实施方式

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

相关技术中微服务架构可以包括消费方(服务调用者)、服务方(服务提供者)和注册中心。其中,在微服务体系中,注册中心充当重要的角色。服务方和消费方会到注册中心进行注册登记,相关技术中的注册中心可以设置为无需授权,任何消费方可直接调用所有在注册中心注册过的服务方。

由于注册中心可以被设置为任何消费方可直接调用所有在注册中心注册过的服务方。因此,需要服务方在接收到调用请求时进行安全认证,例如,另外设置一认证鉴权中心,采用集中式的安全管控方式,服务方每次收到调用请求时,都需要携带令牌去认证鉴权中心请求校验。

本公开的实施例提供了一种应用于管理端的微服务调用方法。该微服务调用方法包括接收消费方发送的调用申请,其中,调用申请包括消费方的第一标识、以及服务方的第二标识,服务方用于对消费方认证通过后提供微服务。响应调用申请生成加密信息,并基于第二标识获取服务方的调用信息,其中,加密信息与第一标识、以及第二标识相互关联。将加密信息和调用信息发送到消费方,以使得消费方基于调用信息向服务方发送调用请求,其中,调用请求包括第一业务数据和第一标识,消费方利用加密信息加密第一业务数据。将加密信息发送到服务方,以使得服务方基于第一标识关联到加密信息,并基于加密信息对加密的第一业务数据进行解密得到解密结果,其中,服务方基于解密结果对消费方进行认证。

利用本公开实施例的微服务调用方法,在消费方调用微服务时,管理端将加密信息同时发给消费方和服务方,从而能够使得消费方对调用请求中的第一业务数据进行加密,若服务方能够利用加密信息进行解密获得第一业务数据,即表明通过了安全认证,使得服务方无需再频繁请求外部进行安全校验,提高了微服务调用性能。

图1示意性示出了本公开实施例的可以应用微服务调用方法的示例性系统架构100。需要注意的是,图1所示仅为可以应用本公开实施例的系统架构的示例,以帮助本领域技术人员理解本公开的技术内容,但并不意味着本公开实施例不可以用于其他设备、系统、环境或场景。

如图1所示,根据该实施例的系统架构100可以包括消费方服务器110、服务方服务器120、管理端服务器130和网络140、150、160。网络140、150、160用以在消费方服务器110和管理端服务器130之间、服务方服务器120和管理端服务器130之间、消费方服务器110和服务方服务器120提供通信链路的介质。网络104可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。

本公开实施例的应用于消费方的微服务调用方法可以由消费方服务器110执行,其中,消费方服务器110可以包括服务器111、112…11N,每个服务器可以部署一个消费方,也可以在每个服务器上部署同一个消费方的实例。

本公开实施例的应用于服务方的微服务调用方法可以由服务方服务器120执行,其服务方服务器120可以包括服务器121、122…12M,每个服务器可以部署一个服务方,也可以在每个服务器上部署同一个服务方的实例。

本公开实施例的应用于管理端的微服务调用方法可以由管理端服务器130执行,另外,注册中心可以部署在管理端服务器130中,即管理端服务器130可以获得消费方和服务方的信息。

消费方服务器110、服务方服务器120和管理端服务器130可以是提供各种服务的服务器,例如对用户所使用的各种应用、网站、系统提供支持的后台管理服务器(仅为示例)。后台管理服务器可以对接收到的用户请求等数据进行分析等处理,并将处理结果(例如根据用户请求获取或生成的网页、信息、或数据等)反馈给用户。

需要说明的是,在本公开的一些实施例中,消费方也可以作为服务方,为其他消费方提供微服务。相应地,服务方也可以作为消费方进行微服务调用。

应该理解,图1中的消费方服务器110、服务方服务器120和管理端服务器130的数目仅仅是示意性的。根据实现需要,可以具有任意数目的消费方服务器110、服务方服务器120和管理端服务器130。

需要说明的是,本公开可以应用于管理端、消费方或者服务方的微服务调用方法和装置可用于金融领域,也可用于除金融领域之外的任意领域,本公开可以应用于管理端、消费方或者服务方的微服务调用方法和装置的应用领域不做限定。

图2示意性示出了根据本公开的实施例的应用于消费方的微服务调用方法的流程图。

如图2所示,可以应用于消费方的微服务调用方法可以包括操作S210~操作S240。

在操作S210,向管理端发送调用申请,其中,调用申请包括消费方的第一标识、以及服务方的第二标识,服务方用于对消费方认证通过后提供微服务。

根据本公开的实施例,例如公司内部可以包括采用微服务架构的A系统和B系统。用户在使用A系统的过程需要调用B系统提供的微服务,可以向管理端发送调用申请,以获得B系统的调用信息。

在操作S220,接收管理端发送的服务方的调用信息、以及加密信息,其中,加密信息与第一标识、以及第二标识相互关联。

在操作S230,基于加密信息对第一业务数据进行加密。

根据本公开的实施例,A系统接收到的调用信息可以包括B系统的IP地址、调用方法、微服务实例等信息。

在本公开的一些实施例中,管理端发送的加密信息可以是在接收到调用申请后实时生成的。例如,管理端生成加密盐、密钥,并且从预先存储的加密算法列表中随机选择一个对称加密算法。或者,管理端基于非对称加密算法生成公钥和私钥,并将私钥发送到消费方,将公钥发送到服务方。

在本公开的另一些实施例中,可以预设多个对应的加密盐、密钥、对称加密算法(或者非对称加密算法生成多个公钥和私钥对),以形成加密列表并分别存储在管理端、消费方和服务方。管理端发送的加密信息可以是加密列表中的序号,消费方通过该序号从加密列表中进一步获得加密信息,并对第一业务数据进行加密。

根据本公开的实施例,对称加密算法可以包括DES(Data Encryption Standard),3DES,AES,DESX等加密算法,加密盐可以为随机生成的字符串,密钥可以通过现有技术中的密钥生成器获得。非对称加密算法可以包括RSA、ECC(Elliptic Curvea Cryptography)等算法。

在操作S240,基于调用信息向服务方发送调用请求,其中,调用请求包括加密的第一业务数据、以及第一标识,以使得服务方基于第一标识关联到加密信息,并基于加密信息对加密的第一业务数据进行解密得到解密结果,其中,服务方基于解密结果对消费方进行认证。

根据本公开的实施例,消费方通过接收到的加密信息对第一业务数据进行加密,以使得服务方基于对第一业务数据的解密结果完成对调用请求的认证,相应的,解密成功即可通过第一业务数据提供对应的目标微服务。一方面,对第一业务数据的加密保证了在调用请求传输过程中的安全性,另一方面,避免了服务方频繁依赖外部对调用请求进行安全验证,节省了认证时间,提高了微服务调用速度。

图3示意性示出了根据本公开的一实施例的基于加密信息对第一业务数据进行加密的流程图。

如图3所示,操作S220中基于加密信息对第一业务数据进行加密可以包括操作S310~操作S330。其中,加密信息包括第一加密信息和第二加密信息。

在操作S310,接收管理端发送的解密信息,其中,解密信息与第一加密信息对应,管理端利用第一加密信息对第二加密信息进行加密。

根据本公开的实施例,接收管理端发送的公钥,其中,管理端利用非对称加密算法生成第一加密信息,第一加密信息包括相互对应的公钥和私钥,管理端利用私钥加密第二加密信息。

在第二加密信息的传输过程中,通过私钥对第二加密信息进行加密,避免了第二加密信息以明文显示,从而能够防止第二加密信息泄露。另外,消费方可以通过一并接收的公钥进行解密,在保证了安全性的基础上,不会影响消费方获得第二加密信息的速度。

在操作S320,基于解密信息对加密后的第二加密信息进行解密,得到第二加密信息。

在操作S330,基于第二加密信息对第一业务数据进行加密。

根据本公开的实施例,第二加密信息可以包括非对称加密算法生成的私钥,其与第一加密信息不同。消费方利用该私钥对第一业务数据进行加密。相应地,管理端将对应的公钥发送到服务方,以使得服务方对第一业务数据进行解密操作。

在本公开的一些实施例中,第二加密信息可以包括对称加密算法、加密盐和密钥。下面结合图4进一步说明。

图4示意性示出了根据本公开的另一实施例的基于加密信息对第一业务数据进行加密的流程图。

如图4所示,操作S230中基于加密信息对第一业务数据进行加密可以包括操作S410~操作S420。其中,加密信息包括加密盐、以及密钥。

在操作S410,将加密盐与第一业务数据进行组合获得第二业务数据。

在操作S420,利用密钥对第二业务数据进行加密。

例如将加密盐(例如随机字符串)与第一业务数据进行组合,然后使用密钥将组合后的第二业务数据由明文变为密文。相应地,服务方可以使用相同的对称加密算法,对密文进行解密。相对于服务方使用非对称加密算法的公钥解密而言,利用对称加密算法进行解密时耗费的服务器运算资源较小。

图5示意性示出了根据本公开的实施例的应用于管理端的微服务调用方法的流程图。

如图5所示,可以应用于管理端的微服务调用方法可以包括操作S510~操作S540。

在操作S510,接收消费方发送的调用申请,其中,调用申请包括消费方的第一标识、以及服务方的第二标识,服务方用于对消费方认证通过后提供微服务。

在操作S520,响应调用申请生成加密信息,并基于第二标识获取服务方的调用信息,其中,加密信息与第一标识、以及第二标识相互关联。

在操作S530,将加密信息和调用信息发送到消费方,以使得消费方基于调用信息向服务方发送调用请求,其中,调用请求包括第一业务数据和第一标识,消费方利用加密信息加密第一业务数据。

在操作S540,将加密信息发送到服务方,以使得服务方基于第一标识关联到加密信息,并基于加密信息对加密的第一业务数据进行解密得到解密结果,其中,服务方基于解密结果对消费方进行认证。

根据本公开的实施例,微服务注册中心管理端会生成针对第一标识到第二标识的加密信息,例如其中包括公钥,私钥以及使用该私钥进行加密的对称加密算法、加密盐组成的加密串。管理端会将公钥、加密串下发给服务方和消费方。例如下发的消息格式可以为[第一标识,第二标识,公钥,加密串],同时也会给消费方发送服务方的调用信息。

根据本公开的实施例,消费方与服务方之间的调用统一通过管理端负责进行公私钥、加密算法、加密盐的管理。既能避免提前在消费方和服务方存储加密信息导致的泄露问题,又能利用加密的方式使得服务方无需请求管理端进行安全校验。

在本公开的一些实施例中,消费方或服务方若在预定时间内没有收到调用信息或者调用请求,可申请管理端进行新公私钥、加密算法和加密盐的生成和下发。具体地,对于每一个对称加密算法,在超过可用时效性后,可以由管理端重新生成加密需要的所有信息,并重新下发给对应的消费方和服务方。

根据本公开的实施例,可以另外设置CA(Certification authorit)系统,将生成公私钥的任务分配给CA系统。由CA系统生成私钥、备份并推送给消费方,消费方从CA下载证书并使用公钥。使用CA系统的优势是:私钥可以备份、恢复,并减少管理端管理公私钥对的存储压力。

图6示意性示出了根据本公开的实施例的将加密信息发送到消费方和服务方的流程图。

如图6所示,将加密信息发送到消费方和服务方可以包括操作S610~操作S620,其中,加密信息包括第一加密信息和第二加密信息。

在操作S610,利用第一加密信息对第二加密信息进行加密。

在操作S620,将加密的第二加密信息发送到消费方和服务方。

根据本公开的实施例,操作S620中将加密后的第二加密信息发送到消费方和服务方包括:将公钥和加密的第二加密信息发送到消费方和服务方。其中,利用第一加密信息对第二加密信息进行加密包括:利用私钥对第二加密信息进行加密。

根据本公开的实施例,操作S520中响应调用申请生成加密信息包括生成第一加密信息,具体包括:利用非对称加密算法生成第一加密信息,其中,第一加密信息包括相互对应的公钥和私钥。其中,非对称加密算法生成的私钥主要是加密对称加密算法和加密盐信息,以保证第二加密信息在分发过程的安全性。

根据本公开的另一实施例,操作S520中生成加密信息包括生成加密盐、以及密钥。其中,消费方利用加密信息加密第一业务数据包括:将加密盐与第一业务数据进行组合获得第二业务数据,利用密钥对第二业务数据进行加密。

图7示意性示出了根据本公开的实施例的操作S520中响应调用申请的流程图。

如图7所示,操作S520中响应调用申请的过程可以包括操作S710~操作S720。

在操作S710,基于第二标识向服务方发送调用通知,其中,调用通知包括第一标识。

在操作S720,当接收到服务方发送的同意信息后,响应同意信息生成加密信息,并基于第二标识获取调用信息。

根据本公开的实施例,如果消费方要对某个服务方进行调用,则可以要求消费方在管理端进行针对性的申请。例如服务方收到调用通知后,从调用通知中可以获悉消费方的第一标识,可以根据是否提前存储有对应关系、目前是否具有提供微服务的能力等情况,向管理端发送同意信息。其中,若服务方没有同意此次调用,那么管理端不会生成加密信息,同时也不会将服务方的调用信息返回给消费方,进一步保证了微服务调用的安全性。

图8示意性示出了根据本公开的实施例的应用于服务方的微服务调用方法的流程图。

如图8所示,应用于服务方的微服务调用方法可以包括操作S810~操作S850。

在操作S810,接收管理端发送的加密信息,其中,加密信息与消费方的第一标识、以及服务方的第二标识相关联。

在操作S820,接收消费方发送的调用请求,其中,调用请求包括加密的第一业务数据、以及第一标识。

在操作S830,基于第一标识关联到加密信息。

在操作S840,基于加密信息对加密的第一业务数据进行解密得到解密结果,并基于解密结果对消费方进行认证。

根据本公开的实施例,加密信息包括加密盐、以及密钥,基于加密信息对加密的第一业务数据进行解密包括:利用密钥和加密盐对加密的第二业务数据进行解密,其中,第二业务数据包括组合后的加密盐与第一业务数据,消费方利用密钥对第二业务数据进行加密。

在操作S850,响应解密成功后获得的第一业务数据,提供消费方调用的微服务。

根据本公开的实施例,例如服务方收到的管理端发送的消息可以包括[第一标识,第二标识,加密信息],其中,调用请求可以包括[第一标识,加密的第一业务数据]。服务方通过第一标识搜到相关联地加密信息,并基于解密结果确定本次调用请求的安全性和有效性。既能够在调用请求的传输过程中保证安全性,又能够避免服务方在提供微服务之前频繁请求外部校验调用请求,从而提高了提供微服务的性能。

图9示意性示出了根据本公开的实施例的应用于服务方的微服务调用方法的流程图。

如图9所示,操作S810中接收管理端发送的加密信息可以包括操作S910~操作S920。其中,加密信息包括第二加密信息。

在操作S910,接收管理端发送的解密信息、以及加密后的第二加密信息。

在操作S920,基于解密信息对加密后的第二加密信息进行解密,得到第二加密信息。

根据本公开的实施例,加密信息还包括第一加密信息,接收管理端发送的解密信息包括:接收管理端发送的公钥,其中,管理端利用非对称加密算法生成第一加密信息,第一加密信息包括相互对应的公钥和私钥,管理端利用私钥加密第二加密信息。

图10示意性示出了根据本公开的另一实施例的应用于服务方的微服务调用方法的流程图。

如图10所示,在操作S810中接收管理端发送的加密信息之前,可以应用于服务方的微服务调用方法可以包括操作S1010~操作S1020。

在操作S1010,接收管理端发送的调用通知,其中,调用通知包括第一标识。

在操作S1020,基于第一标识向管理端发送同意信息。

根据本公开的实施例,例如某机构内部的B系统存储的数据是保密的,那么外部系统不能随意使用B系统的数据查询、提取等服务。因此,B系统在接收到调用通知后,可以通过查询A系统的标识是否在授权列表中,以确定是否发送同意信息。

下面以图11为例,并结合图2~图10,详细说明本公开实施例的微服务调用过程中,消费方、管理端和服务方的交互流程。

图11示意性示出了根据本公开的一实施例的微服务调用流程的示意图。

如图11所示,微服务架构中可以包括ConsumerA(消费方A)、注册中心、ProviderB(服务方B)和管理端。在本公开的一些实施例中,管理端与注册中心可以合并部署在一个服务器上。在本公开的另一些实施例中,ConsumerA、注册中心、ProviderB和管理端可以合并部署在一个服务器上。其中,ConsumerA进行一次微服务调用可以包括操作S1110~操作S1190。

在操作S1110,ProviderB引入SDK包(software development kit,软件开发工具包),其中,可以在SDK包中设置接口信息、IP信息、实例信息、实用工具、ProviderB标识等。

在操作S1120,ProviderB基于SDK包在注册中心进行注册。

在操作S1130,ConsumerA引入SDK包,例如可以设置接口信息、IP信息、实例信息、实用工具、ConsumerA标识等。

在操作S1140,ConsumerA基于SDK包在注册中心进行注册。

在操作S1150,ConsumerA向管理端发送调用申请,其中,调用申请可以包括ConsumerA标识、ProviderB标识和相关信息。管理端可以对调用申请和申请授权(即服务方发送的同意信息)在数据库进行保存。

在操作S1160,管理端向ProviderB发送调用通知,ProviderB收到调用通知后,例如可以基于当前可以能够提供微服务的状态,向管理端发送同意信息。

在操作S1170,在管理端接收到ProviderB发送的同意信息后,生成加密信息,并可以访问注册中心的数据库,获得ProviderB的调用信息,例如实例列表,接口信息,IP地址等。将加密信息和调用信息发送到消费端。

根据本公开的实施例,如果ConsumerA要对ProviderA进行调用,则ConsumerA要在管理端进行对ProviderA的调用申请,待ProviderA同意该申请后,管理端才会将ProviderA的服务信息列表(例如微服务实例、调用信息)下发到ConsumerA处,ConsumerA才能发现ProviderA提供的IP,调用方法等信息,才能进行实际的调用。

在本公开的另一些实施例中,如果ConsumerA申请了对ProviderA的调用,但是ProviderA没有对该申请进行处理或驳回了该申请,那么ConsumerA无法获取到ProviderA的IP、方法等信息,无法调用ProviderA提供的服务。

在操作S1180,在管理端生成加密信息后,将加密信息发送到ProviderB。其中,在发送的消息中例如可以包括[ConsumerA标识,ProviderB标识,加密信息]。

在操作S1191,ConsumerA基于要调用的ProviderB标识,从包含[ConsumerA标识,ProviderB标识,加密信息]的消息中获得加密信息,并可以从调用信息中选择一微服务实例进行调用。

例如,ConsumerA在发送请求前,会判断是要发送给哪个服务方的请求,在得知是发送给ProviderA的请求,则会使用ConsumerA--->ProviderA对应的公钥对加密串进行解密得到加密算法和加密盐。并使用该对称加密算法、密钥、加密盐对要传输的业务数据进行加密。同时在调用请求中附加包含本服务的关键信息:ConsumerCode:ConsumerA。

在操作S1192,ProviderB接收到调用请求后,会根据关键信息ConsumerCode从包含[ConsumerA标识,ProviderB标识,加密信息]的消息中判断是哪个消费方发起调用。在判断是由ConsumerA发起的调用时,关联到加密信息。然后对ConsumerA发送的业务数据进行解密。若解密成功,即表示该调用请求通过了安全认证,同时获取到业务数据。最后,基于业务数据提供ConsumerA调用的目标微服务。

根据本公开的实施例,应用端生成的加密信息是针对一个消费方到一个服务方的调用请求的。比如:ConsumerA同时拥有两个服务方的调用权限(例如ConsumerA->ProviderA、ConsumerA->ProviderB、ConsumerB->ProviderA),当调用请求中ConsumerA->ProviderA的加密信息被破解后,ConsumerA->ProviderB和ConsumerB->ProviderA的调用请求还是安全的。且在管理端可随时对ConsumerA->ProviderA调用链重新进行秘钥下发。从而能够有效提高微服务系统可靠性,不会产生连锁反应。

需要说明的是,在本公开的一些实施例中,ConsumerA也可以作为服务方,为其他消费方提供微服务。相应地,ProviderB也可以作为消费方进行微服务调用。

虽然上文以特定的顺序描述了方法的各个操作,然而本公开的实施例不限于此,上述操作可以根据需要以其他顺序执行。例如步骤S1120可以在步骤S1140之后执行,也可以同时执行。

图12示意性示出了根据本公开的实施例的应用于消费方的微服务调用装置1200。

如图12所示,微服务调用装置1200包括第三发送模块1210、第二接收模块1220、数据加密模块1230和第四发送模块1240。

第三发送模块1210例如可以执行操作S210,用于向管理端发送调用申请,其中,调用申请包括消费方的第一标识、以及服务方的第二标识,服务方用于对消费方认证通过后提供微服务。

第二接收模块1220例如可以执行操作S220,用于接收管理端发送的服务方的调用信息、以及加密信息,其中,加密信息与第一标识、以及第二标识相互关联。

数据加密模块1230例如可以执行操作S230,用于基于加密信息对第一业务数据进行加密。

根据本公开的实施例,数据加密模块1230例如还可以执行操作S310~操作S330,用于接收管理端发送的解密信息,其中,解密信息与第一加密信息对应,管理端利用第一加密信息对第二加密信息进行加密。基于解密信息对加密后的第二加密信息进行解密,得到第二加密信息。基于第二加密信息对第一业务数据进行加密。

根据本公开的实施例,数据加密模块1230例如还可以用于接收管理端发送的公钥,其中,管理端利用非对称加密算法生成第一加密信息,第一加密信息包括相互对应的公钥和私钥,管理端利用私钥加密第二加密信息。

根据本公开的实施例,数据加密模块1230例如还可以执行操作S410~操作S420。用于将加密盐与第一业务数据进行组合获得第二业务数据。利用密钥对第二业务数据进行加密。

第四发送模块1240例如可以执行操作S240,用于基于调用信息向服务方发送调用请求,其中,调用请求包括加密的第一业务数据、以及第一标识,以使得服务方基于第一标识关联到加密信息,并基于加密信息对加密的第一业务数据进行解密得到解密结果,其中,服务方基于解密结果对消费方进行认证。

图13示意性示出了根据本公开的实施例的应用于服务方的微服务调用装置1300。

如图13所示,微服务调用装置1300包括第三接收模块1310、第四接收模块1320、信息确定模块1330、数据解密模块1340和服务提供模块1350。

第三接收模块1310例如可以执行操作S810,用于接收管理端发送的加密信息,其中,加密信息与消费方的第一标识、以及服务方的第二标识相关联。

根据本公开的实施例,第三接收模块1310例如还可以执行操作S910~操作S920,用于接收管理端发送的解密信息、以及加密后的第二加密信息。基于解密信息对加密后的第二加密信息进行解密,得到第二加密信息。

根据本公开的实施例,第三接收模块1310还可以用于接收管理端发送的公钥,其中,管理端利用非对称加密算法生成第一加密信息,第一加密信息包括相互对应的公钥和私钥,管理端利用私钥加密第二加密信息。

第四接收模块1320例如可以执行操作S820,用于接收消费方发送的调用请求,其中,调用请求包括加密的第一业务数据、以及第一标识。

信息确定模块1330例如可以执行操作S830,用于基于第一标识关联到加密信息。

数据解密模块1340例如可以执行操作S840,用于基于加密信息对加密的第一业务数据进行解密得到解密结果,其中,基于解密结果对消费方进行认证。

根据本公开的实施例,数据解密模块1340还可以用于利用密钥和加密盐对加密的第二业务数据进行解密,其中,第二业务数据包括组合后的加密盐与第一业务数据,消费方利用密钥对第二业务数据进行加密。加密信息包括加密盐、以及密钥。

服务提供模块1350例如可以执行操作S850,用于响应解密成功后获得的第一业务数据,提供消费方调用的微服务。

根据本公开的实施例,微服务调用装置1300还可以包括同意申请模块,同意申请模块例如可以执行操作S1010~操作S1020,用于接收管理端发送的调用通知,其中,调用通知包括第一标识。基于第一标识向管理端发送同意信息。

图14示意性示出了根据本公开的实施例的应用于管理端的微服务调用装置1400。

如图14所示,该微服务调用装置1400包括第一接收模块1410、响应申请模块1420、第一发送模块1430和第二发送模块1440。

第一接收模块1410例如可以执行操作S510,用于接收消费方发送的调用申请,其中,调用申请包括消费方的第一标识、以及服务方的第二标识,服务方用于对消费方认证通过后提供微服务。

响应申请模块1420例如可以执行操作S520,用于响应调用申请生成加密信息,并基于第二标识获取服务方的调用信息,其中,加密信息与第一标识、以及第二标识相互关联。

根据本公开的实施例,响应申请模块1420还可以用于利用非对称加密算法生成第一加密信息,其中,第一加密信息包括相互对应的公钥和私钥。

根据本公开的实施例,响应申请模块1420还可以用于生成加密盐、以及密钥。其中,消费方利用加密信息加密第一业务数据包括:将加密盐与第一业务数据进行组合获得第二业务数据。利用密钥对第二业务数据进行加密。

根据本公开的实施例,响应申请模块1420例如还可以执行操作S710~操作S720,用于基于第二标识向服务方发送调用通知,其中,调用通知包括第一标识。当接收到服务方发送的同意信息后,响应同意信息生成加密信息,并基于第二标识获取调用信息。

第一发送模块1430例如可以执行操作S530,用于将加密信息和调用信息发送到消费方,以使得消费方基于调用信息向服务方发送调用请求,其中,调用请求包括第一业务数据和第一标识,消费方利用加密信息加密第一业务数据。

第二发送模块1440例如可以执行操作S540,用于将加密信息发送到服务方,以使得服务方基于第一标识关联到加密信息,并基于加密信息对加密的第一业务数据进行解密得到解密结果,其中,服务方基于解密结果对消费方进行认证。

根据本公开的实施例,第一发送模块1430或第二发送模块1440可以用于将公钥和加密的第二加密信息发送到消费方和服务方。

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

例如,微服务调用装置1200、微服务调用装置1300或微服务调用装置1400中的任意多个模块可以合并在一个模块中实现,或者其中的任意一个模块可以被拆分成多个模块。或者,这些模块中的一个或多个模块的至少部分功能可以与其他模块的至少部分功能相结合,并在一个模块中实现。根据本公开的实施例,微服务调用装置1200、微服务调用装置1300或微服务调用装置1400中的至少一个可以模块至少被部分地实现为硬件电路,例如现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、片上系统、基板上的系统、封装上的系统、专用集成电路(ASIC),或可以通过对电路进行集成或封装的任何其他的合理方式等硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,微服务调用装置1200、微服务调用装置1300或微服务调用装置1400中的至少一个模块可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。

图15示意性示出了根据本公开实施例的适于实现微服务调用方法和装置的计算机系统的方框图。图15示出的计算机系统仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。

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

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

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

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

本公开的实施例还包括一种计算机程序产品,其包括计算机程序,该计算机程序包含用于执行本公开实施例所提供的方法的程序代码,当计算机程序产品在电子设备上运行时,该程序代码用于使电子设备实现本公开实施例所提供的图像识别方法。

在该计算机程序被处理器1501执行时,执行本公开实施例的系统/装置中限定的上述功能。根据本公开的实施例,上文描述的系统、装置、模块、单元等可以通过计算机程序模块来实现。

在一种实施例中,该计算机程序可以依托于光存储器件、磁存储器件等有形存储介质。在另一种实施例中,该计算机程序也可以在网络介质上以信号的形式进行传输、分发,并通过通信部分1509被下载和安装,和/或从可拆卸介质1511被安装。该计算机程序包含的程序代码可以用任何适当的网络介质传输,包括但不限于:无线、有线等等,或者上述的任意合适的组合。

根据本公开的实施例,可以以一种或多种程序设计语言的任意组合来编写用于执行本公开实施例提供的计算机程序的程序代码,具体地,可以利用高级过程和/或面向对象的编程语言、和/或汇编/机器语言来实施这些计算程序。程序设计语言包括但不限于诸如Java,C++,python,“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。

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

以上对本公开的实施例进行了描述。但是,这些实施例仅仅是为了说明的目的,而并非为了限制本公开的范围。不脱离本公开的范围,本领域技术人员可以做出多种替代和修改,这些替代和修改都应落在本公开的范围之内。

相关技术
  • 微服务调用方法、调用装置、电子设备和存储介质
  • 微服务调用方法、装置、电子设备和存储介质
技术分类

06120113047833