基于名字服务的分布式集群服务鉴权方法、设备及介质技术

技术编号:39321688 阅读:10 留言:0更新日期:2023-11-12 16:02
本申请公开了一种基于名字服务的分布式集群服务鉴权方法、设备及介质。鉴权方法用于分布式集群内部服务间访问的鉴权,包括步骤:通过鉴权平台存储、管理鉴权配置;通过名字服务平台存储、管理、定时更新多个服务的服务名字和每个服务的每个实例的IP地址;根据访问请求中包括的被请求访问的服务的服务名字获取被请求访问的服务的鉴权配置并存储在被请求访问的服务的本地缓存中,根据获取的被请求访问的服务的鉴权配置和访问请求中发起访问请求的服务的IP地址判断访问请求是否有权、是否允许访问,若判定访问请求有权则鉴权成功。本申请的技术方案实现简单、自动同步鉴权配置、稳定性风险低。稳定性风险低。稳定性风险低。

【技术实现步骤摘要】
基于名字服务的分布式集群服务鉴权方法、设备及介质


[0001]本申请涉及计算机
,具体地涉及一种基于名字服务的分布式集群服务鉴权方法、设备及介质。

技术介绍

[0002]计算机
中,单体架构(Monolithic Architecture)是一种将所有功能打包在一个容器中运行的设计方式,一个实例中集成了一个系统的所有功能。微服务架构是指开发应用所用的一种架构形式。通过微服务可将大型应用分解成多个独立的组件,其中每个组件都有各自的责任领域。在处理一个用户请求时,基于微服务的应用可能会调用集群内部的许多内部微服务来共同生成其响应。随着计算机技术的不断发展进步,越来越多的大中型公司在服务端采用了微服务架构。与传统单体架构方式相比,微服务架构具有高内聚、低耦合、高可用、易维护等优点,然而在采用微服务架构以后,集群内部跨服务调用就会变的更加普遍且高频,如果我们不对服务间调用的合法性进行校验,服务间调用的滥用就可能会给服务管理引入一些安全性风险。这就涉及集群内部的服务间访问的服务鉴权问题。服务鉴权是指使用微服务架构时整个系统由多个服务协作提供服务,不同服务间调用(访问)时,如服务A调用服务B,服务B需要对本次调用的有效性进行验证,如果服务A被授权,则允许本次调用,如果服务A未被授权,则拒绝本次调用。
[0003]现有技术中当前服务鉴权大体分为两种方案,一种是基于IP白名单的方案,该方案通过在鉴权服务端添加相应IP白名单配置,当有请求访问该服务时,通过判断请求来源IP是否在白名单内来判定接受或者拒绝本次请求,该方案典型实现是NGINX(即engine x,是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务,其特点是占有内存少,并发能力强,事实上NGINX的并发能力在同类型的网页服务器中表现较好)提供的白名单机制,优点是实现简单。另一种方案是基于令牌的鉴权方案,该方案有一个中心化的认证中心,请求方发起访问时,首先从认证中心获取访问令牌,然后带着该令牌对被访问端发起访问请求,被访问端对该令牌的合法性进行验证,从而判断本次请求是否合法。该方案的典型实现是OAUTH协议(OAuth是Open Authorization的简写,为用户资源的授权提供了一个安全的、开放而又简易的标准,通俗地说就是当我们想把自己系统的某些功能暴露给第三方系统进行调用,并且需要对第三方系统的调用设置一定的访问权限),优点是能够防止伪造,安全性较高,比较适合外网访问的场景。
[0004]基于IP白名单的鉴权方案虽然具有实现简单的优点,然而白名单中的IP仅代表了机器信息,系统在使用微服务架构以后,为了充分有效的利用机器资源,单机分布多个应用就成为一种自然的选择。如果采用IP白名单方案,不易区分是对机器上的那个应用进行了授权,这使得对鉴权名单的维护变的十分困难,此外该方案在集群信息变化(集群实例增减)时,鉴权信息也不能自动进行更新,而手动变更鉴权名单增加了人力成本。基于令牌的鉴权方案通过对信息进行加密及解密验证,使得该方案能有效的识别请求方的身份,该方案具有较高的防伪能力,安全性较好,比较适合安全等级较低的外网环境。该方案的主要缺
点是流程比较复杂,获取令牌以及对令牌校验也需要进行大量的计算,从而使得引入该方案会带来比较大的鉴权开销。对于分布式集群内部的服务间访问(调用)的鉴权,现有的基于IP白名单的鉴权方案和基于令牌的鉴权方案,前者缺乏动态更新的能力,后者引入成本较高。此外,在分布式集群内部的服务间访问时实施刚性的、过于严格的鉴权策略,将降低系统的容错能力和健壮性,影响系统的稳定性和可靠性。
[0005]可见,对于分布式集群内部的服务间访问(调用)的鉴权,如何在保证安全的情况下提高鉴权操作的易用性、可靠性是待解决的问题。

