CN111835789B - 一种服务鉴权方法、装置、设备、系统及存储介质 - Google Patents

一种服务鉴权方法、装置、设备、系统及存储介质 Download PDF

Info

Publication number
CN111835789B
CN111835789B CN202010736994.9A CN202010736994A CN111835789B CN 111835789 B CN111835789 B CN 111835789B CN 202010736994 A CN202010736994 A CN 202010736994A CN 111835789 B CN111835789 B CN 111835789B
Authority
CN
China
Prior art keywords
authentication
request
target
service
configuration
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202010736994.9A
Other languages
English (en)
Other versions
CN111835789A (zh
Inventor
保飞
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Kingsoft Cloud Network Technology Co Ltd
Original Assignee
Beijing Kingsoft Cloud Network Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Kingsoft Cloud Network Technology Co Ltd filed Critical Beijing Kingsoft Cloud Network Technology Co Ltd
Priority to CN202010736994.9A priority Critical patent/CN111835789B/zh
Publication of CN111835789A publication Critical patent/CN111835789A/zh
Priority to PCT/CN2021/105174 priority patent/WO2022022253A1/zh
Application granted granted Critical
Publication of CN111835789B publication Critical patent/CN111835789B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • H04L63/101Access control lists [ACL]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/51Discovery or management thereof, e.g. service location protocol [SLP] or web services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Telephonic Communication Services (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本申请实施例公开了一种服务鉴权方法、装置、设备、系统及存储介质,其中该方法包括:微服务集群中负责处理目标微服务的服务器,可以在获取到目标微服务调用目的微服务时使用的第一请求后,根据第一鉴权配置规则对第一请求进行鉴权,在获取到源微服务调用目标微服务时使用的第二请求后,根据第二鉴权配置规则对第二请求进行鉴权。上述第一鉴权配置规则和第二鉴权配置规则,均是基于目标鉴权配置条目生成的,该目标鉴权配置条目是基于与微服务集群解耦的全局配置框架配置的、且与目标微服务相关的鉴权配置条目。该方法能够使得微服务集群内部各微服务间的调用关系更清晰,保证与微服务集群的全局功能实现相符。

Description

一种服务鉴权方法、装置、设备、系统及存储介质
技术领域
本申请涉及互联网技术领域,尤其涉及一种服务鉴权方法、装置、设备、系统及存储介质。
背景技术
在微服务网络架构中,服务鉴权作为一种常见的安全管控措施,在验证外界请求和验证微服务间调用权限的过程中均起到了极为重要的作用,通过服务鉴权可以验证外界请求是否能够访问微服务集群内部,以及验证调用请求方是否有权限访问目的微服务。
目前,微服务网络架构中常用的服务鉴权方法,是基于设置在微服务集群外部的鉴权网关和设置在微服务集群内部的开放授权(Open Authorization,OAuth2)认证服务实现的。
经本申请发明人研究发现,现有的服务鉴权方法存在以下缺点:请求通过鉴权网关拿到token后,能否到达其想要访问的目的微服务完全取决于该各个微服务的业务编码,而各个微服务的业务编码彼此是互相独立的,在很多情况下,由微服务集群内部的各微服务的业务编码决定的调用关系往往非常杂乱,可能存在很多与微服务集群的全局功能实现不相符的调用关系。
发明内容
本申请实施例提供了一种服务鉴权方法、装置、系统、设备及存储介质,能够使得微服务集群内部各微服务间的调用关系更清晰,保证与微服务集群的全局功能实现相符。
有鉴于此,本申请第一方面提供了一种服务鉴权方法,应用于微服务集群中处理目标微服务的服务器,所述方法包括:
获取所述目标微服务调用目的微服务时使用的第一请求;
根据第一鉴权配置规则对所述第一请求进行鉴权;所述第一鉴权配置规则是基于目标鉴权配置条目生成的,所述目标鉴权配置条目是基于与所述微服务集群解耦的全局配置框架配置的、且与所述目标微服务相关的鉴权配置条目;
若鉴权通过,则发送所述第一请求;若鉴权未通过,则拦截发送所述第一请求。
本申请第二方面提供了一种服务鉴权方法,应用于微服务集群中处理目标微服务的服务器,所述方法包括:
获取源微服务调用所述目标微服务时使用的第二请求;
根据第二鉴权配置规则对所述第二请求进行鉴权;所述第二鉴权配置规则是基于目标鉴权配置条目生成的,所述目标鉴权配置条目是基于与所述微服务集群解耦的全局配置框架配置的、且与所述目标微服务相关的鉴权配置条目;
若鉴权通过,则接收处理所述第二请求;若鉴权未通过,则拒绝接收所述第二请求。
本申请第三方面提供了一种服务鉴权装置,所述装置应用于微服务集群中负责目标微服务的服务器,所述装置包括:
请求获取单元,用于获取所述目标微服务调用目的微服务时使用的第一请求;
鉴权单元,用于根据第一鉴权配置规则对所述第一请求进行鉴权;所述第一鉴权配置规则是基于目标鉴权配置条目生成的,所述目标鉴权配置条目是基于与所述微服务集群解耦的全局配置框架配置的、且与所述目标微服务相关的鉴权配置条目;
发送处理单元,用于若鉴权通过,则发送所述第一请求;若鉴权未通过,则拦截发送所述第一请求。
本申请第四方面提供了一种服务鉴权装置,所述装置应用于微服务集群中负责目标微服务的服务器,所述装置包括:
请求获取单元,用于获取源微服务调用所述目标微服务时使用的第二请求;
鉴权单元,用于根据第二鉴权配置规则对所述第二请求进行鉴权;所述第二鉴权配置规则是基于目标鉴权配置条目生成的,所述目标鉴权配置条目是基于与所述微服务集群解耦的全局配置框架配置的、且与所述目标微服务相关的鉴权配置条目;
接收处理单元,用于若鉴权通过,则接收处理所述第二请求;若鉴权未通过,则拒绝接收所述第二请求。
本申请第五方面提供了一种服务器,所述服务器用于处理微服务集群中的目标微服务,所述服务器包括代理模块和拦截模块;
所述代理模块,用于获取所述目标微服务调用目的微服务时使用的第一请求;根据第一鉴权配置规则对所述第一请求进行鉴权,所述第一鉴权配置规则是基于目标鉴权配置条目生成的,所述目标鉴权配置条目是基于与所述微服务集群解耦的全局配置框架配置的、且与所述目标微服务相关的鉴权配置条目;若鉴权通过,则发送所述第一请求;若鉴权未通过,则拦截发送所述第一请求;
所述拦截模块,用于获取源微服务调用所述目标微服务时使用的第二请求;根据第二鉴权配置规则对所述第二请求进行鉴权,所述第二鉴权配置规则是基于所述目标鉴权配置条目生成的;若鉴权通过,则接收处理所述第二请求;若鉴权未通过,则拒绝接收所述第二请求。
本申请第六方面提供了一种服务鉴权系统,所述系统包括:配置中心和微服务集群中多个微服务各自对应的服务器;
所述配置中心,用于存储针对所述微服务集群配置的各鉴权配置条目;
每个所述服务器,用于执行上述第一方面或第二方面所述的服务鉴权方法。
本申请第七方面提供了一种服务器,所述服务器包括:处理器以及存储器:
所述存储器用于存储计算机程序,并将所述计算机程序传输给所述处理器;
所述处理器用于根据所述计算机程序,执行第一方面或第二方面所述的服务鉴权方法。
本申请第八方面提供了一种计算机可读存储介质,所述计算机可读存储介质用于存储计算机程序,所述计算机程序用于执行上述第一方面或第二方面所述的服务鉴权方法。
本申请第九方面提供了一种包括指令的计算机程序产品,当其在计算机上运行时,使得所述计算机执行上述第一方面或第二方面所述的服务鉴权方法。
从以上技术方案可以看出,本申请实施例具有以下优点:
本申请实施例提供了一种服务鉴权方法,在该方法中,微服务集群中负责处理目标微服务的服务器,可以在获取到目标微服务调用目的微服务时使用的第一请求后,根据第一鉴权配置规则对第一请求进行鉴权,若鉴权通过,则发送该第一请求,反之,若鉴权未通过,则拦截发送该第一请求。此外,微服务集群中负责处理目标微服务的服务器,还可以在获取到源微服务调用目标微服务时使用的第二请求后,根据第二鉴权配置规则对第二请求进行鉴权,若鉴权通过,则接收处理该第二请求,反之,若鉴权未通过,则拒绝接收该第二请求。
上述鉴权第一请求时依据的第一鉴权配置规则、以及鉴权第二请求时依据的第二鉴权配置规则,均是基于目标鉴权配置条目生成的,该目标鉴权配置条目是基于与微服务集群解耦的全局配置框架配置的、且与目标微服务相关的鉴权配置条目。如此,利用基于与微服务集群解耦的全局配置框架配置的鉴权配置条目代替微服务的业务编码,确定微服务集群中微服务间的调用关系,可以使得微服务集群中各微服务间的调用关系更加清晰,并且确保与微服务集群的全局功能实现相符。
附图说明
图1为相关技术中服务鉴权方法的实现架构示意图;
图2为本申请实施例提供的服务鉴权系统的工作原理示意图;
图3为本申请实施例提供的用于配置鉴权配置规则的方法的流程示意图;
图4为本申请实施例提供的目标权限划分维度的示意图;
图5为本申请实施例提供的一种服务鉴权方法的流程示意图;
图6为本申请实施例提供的另一种服务鉴权方法的流程示意图;
图7为本申请实施例提供的三种鉴权类型的实现方式示意图;
图8为本申请实施例提供的一种服务鉴权装置的结构示意图;
图9为本申请实施例提供的另一种服务鉴权装置的结构示意图;
图10为本申请实施例提供的一种服务器的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
相关技术中,微服务网络架构中常用的服务鉴权方法,是基于设置在微服务集群外部的鉴权网关和设置在微服务集群内部的开放授权(Open Authorization,OAuth2)认证服务实现的,其实现架构如图1所示。管理者可以预先在OAuth2认证服务中配置认证信息,完成认证信息的配置后,冷启动鉴权网关,以使鉴权网关在冷启动过程中读取OAuth2认证服务中配置的认证信息;在实际应用时,来自微服务集群外部的请求均会通过鉴权网关,鉴权网关可以基于此前读取的认证信息确定是否拦截所接收的请求,在确认所接收的请求为需要身份认证的请求时,调用OAuth2认证服务对该请求进行认证,并在鉴权通过后为该请求配置对应的token,允许该请求携带token访问微服务集群内部,拿到token的请求可以在微服务集群内部基于各微服务的业务编码进行路由。
然而,经本申请发明人研究发现,上述服务鉴权方法存在以下缺点:请求通过鉴权网关拿到token后,能否到达其想要访问的目的微服务完全取决于该各个微服务的业务编码,而各个微服务的业务编码彼此是互相独立的,在很多情况下,从业务编码的角度来看,可能既允许微服务A调用微服务B,又允许微服务B调用微服务A,但是从微服务集群的全局功能实现来看,可能只允许微服务A单向调用微服务B;可见,在微服务集群内部由各微服务的业务编码决定的调用关系往往非常杂乱,可能存在很多与微服务集群的全局功能实现不相符的调用关系。
目前主要由微服务集群中各微服务的业务编码来决定各微服务间的调用关系,如此将导致微服务集群的调用拓扑复杂度完全取决于微服务的业务编码,而基于微服务的业务编码确定的调用关系往往过于杂乱,并且可能存在大量与微服务集群的全局功能实现相悖的调用关系。
针对上述相关技术存在的问题,本申请实施例提供了一种服务鉴权方法,该方法能够有效地解决上述相关技术存在的问题,使得微服务集群中各微服务间的调用关系更加清晰,并且确保与微服务集群的全局功能实现相一致。
具体的,在本申请实施例提供的服务鉴权方法中,微服务集群中负责处理目标微服务的服务器,可以在获取到目标微服务调用目的微服务时使用的第一请求后,根据第一鉴权配置规则对第一请求进行鉴权,若鉴权通过,则发送该第一请求,反之,若鉴权未通过,则拦截发送该第一请求。此外,微服务集群中负责处理目标微服务的服务器,还可以在获取到源微服务调用目标微服务时使用的第二请求后,根据第二鉴权配置规则对第二请求进行鉴权,若鉴权通过,则接收处理该第二请求,反之,若鉴权未通过,则拒绝接收该第二请求。
上述鉴权第一请求时依据的第一鉴权配置规则、以及鉴权第二请求时依据的第二鉴权配置规则,均是基于目标鉴权配置条目生成的,该目标鉴权配置条目是基于与微服务集群解耦的全局配置框架配置的、且与目标微服务相关的鉴权配置条目。上述服务鉴权方法利用基于与微服务集群解耦的全局配置框架配置的鉴权配置条目代替微服务的业务编码,确定微服务集群中微服务间的调用关系,可以使得微服务集群中各微服务间的调用关系更加清晰,并且确保与微服务集群的全局功能实现相符。
需要说明的是,与微服务集群解耦的全局配置框架与微服务集群的整体功能实现相对应,其可以严格地限制微服务集群中各个微服务彼此之间的调用关系,使得各个微服务彼此之间的调用关系与微服务集群的实际功能业务实现完全对应。例如,假设从微服务集群的业务实现的角度来看,只允许微服务A单向调用微服务B,那么从与微服务集群解耦的全局配置框架配置的鉴权配置条目,会相应地规定只允许微服务A单向调用微服务B,而不允许微服务B调用微服务A。换言之,从与微服务集群解耦的全局配置框架配置的鉴权配置条目,可以严格地与该微服务集群的整体功能实现相对应,不存在与微服务集群的实际业务实现不一致的微服务调用关系。
应理解,用于执行上述服务鉴权方法的服务器可以为应用服务器或Web服务器,在实际部署时,该服务器可以为独立服务器,也可以为集群服务器。
为了便于理解本申请实施例提供的技术方案,下面先对本申请实施例提供的服务鉴权方法所适用的服务鉴权系统进行介绍。
参见图2,图2为本申请实施例提供的服务鉴权系统的工作原理示意图。如图2所示,该服务鉴权系统中包括:配置中心210、微服务集群中微服务A对应的服务器220和微服务B对应的服务器230;其中,服务器220和服务器230中均包括代理模块和拦截模块,代理模块用于对服务器待发送的请求进行鉴权,拦截模块用于对服务器待接收的请求进行鉴权。服务器220和服务器230可以通过网络与配置中心210进行信息交互,服务器220与服务器230之间也可以通过网络进行信息交互。
应理解,在实际应用中,微服务集群中可以包括更多的微服务,相应地,本申请实施例提供的服务鉴权系统中可以包括更多的微服务各自对应的服务器;此处为了便于描述,以图2所示的服务鉴权系统仅包括微服务A对应的服务器220和微服务B对应的服务器230作为示例,本申请在此不对微服务集群中实际包括的服务器数量做任何限定。
配置中心210用于存储针对该微服务集群配置的各鉴权配置条目。具体的,微服务集群的管理者可以将基于与微服务集群解耦的全局配置框架配置的各鉴权配置条目存储至配置中心210,进而,配置中心210可以通过网络将各鉴权配置条目下发给微服务集群中各微服务,即下发给微服务A对应的服务器220和微服务B对应的服务器230。此外,配置中心210还可以统一展示各鉴权配置条目,以使管理者获知微服务集群中各微服务间清晰的调用关系。
在实际应用中,服务器220和服务器230可以基于watch机制监控配置中心210,一旦监控到配置中心210中存储有新增的鉴权配置条目,服务器220和服务器230即可从配置中心210处及时地获取新增的鉴权配置条目,并在微服务运行的过程中将所获取的鉴权配置条目动态地加载到自身内存中。此外,配置中心210也可以在检测到自身存储有新增的鉴权配置条目时,通过远程过程调用(Remote Procedure Call,RPC)接口,将新增的鉴权配置条目及时地下发给服务器220和服务器230,以使服务器220和服务器230可以将新增的鉴权配置条目动态地加载到自身内存中。
服务器220和服务器230从配置中心210获取到鉴权配置条目后,可以基于所获取的鉴权配置条目生成第一鉴权配置规则和第二鉴权配置规则,并基于第一鉴权配置规则和第二鉴权配置规则实现本申请实施例提供的服务鉴权方法,下面以服务器220执行该服务鉴权方法为例进行说明,应理解,服务器230的执行过程与服务器220的执行过程相同。
具体的,服务器220从配置中心210获取到鉴权配置条目后,即可从所获取的鉴权配置条目中筛选出与微服务A相关的目标鉴权配置条目,例如,服务器220可以根据微服务A对应的目标字段,从所获取的鉴权配置条目中选出与上述目标字段相匹配的鉴权配置条目作为目标鉴权配置条目。
然后,针对每条目标鉴权配置条目,基于目标权限划分维度进行相应地处理,得到每条目标鉴权配置条目对应的鉴权配置规则。
进而,针对每条目标鉴权配置条目,根据该条目标鉴权配置条目对应的鉴权类型,将该条目标鉴权配置条目对应的鉴权配置规则相应地注入服务器220中的代理模块和/或拦截模块,具体的,将用于鉴权待发送的第一请求的第一鉴权配置规则注入代理模块,将用于鉴权待接收的第二请求的第二鉴权配置规则注入拦截模块。例如,对于鉴权类型为请求前拦截的目标鉴权配置条目,可以将该目标鉴权配置条目对应的第一鉴权配置规则注入代理模块;对于鉴权类型为请求后拦截的目标鉴权配置条目,可以将该目标鉴权配置条目对应的第二鉴权配置规则注入拦截模块;对于鉴权类型为不拦截的目标鉴权配置条目,可以将该目标鉴权配置条目对应的鉴权配置规则同时注入代理模块和拦截模块。第一鉴权配置规则和第二鉴权配置规则注入完成后即刻生效。
在实际应用时,服务器220可以通过其中的代理模块和/或拦截模块,根据所注入的第一鉴权配置规则和/或第二鉴权配置规则,相应地对待发送的第一请求和/或待接收的第二请求进行鉴权。例如,代理模块可以根据其中注入的第一鉴权配置规则,对服务器220当前待发送的第一请求进行鉴权,若确定该第一请求通过鉴权,则发送该第一请求,若确定该第一请求没有通过鉴权,则可以拦截发送该第一请求;又例如,拦截模块可以根据其中注入的第二鉴权配置规则,对服务器220当前待接收的第二请求进行鉴权,若确定该第二请求通过鉴权,则接收处理该第二请求,若确定该第二请求没有通过鉴权,则可以拒绝接收该第二请求。
需要说明的是,上述配置中心210与微服务集群(即服务器220和服务器230)实质上属于解耦设计,在实际应用中,服务器220和服务器230不会关注配置中心210的具体配置情况,该配置中心210只需保证其可以向服务器220和服务器230下发格式规范的鉴权配置数据(如yaml数据、json数据等)即可,此处可以采用各种开源或自主研发的配置中心存储鉴权配置数据,本申请在此不对配置中心210做任何限定。
下面通过实施例对本申请提供的服务鉴权方法进行介绍。
首先,对鉴权配置规则的配置方法进行介绍。参见图3,图3为本申请实施例提供的用于配置鉴权配置规则(包括第一鉴权配置规则和第二鉴权配置规则)的方法流程示意图。该方法可以应用于微服务集群中各微服务各自对应的服务器,下面以该服务鉴权方法应用于微服务集群中处理目标微服务的服务器为例,对该服务鉴权方法进行介绍。如图3所示,该方法包括:
步骤301:获取目标鉴权配置条目;所述目标鉴权配置条目是基于与所述微服务集群解耦的全局配置框架配置的、且与所述目标微服务相关的鉴权配置条目。
服务器能够对请求进行鉴权的前提条件是,基于与目标微服务相关的目标鉴权配置条目生成鉴权时所需的鉴权配置规则。因此,服务器需要先获取与目标微服务相关的目标鉴权配置条目,正如上文所介绍的,本申请实施例构建了一个配置中心,该配置中心可以存储基于微服务集群的全局配置框架配置的各鉴权配置条目,相应地,服务器可以从该配置中心处获取与目标微服务相关的目标鉴权配套条目。
在初始阶段,确认配置中心已收集到当前基于与微服务集群解耦的全局配置框架配置的所有鉴权配置条目后,服务器可以从该配置中心获取其存储的所有鉴权配置条目,进而,从所获取的鉴权配置条目中选取与目标微服务相关的鉴权配置条目,作为目标鉴权配置条目。
具体的,配置中心可以响应鉴权配置条目下发指令,将其当前存储的所有鉴权配置条目分别下发给微服务集群中每个微服务对应的服务器;处理目标微服务的服务器接收到配置中心下发的鉴权配置条目后,可以根据目标微服务对应的目标字段,从所接收的各鉴权配置条目中选出与该目标字段相匹配的鉴权配置条目,作为目标鉴权配置条目。
此外,配置中心在确认其已收集到当前基于与微服务集群解耦的全局配置框架配置的所有鉴权配置条目后,可以相应地向微服务集群中每个微服务对应的服务器下发鉴权配置条目获取指令;处理目标微服务的服务器接收到该鉴权配置条目获取指令后,可以遍历配置中心以从中拉取其存储的所有鉴权配置条目,进而,该服务器可以根据目标微服务对应的目标字段,从所拉取的各鉴权配置条目中选出与该目标字段相匹配的鉴权配置条目,作为目标鉴权配置条目。
应理解,在实际应用中,服务器除了可以从配置中心处获取其存储的所有鉴权配置条目,并从中选出目标鉴权配置条目外,服务器也可以直接从配置中心处获取其所需的目标鉴权配置条目。例如,配置中心可以预先确定其存储的各鉴权配置条目各自关联的微服务,进而,直接向每个微服务对应的服务器发送与该微服务相关的鉴权配置条目,或者在每个微服务对应的服务器从配置中心拉取鉴权配置条目时,直接为该服务器提供与该微服务相关的鉴权配置条目;本申请在此不对初始阶段服务器获取目标鉴权配置条目的实现方式做任何限定。
在实际应用阶段,服务器可以对上述配置中心进行监控,当监控到该配置中心中存在新增的鉴权配置条目时,从该配置中心获取新增的鉴权配置条目;并从新增的鉴权配置条目中,选取与目标微服务相关的鉴权配置条目,作为目标鉴权配置条目。
具体的,服务器可以基于watch机制对配置中心进行监控,一旦监控到配置中心中存在新增的鉴权配置条目,则立刻从配置中心拉取新增的鉴权配置条目;在目标微服务运行的过程中,将所拉取的新增的鉴权配置条目动态地加载到内存中,在内存中根据目标微服务对应的目标字段,从新增的鉴权配置条目中选出与该目标字段相匹配的鉴权配置条目,作为目标鉴权配置条目。
此外,配置中心也可以对自身进行监控,一旦监控到存在新增的鉴权配置条目,可以通过RPC接口将新增的鉴权配置条目下发给微服务集群中每个微服务对应的服务器;处理目标微服务的服务器接收到新增的鉴权配置条目后,可以根据目标微服务对应的目标字段,从新增的鉴权配置条目中选出与该目标字段相匹配的鉴权配置条目,作为目标鉴权配置条目。
如此,在服务器实际应用阶段,即在服务器正常处理目标微服务的阶段,动态地获取新增的鉴权配置条目,可以有效地避免冷启动服务器带来的弊端。
应理解,在实际应用中,服务器除了可以从配置中心处获取全量新增的鉴权配置条目,并从中选出目标鉴权配置条目外,服务器也可以直接从配置中心处获取其所需的新增的鉴权配置条目。例如,配置中心可以针对新增的鉴权配置条目确定与其相关的微服务,进而,直接向该微服务对应的服务器发送该新增的鉴权配置条目,或者在微服务对应的服务器从配置中心拉取新增的鉴权配置条目时,直接为该服务器提供与该微服务相关的新增的鉴权配置条目;本申请在此不对服务器实际应用阶段获取目标鉴权配置条目的实现方式做任何限定。
步骤302:基于目标权限划分维度,根据所述目标鉴权配置条目生成对应的鉴权配置规则(包括第一鉴权配置规则和第二鉴权配置规则)。
服务器获取到目标鉴权配置条目后,可以针对每条目标鉴权配置条目,基于目标权限划分维度对该条目标鉴权配置条目进行处理,从而生成该条目标鉴权配置条目对应的鉴权配置规则。
需要说明的是,上述目标权限划分维度实质上是将鉴权配置条目转换为鉴权配置规则时所需依据的模板,基于该目标权限划分维度,可以将鉴权配置条目相应地转换为细粒度的鉴权配置规则,以满足细粒度服务鉴权管理的场景需求。
在一些实施例中,上述目标权限划分维度可以是根据鉴权模式、鉴权规则和匹配(Match)规则确定的,例如,目标权限划分维度可以等于鉴权模式*鉴权规则*匹配规则。其中,鉴权模式能够决定与所生成的鉴权配置规则相匹配的请求是否能够通过鉴权;鉴权规则能够决定对请求进行鉴权时所需使用的参考信息;匹配规则能够决定对请求进行鉴权时对上述参考信息的处理方式。
示例性的,如图4所示,上述鉴权模式可以包括黑名单(black list)或白名单(white list)。当鉴权模式为黑名单时,若某请求与所生成的鉴权配置规则相匹配,则表示该请求没有通过鉴权,反之,若某请求与所生成的鉴权配置规则不匹配,则表示该请求通过鉴权。当鉴权模式为白名单时,若某请求与所生成的鉴权配置规则相匹配,则表示该请求通过鉴权,反之,若某请求与所生成的鉴权配置规则不匹配,则表示该请求没有通过鉴权。
示例性的,如图4所示,上述鉴权规则中涉及的参考信息可以包括以下至少一种:资源标识符(url)、请求路径(path)、请求方式(method)、目的地址(ip)、请求名称(application-name)、请求类型(application-version)和请求服务名称(service-name)。基于所生成的鉴权配置规则对请求进行鉴权时,可以根据鉴权配置规则中涉及的鉴权规则,从请求中提取相应的参考信息进行鉴权。
示例性的,如图4所示,上述匹配规则中涉及的处理方式可以包括以下至少一种:基于前缀匹配、基于后缀匹配、全量匹配、基于包含的信息匹配和基于正则处理结果匹配。基于所生成的鉴权配置规则对请求进行鉴权时,可以根据匹配规则中涉及的处理方式,对所提取出的参考信息进行相应地处理,以根据处理结果确定请求鉴权结果。
需要说明的是,为了便于扩展目标权限划分维度,使得基于目标权限划分维度处理得到的鉴权配置规则具有更细粒度,服务器还可以包括权限划分维度扩展接口,该权限划分维度扩展接口可以用于扩展上述鉴权类型、鉴权规则和匹配规则中的至少一种。
具体实现时,服务器可以通过上述权限划分维度扩展接口接收维度扩展请求,该维度扩展请求的头部(header)可以携带所需扩展的因素对应的标签(tag),服务器对该维度扩展请求进行解析处理,进而根据解析处理结果相应地扩展目标权限划分维度中的鉴权类型、鉴权规则或匹配规则,如此对目标权限划分维度进行轻松地扩展和接入,使得服务器能够满足更细粒度的服务鉴权场景的需求。
步骤303:根据所述目标鉴权配置条目对应的鉴权类型,将所述鉴权配置规则注入所述代理模块和/或所述拦截模块。
服务器生成鉴权配置规则后,针对每条目标鉴权配置条目对应的鉴权配置规则,可以根据该目标鉴权配置条目对应的鉴权类型,确定该目标鉴权配置条目对应的鉴权配置规则为第一鉴权配置规则还是第二鉴权配置规则,将该第一鉴权配置规则相应地注入代理模块,将第二鉴权配置规则相应地注入拦截模块。
需要说明的是,通常情况下,鉴权配置条目所对应的鉴权类型主要包括:请求前拦截、请求后拦截和不拦截;鉴权配置条目可以采用开关的模式来表征其所对应的鉴权类型。
当目标鉴权配置条目对应的鉴权类型为请求前拦截时,服务器可以确定该目标鉴权配置条目对应的鉴权配置规则为第一鉴权配置规则,并将该第一鉴权配置规则注入服务器中的代理模块,以在服务器将请求发送出去之前,通过该代理模块对待发送的请求进行鉴权,决定是否继续发送该请求。如此,可以避免在微服务集群中传输无效请求,节约因传输无效请求占用的带宽和流量。
当目标鉴权配置条目对应的鉴权类型为请求后拦截时,服务器可以确定该目标鉴权配置条目对应的鉴权配置规则为第二鉴权配置规则,并将该第二鉴权配置规则注入服务器中的拦截模块,以在服务器对到来的请求进行处理之前,通过该拦截模块对待接收的请求进行鉴权,决定是否继续接收并处理该请求。
当目标鉴权配置条目对应的鉴权类型为不拦截时,服务器可以确定该目标鉴权配置条目对应的鉴权配置规则同时为第一鉴权配置规则和第二鉴权配置规则,将该目标鉴权配置条目对应的鉴权配置规则注入服务器中的代理模块和拦截模块。该场景可以应用作为测试环境Debug使用。
需要说明的是,相关技术中,通过微服务集群外部的鉴权网关的请求基本上都需要OAuth2认证服务对其进行身份认证,如此将导致OAuth2认证服务成为整个系统的瓶颈组件,导致单点故障拖垮整个系统的可能性增大。为了缓解该问题,本申请实施例提供的方法进一步支持由微服务自身进行身份验证,即当目标微服务为需要进行身份认证的服务时,服务器内部还可以相应地部署认证模块。当目标鉴权配置条目对应的鉴权类型为身份认证时,可以确定该目标鉴权配置条目对应的鉴权配置规则为第三鉴权配置规则,并将该第三鉴权配置规则注入该认证模块,以在实际应用中,通过认证模块根据其中注入的第三鉴权配置规则,对待认证的请求进行身份认证。
示例性的,假设目标微服务为资金服务,资金服务通常都需要对访问请求进行身份认证,因此,服务器可以将OAuth2认证服务鉴权配置规则,注入该资金服务的认证模块中,以便在实际应用中,该认证模块可以根据其中的OAuth2认证服务鉴权配置规则,对访问请求进行身份认证。
如此,利用基于与微服务集群解耦的全局配置框架配置的鉴权配置条目代替微服务的业务编码,确定微服务集群中微服务间的调用关系,可以使得微服务集群中各微服务间的调用关系更加清晰,并且确保与微服务集群的全局功能实现相符。
下面对服务器鉴权待发送的第一请求的方法进行介绍。参见图5,图5为本申请实施例提供的一种服务鉴权方法的流程示意图。该方法可以应用于微服务集群中各微服务各自对应的服务器,具体应用于各服务器中的代理模块,通过该方法可以对服务器待发送的第一请求进行鉴权,以确定是否发送该第一请求。下面以该方法应用于微服务集群中处理目标微服务的服务器为例,对该服务鉴权方法进行介绍。如图5所示,该服务鉴权方法包括:
步骤501:获取所述目标微服务调用目的微服务时使用的第一请求。
服务器将第一鉴权配置规则注入代理模块后,第一鉴权配置规则即刻即可生效,在实际应用时,服务器可以直接通过代理模块,根据其中所注入的第一鉴权配置规则,相应地对待发送的第一请求进行鉴权。
步骤502:根据第一鉴权配置规则对所述第一请求进行鉴权;所述第一鉴权配置规则是基于目标鉴权配置条目生成的,所述目标鉴权配置条目是基于与所述微服务集群解耦的全局配置框架配置的、且与所述目标微服务相关的鉴权配置条目。
步骤503:若鉴权通过,则发送所述第一请求;若鉴权未通过,则拦截发送所述第一请求。
对于目标微服务调用目的微服务(可以为微服务集群中任一其它的微服务)时使用的第一请求,服务器可以通过代理模块根据其中注入的第一鉴权配置规则对该第一请求进行鉴权,若鉴权通过,则正常发送该第一请求,若鉴权未通过,则拦截发送该第一请求。
具体的,代理模块可以对所有通过该服务器出口的请求,基于鉴权类型为请求前拦截的第一鉴权配置规则进行鉴权,若基于第一鉴权配置规则确定某待发送的第一请求没有通过鉴权,则代理模块需要拦截发送该第一请求,即不会继续向上层网络栈发送该请求,如此降低无效请求在微服务集群中占用的带宽和流量,满足对于流量要求非常严格的应用场景的需求。反之,若基于第一鉴权配置规则确定某第一请求通过鉴权,则代理模块可以允许服务器将该第一请求发送给处理目的服务的服务器。
此外,服务器还可以通过代理模块根据其中注入的第一鉴权配置规则,确定不拦截服务器待发送的第三请求时,发送该第三请求。具体的,对于鉴权类型为不拦截的第一鉴权配置规则,服务器中的代理模块即使根据其中注入的第一鉴权配置规则匹配到某第三请求,也不对该第三请求进行拦截发送,对于待发送的第三请求仍继续发送。
为了便于理解本申请实施例中请求前拦截和不拦截这两种鉴权类型各自对应的实现方式,下面以微服务集群中包括微服务A和微服务B为例,结合图7对这两种鉴权类型各自对应的鉴权实现方式进行举例说明。
对于请求前拦截,实现的前提条件是微服务A的服务器解析到目标鉴权配置条目为禁止微服务A调用微服务B;在该场景下,微服务A的服务器将基于该目标鉴权配置条目生成的第一鉴权配置规则注入代理模块,所有通过微服务A出口的请求都会经过这条第一鉴权配置规则的计算,当根据该第一鉴权配置规则确定某请求鉴权未通过时,代理模块可以在准备发出该请求的地方拦截该请求,不会继续往上层网络栈发送该请求。
对于不拦截,虽然基于对应的目标鉴权配置条目生成的第一鉴权配置规则仍会被注入代理模块,但是代理模块即使根据该第一鉴权配置规则匹配到请求,也不会拦截该请求。
在上述服务鉴权方法中,微服务集群中负责处理目标微服务的服务器,可以在获取到目标微服务调用目的微服务时使用的第一请求后,根据第一鉴权配置规则对第一请求进行鉴权,若鉴权通过,则发送该第一请求,反之,若鉴权未通过,则拦截发送该第一请求。上述鉴权第一请求时依据的第一鉴权配置规则是基于目标鉴权配置条目生成的,该目标鉴权配置条目是基于与微服务集群解耦的全局配置框架配置的、且与目标微服务相关的鉴权配置条目。如此,利用基于与微服务集群解耦的全局配置框架配置的鉴权配置条目代替微服务的业务编码,确定微服务集群中微服务间的调用关系,可以使得微服务集群中各微服务间的调用关系更加清晰,并且确保与微服务集群的全局功能实现相符。
下面对服务器鉴权待接收的第二请求的方法进行介绍。参见图6,图6为本申请实施例提供的另一种服务鉴权方法的流程示意图。该方法可以应用于微服务集群中各微服务各自对应的服务器,具体应用于各服务器中的拦截模块,通过该方法可以对服务器待接收的第二请求进行鉴权,以确定是否接收处理该第二请求。下面以该方法应用于微服务集群中处理目标微服务的服务器为例,对该服务鉴权方法进行介绍。如图6所示,该服务鉴权方法包括:
步骤601:获取源微服务调用所述目标微服务时使用的第二请求。服务器将第二鉴权配置规则注入拦截模块后,第二鉴权配置规则即刻即可生效,在实际应用时,服务器可以直接通过拦截模块,根据其中所注入的第二鉴权配置规则,相应地对待接收的第二请求进行鉴权。
步骤602:根据第二鉴权配置规则对所述第二请求进行鉴权;所述第二鉴权配置规则是基于目标鉴权配置条目生成的,所述目标鉴权配置条目是基于与所述微服务集群解耦的全局配置框架配置的、且与所述目标微服务相关的鉴权配置条目。
步骤603:若鉴权通过,则接收处理所述第二请求;若鉴权未通过,则拒绝接收所述第二请求。
对于源微服务(可以为微服务集群中任一其它的微服务)调用目标微服务时使用的第二请求,服务器可以通过拦截模块根据其中注入的第二鉴权配置规则对该第二请求进行鉴权,若鉴权通过,则接收处理该第二请求,若鉴权未通过,则拒绝接收该第二请求。
具体的,拦截模块可以对服务器接收的所有第二请求,基于鉴权类型为请求后拦截的第二鉴权配置规则进行鉴权,若基于第二鉴权配置规则确定某第二请求没有通过鉴权,则拦截模块需要拒绝接收该第二请求,反之,若基于第二鉴权配置规则确定某第二请求通过鉴权,则拦截模块允许服务器继续接收该第二请求,对该第二请求进行后续处理。
可选的,拦截模块确定拒绝接收某第二请求后,可以向处理源服务的服务器发送拒绝接收响应,以通知处理源服务的服务器该请求已被拦截。
此外,服务器还可以通过拦截模块根据其中注入的第二鉴权配置规则,确定不拦截服务器待接收的第四请求时,接收该第四请求。具体的,对于鉴权类型为不拦截的第二鉴权配置规则,服务器中的拦截模块即使根据其中注入的第二鉴权配置规则匹配到某第四请求,也不对该第四请求进行拦截接收,对于待接收的请求仍继续接收。
为了便于理解本申请实施例中请求后拦截和不拦截这两种鉴权类型各自对应的实现方式,下面以微服务集群中包括微服务A和微服务B为例,结合图7对这两种鉴权类型各自对应的鉴权实现方式进行举例说明。
对于请求后拦截,实现的前提条件是微服务B的服务器解析到目标鉴权配置条目为禁止微服务A调用微服务B;在该场景下,微服务B的服务器将基于该目标鉴权配置条目生成的第二鉴权配置规则注入拦截模块,此时,微服务A的服务器仍可以正常地向微服务B的服务器发送请求,但是所有通过微服务B入口的请求都会经过这条第二鉴权配置规则的计算,当根据该第二鉴权配置规则确定某请求鉴权未通过时,拦截模块可以拒绝接收该请求,并以404的http状态码作为响应。
对于不拦截,虽然基于对应的目标鉴权配置条目生成的第二鉴权配置规则仍会被注入拦截模块,但是拦截模块即使根据该第二鉴权配置规则匹配到请求,也不会拦截该请求。
在本申请实施例提供的服务鉴权方法中,微服务集群中负责处理目标微服务的服务器,还可以在获取到源微服务调用目标微服务时使用的第二请求后,根据第二鉴权配置规则对第二请求进行鉴权,若鉴权通过,则接收处理该第二请求,反之,若鉴权未通过,则拒绝接收该第二请求。上述鉴权第二请求时依据的第二鉴权配置规则,均是基于目标鉴权配置条目生成的,该目标鉴权配置条目是基于与微服务集群解耦的全局配置框架配置的、且与目标微服务相关的鉴权配置条目。如此,利用基于与微服务集群解耦的全局配置框架配置的鉴权配置条目代替微服务的业务编码,确定微服务集群中微服务间的调用关系,可以使得微服务集群中各微服务间的调用关系更加清晰,并且确保与微服务集群的全局功能实现相符。
本申请实施例还提供了一种服务鉴权装置,参见图8,图8为该服务鉴权装置800的结构示意图。该服务鉴权装置可以应用于微服务集群中负责目标微服务的服务器,该装置包括:
请求获取单元801,用于获取所述目标微服务调用目的微服务时使用的第一请求;
鉴权单元802,用于根据第一鉴权配置规则对所述第一请求进行鉴权;所述第一鉴权配置规则是基于目标鉴权配置条目生成的,所述目标鉴权配置条目是基于与所述微服务集群解耦的全局配置框架配置的、且与所述目标微服务相关的鉴权配置条目;
发送处理单元803,用于若鉴权通过,则发送所述第一请求;若鉴权未通过,则拦截发送所述第一请求。
可选的,在图8所示的服务鉴权装置的基础上,该装置还包括:
第一鉴权配置规则生成单元,用于获取所述目标鉴权配置条目;基于目标权限划分维度,根据鉴权类型为请求前拦截或不拦截的所述目标鉴权配置条目,生成所述第一鉴权配置规则。
本申请实施例还提供了一种服务鉴权装置,参见图9,图9为该服务鉴权装置900的结构示意图。该服务鉴权装置可以应用于微服务集群中负责目标微服务的服务器,该装置包括:
请求获取单元901,用于获取源微服务调用所述目标微服务时使用的第二请求;
鉴权单元902,用于根据第二鉴权配置规则对所述第二请求进行鉴权;所述第二鉴权配置规则是基于目标鉴权配置条目生成的,所述目标鉴权配置条目是基于与所述微服务集群解耦的全局配置框架配置的、且与所述目标微服务相关的鉴权配置条目;
接收处理单元903,用于若鉴权通过,则接收处理所述第二请求;若鉴权未通过,则拒绝接收所述第二请求。
可选的,在图9所示的服务鉴权装置的基础上,该装置还包括:
第二鉴权配置规则生成单元,用于获取所述目标鉴权配置条目;基于目标权限划分维度,根据鉴权类型为请求后拦截或不拦截的所述目标鉴权配置条目,生成所述第二鉴权配置规则。
可选的,在图8或图9所示的服务鉴权装置的基础上,所述第一鉴权配置规则生成单元或所述第二鉴权配置规则生成单元具体用于:
从配置中心获取其存储的所有鉴权配置条目;所述配置中心用于存储针对所述微服务集群配置的各鉴权配置条目;
从所获取的所述鉴权配置条目中,选取与所述目标微服务相关的鉴权配置条目,作为所述目标鉴权配置条目。
可选的,在图8或图9所示的服务鉴权装置的基础上,所述第一鉴权配置规则生成单元或所述第二鉴权配置规则生成单元具体用于:
监控配置中心;所述配置中心用于存储针对所述微服务集群配置的各鉴权配置条目;
当监控到所述配置中心中存在新增的鉴权配置条目时,从所述配置中心获取所述新增的鉴权配置条目;
从所述新增的鉴权配置条目中,选取与所述目标微服务相关的鉴权配置条目,作为所述目标鉴权配置条目。
可选的,所述目标权限划分维度是根据鉴权模式、鉴权规则和匹配规则确定的;所述鉴权模式用于决定与所述鉴权配置规则匹配的请求是否通过鉴权;所述鉴权规则用于决定对请求进行鉴权时使用的参考信息;所述匹配规则用于决定对请求进行鉴权时对所述参考信息的处理方式。
可选的,所述鉴权模式包括:黑名单或白名单;
所述参考信息包括以下至少一种:资源定位符、请求路径、请求方式、目的地址、请求名称、请求类型、请求服务名称;
所述处理方式包括以下至少一种:基于前缀匹配、基于后缀匹配、全量匹配、基于包含的信息匹配、基于正则处理结果匹配。
可选的,所述服务器还包括权限划分维度扩展接口,所述权限划分维度扩展接口用于扩展所述鉴权模式、所述鉴权规则和所述匹配规则中的至少一种。
可选的,在图8或图9所示的服务鉴权装置的基础上,当所述目标微服务为需要进行身份认证的服务时,所述装置还包括:
身份认证模块,用于根据第三鉴权配置规则对待认证的请求进行身份认证;所述第三鉴权配置规则是基于鉴权类型为身份认证的目标鉴权配置条目生成的。
在本申请实施例提供的服务鉴权装置中,微服务集群中负责处理目标微服务的服务器,可以在获取到目标微服务调用目的微服务时使用的第一请求后,根据第一鉴权配置规则对第一请求进行鉴权,若鉴权通过,则发送该第一请求,反之,若鉴权未通过,则拦截发送该第一请求。此外,微服务集群中负责处理目标微服务的服务器,还可以在获取到源微服务调用目标微服务时使用的第二请求后,根据第二鉴权配置规则对第二请求进行鉴权,若鉴权通过,则接收处理该第二请求,反之,若鉴权未通过,则拒绝接收该第二请求。
上述鉴权第一请求时依据的第一鉴权配置规则、以及鉴权第二请求时依据的第二鉴权配置规则,均是基于目标鉴权配置条目生成的,该目标鉴权配置条目是基于与微服务集群解耦的全局配置框架配置的、且与目标微服务相关的鉴权配置条目。如此,利用基于与微服务集群解耦的全局配置框架配置的鉴权配置条目代替微服务的业务编码,确定微服务集群中微服务间的调用关系,可以使得微服务集群中各微服务间的调用关系更加清晰,并且确保与微服务集群的全局功能实现相符。
本申请实施例还提供了一种用于服务鉴权的服务器,下面将从硬件实体化的角度对本申请实施例提供的服务器进行介绍。
参见图10,图10为本申请实施例提供的一种服务器1000的结构示意图。该服务器1000可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上中央处理器(central processing units,CPU)1022(例如,一个或一个以上处理器)和存储器1032,一个或一个以上存储应用程序1042或数据1044的存储介质1030(例如一个或一个以上海量存储设备)。其中,存储器1032和存储介质1030可以是短暂存储或持久存储。存储在存储介质1030的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对服务器中的一系列指令操作。更进一步地,中央处理器1022可以设置为与存储介质1030通信,在服务器1000上执行存储介质1030中的一系列指令操作。
服务器1000还可以包括一个或一个以上电源1026,一个或一个以上有线或无线网络接口1050,一个或一个以上输入输出接口1058,和/或,一个或一个以上操作系统1041,例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM等等。
上述实施例中由服务器所执行的步骤可以基于该图10所示的服务器结构。
其中,CPU 1022用于执行如下步骤:
获取所述目标微服务调用目的微服务时使用的第一请求;
根据第一鉴权配置规则对所述第一请求进行鉴权;所述第一鉴权配置规则是基于目标鉴权配置条目生成的,所述目标鉴权配置条目是基于与所述微服务集群解耦的全局配置框架配置的、且与所述目标微服务相关的鉴权配置条目;
若鉴权通过,则发送所述第一请求;若鉴权未通过,则拦截发送所述第一请求。
或者,
获取源微服务调用所述目标微服务时使用的第二请求;
根据第二鉴权配置规则对所述第二请求进行鉴权;所述第二鉴权配置规则是基于目标鉴权配置条目生成的,所述目标鉴权配置条目是基于与所述微服务集群解耦的全局配置框架配置的、且与所述目标微服务相关的鉴权配置条目;
若鉴权通过,则接收处理所述第二请求;若鉴权未通过,则拒绝接收所述第二请求。
可选的,CPU 1022还可以用于执行本申请实施例提供的服务鉴权方法的任意一种实现方式的步骤。
本申请实施例还提供一种计算机可读存储介质,用于存储计算机程序,该计算机程序用于执行前述各个实施例所述的一种服务鉴权方法中的任意一种实施方式。
本申请实施例还提供一种包括指令的计算机程序产品,当其在计算机上运行时,使得计算机执行前述各个实施例所述的一种服务鉴权方法中的任意一种实施方式。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(英文全称:Read-OnlyMemory,英文缩写:ROM)、随机存取存储器(英文全称:Random Access Memory,英文缩写:RAM)、磁碟或者光盘等各种可以存储计算机程序的介质。
以上所述,以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。

Claims (16)

1.一种服务鉴权方法,其特征在于,应用于微服务集群中处理目标微服务的服务器,所述方法包括:
获取所述目标微服务调用目的微服务时使用的第一请求;
根据第一鉴权配置规则对所述第一请求进行鉴权;所述第一鉴权配置规则是基于目标鉴权配置条目生成的,所述目标鉴权配置条目是基于与所述微服务集群解耦的全局配置框架配置的、且与所述目标微服务相关的鉴权配置条目;
若鉴权通过,则发送所述第一请求;若鉴权未通过,则拦截发送所述第一请求。
2.根据权利要求1所述的方法,其特征在于,通过以下方式生成所述第一鉴权配置规则:
获取所述目标鉴权配置条目;
基于目标权限划分维度,根据鉴权类型为请求前拦截或不拦截的所述目标鉴权配置条目,生成所述第一鉴权配置规则。
3.一种服务鉴权方法,其特征在于,应用于微服务集群中处理目标微服务的服务器,所述方法包括:
获取源微服务调用所述目标微服务时使用的第二请求;
根据第二鉴权配置规则对所述第二请求进行鉴权;所述第二鉴权配置规则是基于目标鉴权配置条目生成的,所述目标鉴权配置条目是基于与所述微服务集群解耦的全局配置框架配置的、且与所述目标微服务相关的鉴权配置条目;
若鉴权通过,则接收处理所述第二请求;若鉴权未通过,则拒绝接收所述第二请求。
4.根据权利要求3所述的方法,其特征在于,通过以下方式生成所述第二鉴权配置规则:
获取所述目标鉴权配置条目;
基于目标权限划分维度,根据鉴权类型为请求后拦截或不拦截的所述目标鉴权配置条目,生成所述第二鉴权配置规则。
5.根据权利要求2或4所述的方法,其特征在于,所述获取所述目标鉴权配置条目,包括:
从配置中心获取其存储的所有鉴权配置条目;所述配置中心用于存储针对所述微服务集群配置的各鉴权配置条目;
从所获取的所述鉴权配置条目中,选取与所述目标微服务相关的鉴权配置条目,作为所述目标鉴权配置条目。
6.根据权利要求2或4所述的方法,其特征在于,所述获取所述目标鉴权配置条目,包括:
监控配置中心;所述配置中心用于存储针对所述微服务集群配置的各鉴权配置条目;
当监控到所述配置中心中存在新增的鉴权配置条目时,从所述配置中心获取所述新增的鉴权配置条目;
从所述新增的鉴权配置条目中,选取与所述目标微服务相关的鉴权配置条目,作为所述目标鉴权配置条目。
7.根据权利要求2或4所述的方法,其特征在于,所述目标权限划分维度是根据鉴权模式、鉴权规则和匹配规则确定的;所述鉴权模式用于决定与所述鉴权配置规则匹配的请求是否通过鉴权;所述鉴权规则用于决定对请求进行鉴权时使用的参考信息;所述匹配规则用于决定对请求进行鉴权时对所述参考信息的处理方式。
8.根据权利要求7所述的方法,其特征在于,所述鉴权模式包括:黑名单或白名单;
所述参考信息包括以下至少一种:资源定位符、请求路径、请求方式、目的地址、请求名称、请求类型、请求服务名称;
所述处理方式包括以下至少一种:基于前缀匹配、基于后缀匹配、全量匹配、基于包含的信息匹配、基于正则处理结果匹配。
9.根据权利要求7所述的方法,其特征在于,所述服务器还包括权限划分维度扩展接口,所述权限划分维度扩展接口用于扩展所述鉴权模式、所述鉴权规则和所述匹配规则中的至少一种。
10.根据权利要求1或3所述的方法,其特征在于,当所述目标微服务为需要进行身份认证的服务时,所述方法还包括:
根据第三鉴权配置规则对待认证的请求进行身份认证;所述第三鉴权配置规则是基于鉴权类型为身份认证的目标鉴权配置条目生成的。
11.一种服务鉴权装置,其特征在于,所述装置应用于微服务集群中负责目标微服务的服务器,所述装置包括:
请求获取单元,用于获取所述目标微服务调用目的微服务时使用的第一请求;
鉴权单元,用于根据第一鉴权配置规则对所述第一请求进行鉴权;所述第一鉴权配置规则是基于目标鉴权配置条目生成的,所述目标鉴权配置条目是基于与所述微服务集群解耦的全局配置框架配置的、且与所述目标微服务相关的鉴权配置条目;
发送处理单元,用于若鉴权通过,则发送所述第一请求;若鉴权未通过,则拦截发送所述第一请求。
12.一种服务鉴权装置,其特征在于,所述装置应用于微服务集群中负责目标微服务的服务器,所述装置包括:
请求获取单元,用于获取源微服务调用所述目标微服务时使用的第二请求;
鉴权单元,用于根据第二鉴权配置规则对所述第二请求进行鉴权;所述第二鉴权配置规则是基于目标鉴权配置条目生成的,所述目标鉴权配置条目是基于与所述微服务集群解耦的全局配置框架配置的、且与所述目标微服务相关的鉴权配置条目;
接收处理单元,用于若鉴权通过,则接收处理所述第二请求;若鉴权未通过,则拒绝接收所述第二请求。
13.一种服务器,其特征在于,所述服务器用于处理微服务集群中的目标微服务,所述服务器包括代理模块和拦截模块;
所述代理模块,用于获取所述目标微服务调用目的微服务时使用的第一请求;根据第一鉴权配置规则对所述第一请求进行鉴权,所述第一鉴权配置规则是基于目标鉴权配置条目生成的,所述目标鉴权配置条目是基于与所述微服务集群解耦的全局配置框架配置的、且与所述目标微服务相关的鉴权配置条目;若鉴权通过,则发送所述第一请求;若鉴权未通过,则拦截发送所述第一请求;
所述拦截模块,用于获取源微服务调用所述目标微服务时使用的第二请求;根据第二鉴权配置规则对所述第二请求进行鉴权,所述第二鉴权配置规则是基于所述目标鉴权配置条目生成的;若鉴权通过,则接收处理所述第二请求;若鉴权未通过,则拒绝接收所述第二请求。
14.一种服务鉴权系统,其特征在于,所述系统包括:配置中心和微服务集群中多个微服务各自对应的服务器;
所述配置中心,用于存储针对所述微服务集群配置的各鉴权配置条目;
每个所述服务器,用于执行权利要求1至10任一项所述的服务鉴权方法。
15.一种服务器,其特征在于,所述服务器包括:处理器以及存储器:
所述存储器用于存储计算机程序,并将所述计算机程序传输给所述处理器;
所述处理器用于根据所述计算机程序,执行权利要求1至10任一项所述的服务鉴权方法。
16.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质用于存储计算机程序,所述计算机程序用于执行权利要求1至10任一项所述的服务鉴权方法。
CN202010736994.9A 2020-07-28 2020-07-28 一种服务鉴权方法、装置、设备、系统及存储介质 Active CN111835789B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202010736994.9A CN111835789B (zh) 2020-07-28 2020-07-28 一种服务鉴权方法、装置、设备、系统及存储介质
PCT/CN2021/105174 WO2022022253A1 (zh) 2020-07-28 2021-07-08 一种服务鉴权方法、装置、设备、系统及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010736994.9A CN111835789B (zh) 2020-07-28 2020-07-28 一种服务鉴权方法、装置、设备、系统及存储介质

Publications (2)

Publication Number Publication Date
CN111835789A CN111835789A (zh) 2020-10-27
CN111835789B true CN111835789B (zh) 2021-12-03

Family

ID=72925784

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010736994.9A Active CN111835789B (zh) 2020-07-28 2020-07-28 一种服务鉴权方法、装置、设备、系统及存储介质

Country Status (2)

Country Link
CN (1) CN111835789B (zh)
WO (1) WO2022022253A1 (zh)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111835789B (zh) * 2020-07-28 2021-12-03 北京金山云网络技术有限公司 一种服务鉴权方法、装置、设备、系统及存储介质
CN113556357A (zh) * 2021-07-30 2021-10-26 平安普惠企业管理有限公司 基于注册中心的鉴权方法、装置、设备及存储介质
CN113938289B (zh) * 2021-08-31 2024-03-01 联通沃音乐文化有限公司 一种代理客户端预防拦截机制被滥用和攻击的系统和方法
CN114125039A (zh) * 2021-12-08 2022-03-01 阿里云计算有限公司 服务之间访问关系的发现与控制方法和装置
CN115086047B (zh) * 2022-06-20 2024-05-03 广州聚智云智能科技有限公司 接口鉴权方法、装置、电子设备及存储介质
CN116389103B (zh) * 2023-03-30 2024-01-26 成都道客数字科技有限公司 一种基于角色权限的云原生微服务分布式鉴权方法和系统
CN117014226B (zh) * 2023-09-22 2024-01-12 云粒智慧科技有限公司 服务请求鉴权方法、装置、设备、系统和存储介质
CN117278323B (zh) * 2023-11-16 2024-04-19 荣耀终端有限公司 第三方信息的获取方法、电子设备及可读存储介质
CN117851991A (zh) * 2023-12-13 2024-04-09 天翼云科技有限公司 一种无侵入的微服务系统权限控制方法及系统

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108809956A (zh) * 2018-05-23 2018-11-13 广州虎牙信息科技有限公司 基于微服务的鉴权方法、访问请求转发方法和装置、系统
CN109683988A (zh) * 2018-12-25 2019-04-26 鼎信信息科技有限责任公司 微服务启动方法、装置、计算机设备和存储介质
CN110460595A (zh) * 2019-08-02 2019-11-15 阿里巴巴集团控股有限公司 一种鉴权与业务服务方法、装置以及设备
CN111258781A (zh) * 2020-01-15 2020-06-09 中国平安人寿保险股份有限公司 微服务的调用鉴权方法、装置、设备及存储介质
CN111259376A (zh) * 2020-01-17 2020-06-09 中国平安人寿保险股份有限公司 权限配置方法、装置、服务器及存储介质

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11057393B2 (en) * 2018-03-02 2021-07-06 Cloudentity, Inc. Microservice architecture for identity and access management
CN111835789B (zh) * 2020-07-28 2021-12-03 北京金山云网络技术有限公司 一种服务鉴权方法、装置、设备、系统及存储介质

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108809956A (zh) * 2018-05-23 2018-11-13 广州虎牙信息科技有限公司 基于微服务的鉴权方法、访问请求转发方法和装置、系统
CN109683988A (zh) * 2018-12-25 2019-04-26 鼎信信息科技有限责任公司 微服务启动方法、装置、计算机设备和存储介质
CN110460595A (zh) * 2019-08-02 2019-11-15 阿里巴巴集团控股有限公司 一种鉴权与业务服务方法、装置以及设备
CN111258781A (zh) * 2020-01-15 2020-06-09 中国平安人寿保险股份有限公司 微服务的调用鉴权方法、装置、设备及存储介质
CN111259376A (zh) * 2020-01-17 2020-06-09 中国平安人寿保险股份有限公司 权限配置方法、装置、服务器及存储介质

Also Published As

Publication number Publication date
WO2022022253A1 (zh) 2022-02-03
CN111835789A (zh) 2020-10-27

Similar Documents

Publication Publication Date Title
CN111835789B (zh) 一种服务鉴权方法、装置、设备、系统及存储介质
CN110944330B (zh) Mec平台部署方法及装置
US10581873B2 (en) Securing micro-services
CN108924125B (zh) 接口调用权限的控制方法、装置、计算机设备和存储介质
US9641647B2 (en) Communication protocol and system for network communications
US10135803B2 (en) Dynamic identity switching
JP5961638B2 (ja) アプリケーション証明のためのシステムおよび方法
CN110191063B (zh) 服务请求的处理方法、装置、设备及存储介质
US9614855B2 (en) System and method for implementing a secure web application entitlement service
US20160261607A1 (en) Techniques for identity-enabled interface deployment
CN110532101B (zh) 微服务集群的部署系统及方法
US8638941B2 (en) Distributing keypairs between network appliances, servers, and other network assets
US11798001B2 (en) Progressively validating access tokens
CN111193716A (zh) 业务数据调用方法、装置、计算机设备和存储介质
CN116647572B (zh) 访问端点切换方法、装置、电子设备及存储介质
US10846156B2 (en) Methods, devices and computer program products for managing software function
Van Hoye et al. A secure cross‐organizational container deployment approach to enable ad hoc collaborations
US20230291726A1 (en) System and method for providing multi factor authorization to rdp services through a zero trust cloud environment
Parák et al. Challenges in achieving iaas cloud interoperability across multiple cloud management frameworks
US20100146120A1 (en) Caller-specific visibility masks for networking objects
CN114979273A (zh) 请求的限流方法、装置、存储介质及电子设备
CN113194070A (zh) Kafka集群多类型权限管理方法、装置及存储介质
CN109379383A (zh) 一种虚拟私有网络vpn客户端及实现方法
CN111142926B (zh) 多系统管理方法及装置
US20240031358A1 (en) System and method for providing a web based rdp service through a zero trust cloud environment

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant