微服务安全认证方法及装置
技术领域
本发明实施例涉及互联网技术领域,具体涉及微服务安全认证方法及装置。
背景技术
微服务的安全认证属于微服务架构下安全领域内一个非常重要的组成部分。高效和可靠的微服务安全认证对强化微服务架构安全体系、防范业务漏洞、保障业务安全发挥着至关重要的作用。
目前业界对于企业内部微服务间调用的安全管控方式主要还停留在传统模式,大致可分为独立和集中两种。独立式:一般指由微服务提供方制定安全认证体系的规范,交由服务调用方根据规范做相应的认证鉴权机制以及令牌(授信凭证)的生命周期管理。独立式是由微服务提供方提供安全管控规范,使用方对接,存在提供商众多,技术框架不统一、接入协议五花八门等基础问题,容易造成投入大,效率低,难维护。集中式:一般指建设统一的认证鉴权中心,并将所有的微服务接入其进行统一管理,目前比较主流的是基于OAuth2.0协议开发的各种Authserver。服务调用方在每次调用目标服务前,先向Authserver发起认证请求,认证通过Authserver返回一个令牌,服务调用方随即携带令牌调用目标微服务,被调服务获取令牌后,向Authserver发起请求校验令牌有效性,校验通过后即开放服务调用。集中式相对独立式采用中心管控方式,应用较为广泛,但也存在如下问题(1)频繁请求,性能低;集中式认证的令牌由认证中心统一颁发管理,服务提供方在接收被调用请求后,需每次调用认证中心的令牌验证服务以保证其真实性和有效性。对于电信行业互联网高并发的核心服务,额外的令牌认证请求所带来的网络I/O和线程等待,会在一些特殊场景如业务高峰下对业务造成较大影响。(2)强依赖、可靠性差;集中式认证的机制决定了微服务提供方在处理所有的服务调用时都需要向认证中心发起请求,一旦认证中心服务中断,所有的业务处理都会中断,影响范围较大。集群化部署可以屏蔽绝大多数情况下的认证中心单点故障,但无法从根本上解决此问题。(2)分布式支撑能力不足;当前分布式架构广泛应用,微服务的调用方本身可能是一个集群,且每一个都有可能发起服务调用。针对此种场景,业界一般采用每个服务调用方独立认证和在自己内部管理的模式。当认证中心授权变更时会引发所有服务调用方令牌失效,需要各自重新请求生成,无统一调度管理机制。
因此,如何提出一种微服务安全认证方法,以提高对微服务认证的效率和可靠性成为业界亟待解决的重要课题。
发明内容
针对现有技术中的缺陷,本发明实施例提供微服务安全认证方法及装置。
第一方面,本发明提供一种微服务安全认证方法,包括:
接收第一服务请求,所述第一服务请求包括第一微服务标识、第一服务关系和第一安全认证信息;其中,所述第一服务关系是指所述第一微服务标识对应的微服务的调用方对所述第一微服务标识对应的微服务的调用;
根据所述第一微服务标识、所述第一服务关系、所述第一安全认证信息以及第一安全认证表对所述第一服务请求进行安全验证;其中,所述第一安全认证表是本地预存的且所述第一安全认证表与所述第一微服务标识对应。
第二方面,本发明还提供一种微服务安全认证方法,包括:
接收业务服务器发送的认证注册请求,所述认证注册请求包括第一微服务标识和证书信息;
若判断获知所述证书信息通过验证,则根据所述第一微服务标识生成第一安全认证表,所述第一安全认证表与所述第一微服务标识对应;
发送所述第一安全认证表至所述业务服务器。
第三方面,本发明提供一种电子设备,包括:第一处理器、第一存储器和第一通信总线,其中:
所述第一处理器和所述第一存储器通过所述第一通信总线完成相互间的通信;
所述第一存储器存储有可被所述第一处理器执行的程序指令,所述第一处理器调用所述程序指令能够执行如下微服务安全认证方法:
接收第一服务请求,所述第一服务请求包括第一微服务标识、第一服务关系和第一安全认证信息;其中,所述第一服务关系是指所述第一微服务标识对应的微服务的调用方对所述第一微服务标识对应的微服务的调用;
根据所述第一微服务标识、所述第一服务关系、所述第一安全认证信息以及第一安全认证表对所述第一服务请求进行安全验证;其中,所述第一安全认证表是本地预存的且所述第一安全认证表与所述第一微服务标识对应。
第四方面,本发明提供一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储第一计算机指令,所述第一计算机指令使所述计算机执行能够执行如下微服务安全认证方法:
接收第一服务请求,所述第一服务请求包括第一微服务标识、第一服务关系和第一安全认证信息;其中,所述第一服务关系是指所述第一微服务标识对应的微服务的调用方对所述第一微服务标识对应的微服务的调用;
根据所述第一微服务标识、所述第一服务关系、所述第一安全认证信息以及第一安全认证表对所述第一服务请求进行安全验证;其中,所述第一安全认证表是本地预存的且所述第一安全认证表与所述第一微服务标识对应。
第五方面,本发明提供一种电子设备,包括:第二处理器、第二存储器和第二通信总线,其中:
所述第二处理器和所述第二存储器通过所述第二通信总线完成相互间的通信;其中,所述第一微服务标识对应的微服务运行在所述业务服务器上;
所述第二存储器存储有可被所述第二处理器执行的程序指令,所述第二处理器调用所述程序指令能够执行如下微服务安全认证方法:
接收业务服务器发送的认证注册请求,所述认证注册请求包括第一微服务标识和证书信息;
若判断获知所述证书信息通过验证,则根据所述第一微服务标识生成第一安全认证表,所述第一安全认证表与所述第一微服务标识对应;
发送所述第一安全认证表至所述业务服务器。
第六方面,本发明提供一种非暂态计算机可读存储介质,其特征在于,所述非暂态计算机可读存储介质存储第二计算机指令,所述第二计算机指令使所述计算机能够执行如下微服务安全认证方法:
接收业务服务器发送的认证注册请求,所述认证注册请求包括第一微服务标识和证书信息;其中,所述第一微服务标识对应的微服务运行在所述业务服务器上;
若判断获知所述证书信息通过验证,则根据所述第一微服务标识生成第一安全认证表,所述第一安全认证表与所述第一微服务标识对应;
发送所述第一安全认证表至所述业务服务器。
本发明实施例提供的微服务安全认证方法及装置,由于能够接收客户端发送的第一服务请求,并根据第一服务请求包括的第一微服务标识、第一服务关系和第一安全认证信息以及第一安全认证表对第一服务请求进行安全验证,提高了对微服务安全认证的效率和可靠性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明一实施例微服务安全认证方法的流程示意图;
图2为本发明另一实施例微服务安全认证方法的流程示意图;
图3为本发明又一实施例微服务安全认证方法的流程示意图;
图4为本发明再一实施例微服务安全认证方法的流程示意图;
图5为本发明还一实施例微服务安全认证方法的流程示意图;
图6为本发明一实施例提供的微服务安全认证的信令交互图;
图7为本发明另一实施例提供的微服务安全认证的信令交互图;
图8为本发明再一实施例提供的微服务安全认证的信令交互图;
图9为本发明一实施例微服务安全认证装置的结构示意图;
图10为本发明一实施例认证服务器的结构示意图;
图11为本发明一实施例电子设备的实体结构示意图;
图12为本发明另一实施例电子设备的实体结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1为本发明一实施例微服务安全认证方法的流程示意图,如图1所示,本发明实施例提供的微服务安全认证方法包括:
S101、接收第一服务请求,所述第一服务请求包括第一微服务标识、第一服务关系和第一安全认证信息;其中,所述第一服务关系是指所述第一微服务标识对应的微服务的调用方对所述第一微服务标识对应的微服务的调用;
具体地,在微服务的架构下,一个所述微服务可以访问另一个所述微服务,为了保证访问的安全性,需要对所述微服务之间的访问进行验证。在需要调用一个微服务时,可以向微服务所在的业务服务器发送第一服务请求,所述业务服务器会接收所述第一服务请求。其中,所述第一服务请求包括第一微服务标识、第一服务关系和第一安全认证信息,所述第一微服务标识与所述微服务一一对应;所述第一服务关系是指所述第一微服务标识对应的微服务被某一个外部服务调用,所述外部服务即所述第一微服务标识对应的微服务的调用方,所述外部服务是指除了所述第一微服务标识对应的微服务本身以外的其它微服务。其中,所述第一安全认证信息根据实际需要进行设置,本发明实施例不做限定。
S102、根据所述第一微服务标识、所述第一服务关系、所述第一安全认证信息以及第一安全认证表对所述第一服务请求进行安全验证;其中,所述第一安全认证表是本地预存的且所述第一安全认证表与所述第一微服务标识对应;
具体地,所述业务服务器在接收到所述第一服务请求之后,根据所述第一微服务标识查找到第一安全认证表,并根据所述第一服务关系在所述第一安全认证表中获得本地的第一安全认证信息。所述业务服务器将查找获得的本地的第一安全认证信息与接收到的第一安全认证信息进行比较,从而对所述第一服务请求进行安全验证。所述业务服务器可以对比本地的第一安全认证信息和接收到的第一安全认证信息,如果本地的第一安全认证信息和接收到的第一安全认证信息相同,那么所述第一服务请求通过安全验证,所述业务服务器可以向所述微服务的调用方开放所述第一微服务标识对应的微服务,即所述微服务的调用方可以调用所述第一微服务标识对应的微服务。如果本地的第一安全认证信息和接收到的第一安全认证信息不相同,那么所述第一服务请求不能通过安全验证,所述业务服务器可以拒绝开放所述第一微服务标识对应的微服务。其中,所述第一安全认证表是本地预存的,存储有与所述第一微服务标识对应的微服务的第一服务关系,以及与所述第一服务关系唯一对应的第一安全认证信息;所述第一安全认证表与所述第一微服务标识对应。
例如,客户端K001上的微服务A,需要调用在业务服务器Y002上的微服务B时,客户端K001可以向业务服务器Y002发送所述服务请求,所述服务请求包括微服务B的第一微服务标识:101,所述第一服务关系:微服务A调用微服务B,以300表示,以及A微服务A调用微服务B的第一安全认证信息。业务服务器002在接收到所述第一服务请求之后,根据101查找微服务B的第一安全认证表,在查找到所述第一安全认证表之后,根据300查找获得本地的第一安全认证信息。业务服务器Y002将接收到的第一安全认证信息与本地的第一安全认证信息进行比较,从而对所述第一服务请求进行验证。如果接收到的第一安全认证信息与本地的第一安全认证信息相同,业务服务器Y002允许微服务A调用微服务B,否则业务服务器Y002拒绝微服务A调用微服务B。
本发明提供的微服务安全认证方法,由于能够接收客户端发送的第一服务请求,并根据第一服务请求包括的第一微服务标识、第一服务关系和第一安全认证信息以及第一安全认证表对第一服务请求进行安全验证,提高了对微服务安全认证的效率和可靠性。
图2为本发明另一实施例微服务安全认证方法的流程示意图,如图2所示,本发明实施例提供的微服务安全认证方法还包括:
S201、向认证服务器发送认证注册请求,所述认证注册请求包括第一微服务标识和证书信息;
具体地,所述微服务在启用前,需要通过认证服务器进行认证注册。所述业务服务器会向所述认证服务器发送认证注册请求,所述认证服务器会接收所述认证注册请求。其中,所述认证注册请求包括所述第一微服务标识和证书信息。
S202、接收所述认证服务器返回的所述第一安全认证表并储存;其中,所述第一安全认证表是所述认证服务器在通过所述证书信息的验证之后,根据所述第一微服务标识生成的。
具体地,所述认证服务器在接收到所述认证注册请求之后,根据所述第一微服务标识查找到储存的所述微服务本地的证书信息,然后将本地的证书信息与接收到的证书信息进行对比,如果接收到的证书信息与本地的证书信息一致,那么接收到的证书信息通过验证。在接收到的证书信息通过验证之后,所述认证服务器根据所述第一微服务标识在微服务注册表中查找所述第一微服务标识对应的微服务的所有调用关系,并根据每个所述调用关系生成与每个所述调用关系唯一对应的第一安全认证信息,再根据所述微服务的各个所述调用关系以及各自对应的第一安全认证信息生成所述第一安全认证表,并将所述第一安全认证表与所述第一微服务标识对应。所述认证服务器在生成与所述第一微服务标识对应的第一安全认证表之后,将所述第一安全认证表发送给所述业务服务器。所述业务服务器会接收所述第一安全认证表并存储。其中,所述调用关系是指所述微服务对某一个所述外部服务的调用或者某一个所述外部服务对所述微服务的调用。
图3为本发明又一实施例微服务安全认证方法的流程示意图,如图3所示,在上述各实施例的基础上,进一步地,本发明实施例提供的微服务安全认证方法还包括:
S301、根据所述第一微服务标识、第二服务关系以及第一安全认证表对待发送的第二服务请求的有效性进行验证;
具体地,当所述业务服务器需要调用一个所述外部服务时,需要向所述外部服务所在的业务服务器发送第二服务请求,在发送所述第二服务请求之前,可以对所述第二服务请求的有效性进行验证。所述业务服务器可以获得调用所述外部服务的微服务和所述外部服务,所述微服务作为调用方即为访问来源服务,与所述第一微服务标识对应,被调用的所述外部服务即为调用目标服务,与第二微服务标识对应。所述业务服务器根据所述第一微服务标识查找到所述第一安全认证表,并根据第二服务关系在所述第一安全认证表中查找第二安全认证信息,从而对待发送的第二服务请求的有效性进行验证。其中,所述第二服务关系是指所述第一微服务标识对应的微服务对所述第二微服务标识对应的微服务的调用。
S302、若判断获知所述第二服务请求通过有效性验证,则发送第二服务请求,所述第二服务请求包括第二微服务标识、所述第二服务关系和第二安全认证信息;其中,所述第一微服务标识对应的微服务为访问来源服务,所述第二微服务标识对应的微服务为调用目标服务。
具体地,如果所述业务服务器据所述第二服务关系在所述第一安全认证表中查找到所述第二安全认证信息,那么所述第二服务请求通过有效性验证,所述业务服务器向所述第二微服务标识对应的微服务所在的业务服务器发送所述第二服务请求,所述第二服务请求包括第二微服务标识、所述第二服务关系和所述第二安全认证信息。其中,所述第一微服务标识对应的微服务为访问来源服务,所述第二微服务标识对应的微服务为调用目标服务。
例如,业务服务器Y002上的微服务B,在需要调用业务服务器Y003上的微服务C时,业务服务器Y002根据微服务B的第一微服务标识:101,查找微服务B的第一安全认证表,并根据所述第二服务关系:微服务B调用微服务C,以401表示,根据401在所述第一安全认证表中查找微服务B调用微服务C的第二安全认证信息。如果在所述第一安全认证表中查找到所述第二安全认证信息,那么所述第二服务请求通过有效性验证,业务服务器Y002向业务服务器Y003发送所述第二服务请求,所述第二服务请求包括所述第二微服务标识:微服务C的标识,所述第二服务关系和所述第二安全认证信息;如果在所述第一安全认证表中没有查找到所述第二安全认证信息,那么所述第二服务请求没有通过有效性验证,那么业务服务器Y002不会向业务服务器Y003发送所述第二服务请求。通过对所述第二服务请求进行有效性验证,在需要进行所述微服务的调用时,对不在所述第一安全认证表中的微服务调用进行本地拦截,屏蔽了无效的第二服务请求。
图4为本发明再一实施例微服务安全认证方法的流程示意图,如图4所示,本发明实施例提供的微服务安全认证方法包括:
S401、接收业务服务器发送的认证注册请求,所述认证注册请求包括第一微服务标识和证书信息;其中,所述第一微服务标识对应的微服务运行在所述业务服务器上;
具体地,在首次启用第一微服务标识对应的微服务时,所述微服务所在的业务服务器会向认证服务器发送认证注册请求,所述认证服务器会接收所述认证注册请求。其中,所述认证注册请求包括所述第一微服务标识和证书信息;所述第一微服务标识对应的微服务运行在所述业务服务器上。其中,所述证书信息根据实际情况进行配置,本发明实施例不做限定。
S402、若判断获知所述证书信息通过验证,则根据所述第一微服务标识生成第一安全认证表,所述第一安全认证表与所述第一微服务标识对应;
具体地,所述认证服务器在接收到所述认证注册请求之后,根据所述第一微服务标识查找到储存的所述微服务的本地的证书信息,然后将本地的证书信息与接收到的证书信息进行对比,如果接收到的证书信息与本地的证书信息一致,那么接收到的证书信息通过验证。在接收到的证书信息通过验证之后,所述认证服务器根据所述第一微服务标识在微服务注册表中查找所述第一微服务标识对应的微服务的所有调用关系,并根据每个所述调用关系生成与每个所述调用关系唯一对应的第一安全认证信息,然后根据所述微服务的各个所述调用关系以及各自对应的第一安全认证信息生成所述第一安全认证表,并将所述第一安全认证表与所述第一微服务标识对应。其中,所述第一安全认证表与所述第一微服务标识对应。其中,所述认证服务器在接收到的证书信息通过验证之后,可以将所述第一微服务标识添加到微服务注册表中,并配置所述第一微服务标识对应的微服务的调用关系。
S403、发送所述第一安全认证表至所述业务服务器。
具体地,所述认证服务器在生成所述第一微服务标识对应的第一安全认证表之后,将所述第一安全认证表发送给所述业务服务器。所述业务服务器会接收所述第一安全认证表并存储。可理解的是,为保证所述第一安全认证表在传输过程中的安全,可以使用RSA算法对所述第一安全认证表的内容进行加密。
本发明提供的微服务安全认证方法,通过接收业务服务器发送的认证注册请求,并在认证注册请求包括的证书信息通过验证之后,根据认证注册请求包括的第一微服务标识生成第一安全认证表,然后将第一安全认证表发送至业务服务器,提高了对微服务安全认证的效率和可靠性。
图5为本发明还一实施例微服务安全认证方法的流程示意图,如图5所示,本发明实施例提供的微服务安全认证方法还包括:
S501、定期扫描微服务注册表,获得所述微服务注册表的扫描数据,所述扫描数据包括各个微服务之间的调用关系;
具体地,所述认证服务器会定期扫描所述微服务注册表,获得所述微服务注册表的扫描数据,所述扫描数据包括各个微服务之间的调用关系。
S502、若判断获知最后一次获得的扫描数据相对于上一次获得的扫描数据的所述各个微服务之间的调用关系发生变化,则获取发生变化的数据;
具体地,所述认证服务器将最后一次获得的扫描数据与上一次获得的扫描数据进行对比,如果所述各个微服务之间的调用关系发生变化,那么获取发生变化的数据,即获取发生变化的所述各个微服务之间的调用关系。
S503、根据发生变化的数据对相应的各个所述微服务的第一安全认证表进行更新,获得各个所述微服务的第一安全认证表的更新信息;
具体地,所述业务服务器根据发生变化的数据对相应的各个所述微服务的第一安全认证表进行更新,即哪一个所述微服务的调用关系发生了变化,就更新哪一个所述微服务的第一安全认证表。所述业务服务器在对各个所述微服务的第一安全认证表进行更新时,可以获得各个所述微服务的第一安全认证表的更新信息。
S504、将各个所述第一安全认证表的更新信息发送至各自对应的所述微服务所在的业务服务器。
具体地,所述业务服务器在获得各个所述第一安全认证表的更新信息之后,可以将每个所述第一安全认证表的更新信息发送至对应的所述微服务所在的业务服务器。相应的所述业务服务器会接收所述第一安全认证表的更新信息,然后根据所述更新信息对本地的所述第一安全认证表进行更新。
在上述各实施例的基础上,进一步地,本发明实施例提供的微服务安全认证方法还包括:
根据多个所述第一安全认证表,生成第二安全认证表,所述第二安全认证表采用基于链地址法的两级哈希表进行存储;其中,第一级哈希表包括各个所述微服务对应第一微服务标识,每个第二级哈希表与所述第一微服务标识唯一对应,所述第二级哈希表包括所述第一微服务标识对应的各种调用关系以及各自相应的第一安全认证信息。
具体地,所述业务服务器在生成多个所述第一安全认证表之后,可以根据多个所述第一安全认证表生成第二安全认证表,所述第一安全认证表成为所述第二安全认证表的子表。所述第二安全认证表可以采用基于链地址法的两级哈希表进行存储,其中,第一级哈希表包括各个所述微服务对应的所述第一微服务标识,每个第二级哈希表与一个所述微服务标识唯一对应,并存储所述第一微服务标识对应的各种调用关系以及各自相应的第一安全认证信息。采用所述哈希表存储数据具有读写高效和性能优异的效果,可满足复杂情况较大规模微服务网内部复杂的调用关系的维护。采用基于链地址法的两级哈希表的第二安全认证表解决了微服务和微服务调用复杂网状数据难查找和难比较的问题,并利用动态存储分配区域的方式优化内存管理,避免不必要的内存浪费。在对所述第一安全认证表的信息统一调度同步时,只需下发所述微服务对应的第二级哈希表而无需下发整个两级哈希表,提升了数据的安全性和传输性能。
图6为本发明一实施例提供的微服务安全认证的信令交互图,如图6所示,发明实施例提供的微服务安全认证的处理流程如下:
第一步,在首次启用微服务时,所述微服务所在的业务服务器会向认证服务器发送认证注册请求,所述认证注册请求包括与所述微服务对应的第一微服务标识和证书信息;
第二步,所述认证服务器对所述认证注册请求包括的证书信息进行验证;
第三步,所述认证服务器在所述证书信息验证通过之后,根据所述第一微服务标识生成第一安全认证表;
第四步,所述认证服务器向所述业务服务器发送所述第一安全认证表;
第五步,所述业务服务器接收并储存所述第一安全认证表。
图7为本发明另一实施例提供的微服务安全认证的信令交互图,如图7所示,发明实施例提供的微服务安全认证的处理流程如下:
第一步,认证服务器定期扫描微服务注册表,获得所述微服务注册表的扫描数据;
第二步,所述认证服务器对比最后一次获得的扫描数据和上一次获得的扫描数据,如果所述扫描数据中的各个微服务之间的调用关系发生变化,那么获取发生变化的数据;
第三步,所述认证服务器根据发生变化的数据,对相应的各个所述微服务的第一安全认证表进行更新,获得各个所述微服务的第一安全认证表的更新信息;
第四步,所述认证服务器将各个所述第一安全认证表的更新信息发送至各自对应的所述微服务所在的业务服务器;
第五步,相应的所述业务服务器接收所述更新信息,并根据所述更新信息更新本地的所述第一安全认证表。
图8为本发明再一实施例提供的微服务安全认证的信令交互图,如图8所示,发明实施例提供的微服务安全认证的处理流程如下:
第一步,微服务A在需要调用微服务B时,微服务A需要向微服务B所在的业务服务器发送第二服务请求,微服务A在发送第二服务请求前,微服务A所在的业务服务器根据第一微服务标识、第二服务关系以及第一安全认证表对所述第二服务请求的有效性进行验证;其中,所述第一微服务标识为微服务A的标识,所述第二服务关系为微服务A对微服务B的调用,所述第一安全认证表为所述微服务A的第一安全认证表;
第二步,在所述第二服务请求通过有效性验证之后,微服务A向微服务B所在的业务服务器发送所述第二服务请求,所述第二服务请求包括第二微服务标识、所述第二服务关系和所述第二安全认证信息;其中,第二微服务标识为微服务B的标识,所述第二安全认证信息为微服务A对微服务B的调用的安全认证信息,可以通过所述微服务A的第一安全认证表获得;
第三步,微服务B所在的业务服务器根据微服务B的标识、微服务A对微服务B的调用和第二安全认证信息以及微服务B的第一安全认证表对所述第二服务请求进行验证;
第四步,微服务B所在的服务器向微服务A反馈验证结果,如果所述第二服务请求通过验证,那么微服务A可以调用微服务B;否则微服务A不能调用微服务B。
图9为本发明一实施例微服务安全认证装置的结构示意图,如图9所示,本发明实施例提供的微服务安全认证装置包括第一接收单元901和验证单元902,其中:
第一接收单元901用于接收第一服务请求,所述第一服务请求包括第一微服务标识、第一服务关系和第一安全认证信息;其中,所述第一服务关系是指所述第一微服务标识对应的微服务的调用方对所述第一微服务标识对应的微服务的调用;验证单元902用于根据所述第一微服务标识、所述第一服务关系、所述第一安全认证信息以及第一安全认证表对所述第一服务请求进行安全验证;其中,所述第一安全认证表是本地预存的且所述第一安全认证表与所述第一微服务标识对应。
具体地,在微服务的架构下,一个所述微服务可以访问另一个所述微服务,为了保证访问的安全性,需要对所述微服务之间的访问进行验证。在需要调用一个微服务时,可以向微服务所在的业务服务器发送第一服务请求,第一接收单元901会接收所述第一服务请求。其中,所述第一服务请求包括第一微服务标识、第一服务关系和第一安全认证信息,所述第一微服务标识与所述微服务一一对应;所述第一服务关系是指所述第一微服务标识对应的微服务被某一个外部服务调用,所述外部服务即所述第一微服务标识对应的微服务的调用方,所述外部服务是指除了所述第一微服务标识对应的微服务本身以外的其它微服务。其中,所述第一安全认证信息根据实际需要进行设置,本发明实施例不做限定。
在接收到所述第一服务请求之后,验证单元902根据所述第一微服务标识查找到第一安全认证表,并根据所述第一服务关系在所述第一安全认证表中获得本地的第一安全认证信息。验证单元902将查找获得的本地的第一安全认证信息与接收到的第一安全认证信息进行比较,从而对所述第一服务请求进行安全验证。验证单元902可以对比本地的第一安全认证信息和接收到的第一安全认证信息,如果本地的第一安全认证信息和接收到的第一安全认证信息相同,那么所述第一服务请求通过安全验证,验证单元902可以向所述微服务的调用方开放所述第一微服务标识对应的微服务,即所述微服务的调用方可以调用所述第一微服务标识对应的微服务。如果本地的第一安全认证信息和接收到的第一安全认证信息不相同,那么所述第一服务请求不能通过安全验证,验证单元902可以拒绝开放所述第一微服务标识对应的微服务。其中,所述第一安全认证表是本地预存的,存储有与所述第一微服务标识对应的微服务的第一服务关系,以及与所述第一服务关系唯一对应的第一安全认证信息;所述第一安全认证表与所述第一微服务标识对应。
本发明实施例提供的业务服务器,由于能够接收客户端发送的第一服务请求,并根据第一服务请求包括的第一微服务标识、第一服务关系和第一安全认证信息以及第一安全认证表对第一服务请求进行安全验证,提高了对微服务安全认证的效率和可靠性。
本发明提供的装置的实施例具体可以用于执行上述相应方法实施例的处理流程,其功能在此不再赘述,可以参照上述相应方法实施例的详细描述。
图10为本发明一实施例认证服务器的结构示意图,如图10所示,本发明实施例提供的认证服务器包括第二接收单元1001、判断单元1002和发送单元1003,其中:
第二接收单元1001用于接收业务服务器发送的认证注册请求,所述认证注册请求包括第一微服务标识和证书信息其中,所述第一微服务标识对应的微服务运行在所述业务服务器上;判断单元1002用于在判断获知所述证书信息通过验证之后,根据所述第一微服务标识生成第一安全认证表,所述第一安全认证表与所述第一微服务标识对应;发送单元1003用于发送所述第一安全认证表至所述业务服务器。
具体地,在首次启用第一微服务标识对应的微服务时,业务服务器会向第二接收单元1001发送认证注册请求,第二接收单元1001会接收所述认证注册请求。其中,所述认证注册请求包括所述第一微服务标识和证书信息;所述第一微服务标识对应的微服务运行在所述业务服务器上。其中,所述证书信息根据实际情况进行配置,本发明实施例不做限定。
在接收到所述认证注册请求之后,判断单元1002根据所述第一微服务标识查找到储存的所述微服务的本地的证书信息,然后将本地的证书信息与接收到的证书信息进行对比,如果接收到的证书信息与本地的证书信息一致,那么接收到的证书信息通过验证。在接收到的证书信息通过验证之后,判断单元1002根据所述第一微服务标识在微服务注册表中查找所述第一微服务标识对应的微服务的所有调用关系,并根据每个所述调用关系生成与每个所述调用关系唯一对应的第一安全认证信息,然后根据所述微服务的各个所述调用关系以及各自对应的第一安全认证信息生成所述第一安全认证表,并将所述第一安全认证表与所述第一微服务标识对应。其中,所述第一安全认证表与所述第一微服务标识对应。其中,在接收到的证书信息通过验证之后,判断单元1002可以将所述第一微服务标识添加到微服务注册表中,并配置所述第一微服务标识对应的微服务的调用关系。
在生成所述第一微服务标识对应的第一安全认证表之后,发送单元1003将所述第一安全认证表发送给所述业务服务器。所述业务服务器会接收所述第一安全认证表并存储。可理解的是,为保证所述第一安全认证表在传输过程中的安全,可以使用RSA算法对所述第一安全认证表的内容进行加密。
本发明实施例提供的认证服务器,通过接收业务服务器发送的认证注册请求,并在认证注册请求包括的证书信息通过验证之后,根据认证注册请求包括的第一微服务标识生成第一安全认证表,然后将第一安全认证表发送至业务服务器,提高了对微服务安全认证的效率和可靠性。
本发明提供的认证服务器的实施例具体可以用于执行上述相应方法实施例的处理流程,其功能在此不再赘述,可以参照上述相应方法实施例的详细描述。
图11为本发明一实施例电子设备的实体结构示意图,如图11所示,所述电子设备包括第一处理器(processor)1101、第一存储器(memory)1102和第一通信总线1103;
其中,第一处理器1101、第一存储器1102通过第一通信总线1103完成相互间的通信;
第一处理器1101用于调用第一存储器1102中的程序指令,以执行如下方法,例如包括:接收第一服务请求,所述第一服务请求包括第一微服务标识、第一服务关系和第一安全认证信息;其中,所述第一服务关系是指所述第一微服务标识对应的微服务的调用方对所述第一微服务标识对应的微服务的调用;根据所述第一微服务标识、所述第一服务关系、所述第一安全认证信息以及第一安全认证表对所述第一服务请求进行安全验证;其中,所述第一安全认证表是本地预存的且所述第一安全认证表与所述第一微服务标识对应。
本实施例公开一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行如下方法,例如包括:接收第一服务请求,所述第一服务请求包括第一微服务标识、第一服务关系和第一安全认证信息;其中,所述第一服务关系是指所述第一微服务标识对应的微服务的调用方对所述第一微服务标识对应的微服务的调用;根据所述第一微服务标识、所述第一服务关系、所述第一安全认证信息以及第一安全认证表对所述第一服务请求进行安全验证;其中,所述第一安全认证表是本地预存的且所述第一安全认证表与所述第一微服务标识对应。
本实施例提供一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储第一计算机指令,所述第一计算机指令使所述计算机执行如下方法,例如包括:接收第一服务请求,所述第一服务请求包括第一微服务标识、第一服务关系和第一安全认证信息;其中,所述第一服务关系是指所述第一微服务标识对应的微服务的调用方对所述第一微服务标识对应的微服务的调用;根据所述第一微服务标识、所述第一服务关系、所述第一安全认证信息以及第一安全认证表对所述第一服务请求进行安全验证;其中,所述第一安全认证表是本地预存的且所述第一安全认证表与所述第一微服务标识对应。
图12为本发明另一实施例电子设备的实体结构示意图,如图12所示,所述电子设备包括第二处理器(processor)1201、第二存储器(memory)1202和第二通信总线1203;
其中,第二处理器1201、第二存储器1202通过第二通信总线1203完成相互间的通信;
第二处理器1201用于调用第二存储器1202中的程序指令,以执行如下方法,例如包括:接收业务服务器发送的认证注册请求,所述认证注册请求包括第一微服务标识和证书信息;其中,所述第一微服务标识对应的微服务运行在所述业务服务器上;若判断获知所述证书信息通过验证,则根据所述第一微服务标识生成第一安全认证表,所述第一安全认证表与所述第一微服务标识对应;发送所述第一安全认证表至所述业务服务器。
本实施例公开一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行如下方法,例如包括:接收业务服务器发送的认证注册请求,所述认证注册请求包括第一微服务标识和证书信息;其中,所述第一微服务标识对应的微服务运行在所述业务服务器上;若判断获知所述证书信息通过验证,则根据所述第一微服务标识生成第一安全认证表,所述第一安全认证表与所述第一微服务标识对应;发送所述第一安全认证表至所述业务服务器。
本实施例提供一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储第二计算机指令,所述第二计算机指令使所述计算机执行如下方法,例如包括:接收业务服务器发送的认证注册请求,所述认证注册请求包括第一微服务标识和证书信息;其中,所述第一微服务标识对应的微服务运行在所述业务服务器上;若判断获知所述证书信息通过验证,则根据所述第一微服务标识生成第一安全认证表,所述第一安全认证表与所述第一微服务标识对应;发送所述第一安全认证表至所述业务服务器。
此外,上述的存储器中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,装置,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。