技术实现思路

[0006]有鉴于此,本申请提供一种基于名字服务的分布式集群服务鉴权方法、设备及介质,该方案具有自动刷新鉴权配置的能力,并且多缓存可降级的设计使得该方案具有更高的容错能力,同时考虑到内网环境比较安全,本方案未采用复杂的加解密算法进行安全验证,因此鉴权方案对服务的性能损失很小。
[0007]名字服务(Naming Service)是在分布式系统中对同一类资源(如服务IP,服务端口等)起一个具有含义的标识,后续通过该标识可以查找对应的资源信息,是分布式系统的一项基础能力。一些组织或集群内部会有内部使用的一套分布式的名字服务系统。本申请的具体实施例和附图中也涉及一种具体的名字服务MNS。
[0008]为此,本申请实施例提供如下技术方案:
[0009]根据本申请一方面,提供一种基于名字服务的分布式集群服务鉴权方法,用于分布式集群内部服务间访问的鉴权,所述分布式集群内部包括鉴权平台、名字服务平台和多个服务,所述多个服务分别具有服务名字、分别具有至少一个服务实例,所述服务实例分别具有IP地址,所述服务鉴权方法包括步骤:通过鉴权平台存储、管理鉴权配置,鉴权配置包括被请求访问的服务的服务名字及有权访问所述被请求访问的服务的服务名字;通过名字服务平台存储、管理、定时更新所述多个服务的服务名字和每个服务的每个实例的IP地址;根据访问请求中包括的被请求访问的服务的服务名字获取被请求访问的服务的鉴权配置并存储在被请求访问的服务的本地缓存中,根据获取的被请求访问的服务的鉴权配置和所述访问请求中发起访问请求的服务的IP地址判断所述访问请求是否有权、是否允许访问,若判定所述访问请求有权则鉴权成功。
[0010]进一步的,所述根据访问请求中包括的被请求访问的服务的服务名字获取被请求访问的服务的鉴权配置并存储在被请求访问的服务的本地缓存中,包括:若被请求访问的服务的本地缓存中存在被请求访问的服务的鉴权配置且未过时,则从被访问的服务的本地缓存中获取被请求访问的服务的鉴权配置;若被请求访问的服务的本地缓存中不存在被请求访问的服务的鉴权配置或已过时,且被请求访问的服务的代理的本地缓存中存在被请求访问的服务的鉴权配置且未过时,则从被请求访问的服务的代理的本地缓存中获取被请求访问的服务的鉴权配置,并将获取的被请求访问的服务的鉴权配置存储在被请求访问的服务的本地缓存中;若被请求访问的服务的本地缓存中不存在被请求访问的服务的鉴权配置或已过时,且被请求访问的服务的代理的本地缓存中不存在被请求访问的服务的鉴权配置或已过时,则从所述鉴权平台中获取被请求访问的服务的鉴权配置,并将获取的被请求访问的服务的鉴权配置存储在被请求访问的服务的本地缓存中和被请求访问的服务的代理
的本地缓存中。
[0011]进一步的,所述从所述鉴权平台中获取被请求访问的服务的鉴权配置,并将获取的被请求访问的服务的鉴权配置存储在被请求访问的服务的本地缓存中和被请求访问的服务的代理的本地缓存中,包括:若通过被请求访问的服务的代理可从所述鉴权平台获取被请求访问的服务的鉴权配置,则通过被请求访问的服务的代理从所述鉴权平台获取被请求访问的服务的鉴权配置并将获取的被请求访问的服务的鉴权配置存储在被请求访问的服务的本地本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于名字服务的分布式集群服务鉴权方法,用于分布式集群内部服务间访问的鉴权,其特征在于,所述分布式集群内部包括鉴权平台、名字服务平台和多个服务,所述多个服务分别具有服务名字、分别具有至少一个服务实例,所述服务实例分别具有IP地址,所述服务鉴权方法包括步骤:通过鉴权平台存储、管理鉴权配置,鉴权配置包括被请求访问的服务的服务名字及有权访问所述被请求访问的服务的服务名字;通过名字服务平台存储、管理、定时更新所述多个服务的服务名字和每个服务的每个实例的IP地址;根据访问请求中包括的被请求访问的服务的服务名字获取被请求访问的服务的鉴权配置并存储在被请求访问的服务的本地缓存中,根据获取的被请求访问的服务的鉴权配置和所述访问请求中发起访问请求的服务的IP地址判断所述访问请求是否有权、是否允许访问,若判定所述访问请求有权则鉴权成功。2.根据权利要求1所述的基于名字服务的分布式集群服务鉴权方法,其特征在于,所述根据访问请求中包括的被请求访问的服务的服务名字获取被请求访问的服务的鉴权配置并存储在被请求访问的服务的本地缓存中,包括:若被请求访问的服务的本地缓存中存在被请求访问的服务的鉴权配置且未过时,则从被访问的服务的本地缓存中获取被请求访问的服务的鉴权配置;若被请求访问的服务的本地缓存中不存在被请求访问的服务的鉴权配置或已过时,且被请求访问的服务的代理的本地缓存中存在被请求访问的服务的鉴权配置且未过时,则从被请求访问的服务的代理的本地缓存中获取被请求访问的服务的鉴权配置,并将获取的被请求访问的服务的鉴权配置存储在被请求访问的服务的本地缓存中;若被请求访问的服务的本地缓存中不存在被请求访问的服务的鉴权配置或已过时,且被请求访问的服务的代理的本地缓存中不存在被请求访问的服务的鉴权配置或已过时,则从所述鉴权平台中获取被请求访问的服务的鉴权配置,并将获取的被请求访问的服务的鉴权配置存储在被请求访问的服务的本地缓存中和被请求访问的服务的代理的本地缓存中。3.根据权利要求2所述的基于名字服务的分布式集群服务鉴权方法,其特征在于,所述从所述鉴权平台中获取被请求访问的服务的鉴权配置,并将获取的被请求访问的服务的鉴权配置存储在被请求访问的服务的本地缓存中和被请求访问的服务的代理的本地缓存中,包括:若通过被请求访问的服务的代理可从所述鉴权平台获取被请求访问的服务的鉴权配置,则通过被请求访问的服务的代理从所述鉴权平台获取被请求访问的服务的鉴权配置并将获取的被请求访问的服务的鉴权配置存储在被请求访问的服务的本地缓存中和被请求访问的服务的代理的本地缓存中;若不能通过被请求访问的服务的代理从所述鉴权平台获取被请求访问的服务的鉴权配置,则通过被请求访问的服务从所述鉴权平台获取被请求访问的服务的鉴权配置并将获取的被请求访问的服务的鉴权配置存储在被请求访问的服务的本地缓存中和被请求访问的服务的代理的本地缓存中。4.根据权利要求3所述的基于名字服务的分布式集群服务鉴权方法,其特征在于...

【专利技术属性】
技术研发人员:雒瑞杰张伟建陈存利
申请(专利权)人:度小满科技北京有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1