CN115865384A - 中台微服务授权方法、装置、电子设备及存储介质 - Google Patents
中台微服务授权方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN115865384A CN115865384A CN202111124349.2A CN202111124349A CN115865384A CN 115865384 A CN115865384 A CN 115865384A CN 202111124349 A CN202111124349 A CN 202111124349A CN 115865384 A CN115865384 A CN 115865384A
- Authority
- CN
- China
- Prior art keywords
- target
- microservice
- authorization
- service
- authentication
- 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.)
- Pending
Links
Images
Abstract
本发明提供一种中台微服务授权方法、装置、电子设备及存储介质,方法包括:接收第一客户端发送的请求调用目标中台微服务的调用请求;基于调用请求携带的鉴权凭证,以及目标中台微服务的授权策略、协议类型和订阅关系,对第一客户端进行鉴权;在鉴权通过的情况下,基于目标中台微服务的协议类型,将调用请求转发至目标中台微服务的应用程序编程接口。本发明提供的中台微服务授权方法、装置、电子设备及存储介质,基于调用请求携带的鉴权凭证,以及目标中台微服务的授权策略、协议类型和订阅关系,对第一客户端进行鉴权,能实现中台微服务共享场景下,对中台微服务的鉴权和授权,适用于中台微服务共享场景下的安全防护。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种中台微服务授权方法、装置、电子设备及存储介质。
背景技术
目前,基于中台理念的企业IT系统得到越来越广泛的应用。
中台的技术核心是微服务的复用和共享,即中台微服务可以被多客户端同时调用,也不限于被中台微服务所属系统中的客户端调用。在复用或共享中台微服务的过程中,需要对请求调用中台微服务的客户端进行鉴权,以保证调用的安全性。现有微服务鉴权方法,通常是针对单客户端调用微服务的场景,该场景具有封闭式系统、系统承建方唯一、用户权限体系一致并且微服务在系统内调用的特点。该场景下的微服务鉴权主要包括:在支持HTTP协议的网关侧集成支持某一种固定鉴权方式(如基于OAuth2协议、JWT协议以及session等方式)的微服务,通过验证请求用户的合法性决定是否转发。
而中台微服务大量用于多协议、开放共享的场景,因此,针对中台微服务的授权机制是本领域亟待解决的课题。
发明内容
本发明提供一种中台微服务授权方法、装置、电子设备及存储介质,用以解决现有技术中难以实现中台微服务授权的缺陷,实现中台微服务授权。
第一方面,本发明提供一种中台微服务授权方法,包括:
接收第一客户端发送的请求调用目标中台微服务的调用请求;
基于所述调用请求携带的鉴权凭证,以及所述目标中台微服务的授权策略、协议类型和订阅关系,对所述第一客户端进行鉴权;
在鉴权通过的情况下,基于所述目标中台微服务的协议类型,将所述调用请求转发至所述目标中台微服务的应用程序编程接口。
在一个实施例中,所述目标中台微服务的协议类型包括HTTP协议或TCP协议。
在一个实施例中,所述目标中台微服务的授权策略包括应用鉴权、用户鉴权或平台鉴权。
在一个实施例中,所述基于所述调用请求携带的鉴权凭证,以及所述目标中台微服务的授权策略、协议类型和订阅关系,对所述第一客户端进行鉴权,具体包括:
在所述目标中台微服务的协议类型为TCP协议的情况下,根据所述目标中台微服务的授权策略,基于安全传输层协议和服务器名称指示,获取所述调用请求携带的鉴权凭证;
基于所述鉴权凭证和所述目标中台微服务的订阅关系,对所述第一客户端进行鉴权。
在一个实施例中,所述接收第一客户端发送的请求调用目标中台微服务的调用请求之前,所述方法还包括:
接收提供所述目标中台微服务的电子设备发送的注册请求;
响应于所述注册请求,向所述电子设备发送目标密钥,并发布所述目标中台微服务的接口信息;
其中,所述注册请求携带有所述目标中台微服务的授权策略和协议类型;所述接口信息包括所述目标中台微服务的授权策略、协议类型和对应的标识。
在一个实施例中,所述响应于所述注册请求,发布所述目标中台微服务的接口信息之后,所述方法还包括:
接收第二客户端发送的订阅请求;
响应于所述订阅请求,更新所述目标中台微服务的订阅关系。
其中,所述订阅请求,用于订阅所述目标中台微服务。
在一个实施例中,所述在鉴权通过的情况下,基于所述目标中台微服务的协议类型,将所述调用请求转发至所述目标中台微服务的应用程序编程接口之后,所述方法还包括:
将所述目标中台微服务的应用程序编程接口返回的所述调用请求的响应数据,转发至所述第一客户端;
其中,所述响应数据,是提供所述目标中台微服务的电子设备,在确定所述鉴权凭证合法的情况下生成的。
第二方面,本发明提供一种中台微服务授权装置,包括:
接收模块,用于接收第一客户端发送的请求调用目标中台微服务的调用请求;
授权模块,用于基于所述调用请求携带的鉴权凭证,以及所述目标中台微服务的授权策略、协议类型和订阅关系,对所述第一客户端进行鉴权;
转发模块,用于在鉴权通过的情况下,基于所述目标中台微服务的协议类型,将所述调用请求转发至所述目标中台微服务的应用程序编程接口。
第三方面,本发明提供一种电子设备,包括处理器和存储有计算机程序的存储器,所述处理器执行所述计算机程序时实现上述任一种所述中台微服务授权方法的步骤。
第四方面,本发明提供一种处理器可读存储介质,所述处理器可读存储介质存储有计算机程序,所述计算机程序用于使所述处理器执行上述任一种所述中台微服务授权方法的步骤。
本发明提供的中台微服务授权方法、装置、电子设备及存储介质,基于调用请求携带的鉴权凭证,以及目标中台微服务的授权策略、协议类型和订阅关系,对第一客户端进行鉴权,能实现中台微服务共享场景下,对中台微服务的鉴权和授权,适用于中台微服务共享场景下的安全防护,尤其是能力建设方以及消费方分别来自不同承建商的复杂业务中台建设场景下的微服务共享。
附图说明
为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明提供的中台微服务授权方法的流程示意图;
图2是本发明提供的关联模型的示意图;
图3是本发明提供的中台微服务授权过程的示意图之一;
图4是本发明提供的TLS机制的实现示意图;
图5是本发明提供的目标中台微服务的注册过程的流程示意图;
图6是本发明提供的透传通道的示意图;
图7是本发明提供的中台微服务授权过程的示意图之二;
图8是本发明提供的鉴权及转发步骤的流程示意图;
图9是本发明提供的协议类型识别过程的示意图;
图10是本发明提供的基于HTTP协议的中台微服务授权过程的信令图;
图11是本发明提供的中台微服务授权装置的结构示意图之一;
图12是本发明提供的中台微服务授权装置的结构示意图之二;
图13是本发明提供的电子设备的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
下面结合图1-图13描述本发明的中台微服务授权方法、装置、电子设备及存储介质。
图1是本发明提供的中台微服务授权方法的流程示意图。下面结合图1描述本申请实施例提供的中台微服务授权方法。如图1所示,该方法包括:步骤101、接收第一客户端发送的请求调用目标中台微服务的调用请求。
具体地,本发明实施例提供的中台微服务授权方法的执行主体为本发明提供的中台微服务授权装置。本发明实施例中,客户端是微服务的能力消费方,提供目标中台微服务的电子设备是微服务的能力提供方。中台微服务授权装置,至少具有网关的功能,可以实现客户端与提供目标中台微服务的电子设备之间的数据转发等功能。
中台微服务授权装置一般是企业业务中台统一对外提供服务的出入口,所有请求都会经过该网关进行路由转发。优选地,中台微服务授权装置,可以用于集中管理注册信息、订阅关系信息、应用服务关联信息以及鉴权凭证信息。
能力提供方,负责完成能力梳理、沉淀以及输出发布,一般由各类后台系统微服务化后组成。
能力消费方一般是运行前端应用的电子设备。前端应用可以是纯前端页面、手机APP或者电脑桌面客户端等,也可以是其他服务,负责完成能力订阅和调用。
本质上,中台是“企业级能力复用平台”,中台将企业的核心能力随着业务不断发展以数字化形式沉淀到平台,对企业的共性需求进行抽象,并打造成平台化、组件化的系统能力,形成以服务为中心,由业务、数据、技术等构建起闭环运转的运营体系,使企业可以针对特定问题,快速灵活地调用资源构建解决方案,为业务的创新和迭代赋能。
中台的技术核心是能力复用共享,是一种面向未来的IT架构体系,通过沉淀业务、数据、技术的共性能力,形成基本的企业能力“积木块”,通过标准化接口开放,用有限的“积木块”,搭建无限的可能性,通过持续迭代和优化,有效支撑智慧运营。
在第一客户端需要调用目标中台微服务的情况下,向中台微服务授权装置发送调用请求。该调用请求,为请求调用目标中台微服务的请求。
中台微服务授权装置可以接收该调用请求。
企业中台微服务对外开放共享的形式丰富多样,既有传统的基于HTTP协议的Restful、Webservice以及Websocket接口,也有基于TCP协议的SOCKET长连接接口。
本发明实施例中,如2所示的关联模型,是应用-服务-端点-版本的关联模型。
其中,应用(Application,应用程序的简称)作为微服务共享或者能力消费的主体、是受管资源的拥有方,也是中台微服务授权方法和装置的主要鉴权对象。本发明实施例中的应用为中台应用。
中台应用可以被拆分为至少一个中台微服务。中台微服务(本发明的各实施例中可以简称为“服务”)是一个或多个相同的微服务进程(服务实例)的统一逻辑名称。中台微服务服务是由应用统一发布的。
端点(即API,Application Programming Interface,应用程序编程接口)是对微服务的一种逻辑抽象。端点定义了对外共享何种能力以及呈现方式,端点是由应用统一发布。
版本是指端点的实例版本,不同的服务为同一个端点提供承载服务,因此可形成端点的多个版本,不同版本可根据策略定义消费该共享服务的分流方案。
如图2所示,存量端点(API)将全部收敛为Restful端点,同时扩展三类端点:Websocket、Webservice、TCP。
由于Restful、Webservice以及Websocket都可以算做是HTTP协议的具体表现或升级,可以对微服务网关进行扩展支持。
通过建立“应用-服务-端点-版本”关联模型,扩展了共享微服务的接口类型,可以支持以插件的形式自动扩展鉴权流程。
可选地,可以扩展认证信息获取源:由原来的仅从请求头中获取升级为从请求头或查询参数中获取,以支持Websocket握手前的身份认证及鉴权、流控等功能。
可选地,可以对Webservice扩展支持额外的wsdl请求,以支持基于wsdl生成客户端代码时访问地址的正确性。
进一步地,可以增加对Websocket、Webservice端点的创建和编辑界面。
步骤102、基于调用请求携带的鉴权凭证,以及目标中台微服务的授权策略、协议类型和订阅关系,对第一客户端进行鉴权。
具体地,鉴权凭证,可以携带有第一客户端的相关信息和目标中台微服务的相关信息。鉴权凭证,与目标中台微服务的授权策略和协议类型相对应。不同的协议类型和授权策略的组合对应不同的鉴权凭证。
中台微服务授权装置可以支持多种鉴权方式,对应不同的安全共享要求。授权策略为多种鉴权方式中的一种。
对于目标中台微服务的协议类型,本发明实施例不进行具体限定。示例性地,目标中台微服务的协议类型可以为基于HTTP协议的Restful、Webservice以及Websocket接口,以及基于TCP协议的SOCKET长连接接口中的任意一种。目标中台微服务的协议类型也可以是HTTP协议或TCP协议的任何扩展协议。
中台微服务授权装置,可以基于目标中台微服务的协议类型和授权策略,从调用请求中提取鉴权凭证。
基于鉴权凭证和订阅关系,对第一客户端进行鉴权,判断该调用请求是否为合法的调用请求,即是否具有请求调用目标中台微服务的权限。
第一客户端通过第一应用调用目标中台微服务。第二应用,指目标中台微服务对应的应用程序。目标中台微服务是拆分第二应用得到的。
目标中台微服务的订阅关系,包括订阅目标中台微服务的第一应用的信息。第一应用成功订阅目标中台微服务,即具有调用目标中台微服务的权限,运行第一应用的客户端发送的请求调用目标中台微服务的调用请求是合法的,鉴权通过。运行未订阅目标中台微服务的第三应用的客户端发送的请求调用目标中台微服务的调用请求是不合法的,鉴权不通过。
步骤103、在鉴权通过的情况下,基于目标中台微服务的协议类型,将调用请求转发至目标中台微服务的应用程序编程接口。
具体地,在鉴权通过的情况下,可以基于目标中台微服务的协议类型,通过该协议类型对应的网关,将该调用请求转发至目标中台微服务的应用程序编程接口(API,本发明各实施例中可以简称接口或端点),即授权第一客户端调用目标中台微服务。
中台微服务授权装置接收到调用请求之后,一方面验证能力消费方应用的合法性,另一方面针对此次调用进行二次服务签名后转发。
中台微服务授权装置转发调用请求的过程中,可以对该调用请求进行二次签名,将二次签名后的调用请求转发至目标中台微服务的应用程序编程接口。
可选地,进行二次签名可以包括基于用户ID二次签名,使得二次签名后的调用请求携带有用户ID。
本发明实施例基于调用请求携带的鉴权凭证,以及目标中台微服务的授权策略、协议类型和订阅关系,对第一客户端进行鉴权,能实现中台微服务共享场景下,对中台微服务的鉴权和授权,适用于中台微服务共享场景下的安全防护,尤其是能力建设方以及消费方分别来自不同承建商的复杂业务中台建设场景下的微服务共享。
基于上述任一实施例的内容,目标中台微服务的协议类型包括HTTP协议或TCP协议。
具体地,中台微服务授权装置可以支持多种通信协议。上述多种通信协议包括HTTP协议和TCP协议两类协议。
相应地,中台微服务授权装置可以根据不同接口协议类型拆分成多种类型的网关。中台微服务授权装置可以包括HTTP网关和TCP网关。HTTP网关用于对HTTP类型的流量进行授权,TCP网关则用于对TCP类型的流量进行授权。TCP网关是本发明实施例中增加的网关。
在目标中台微服务的协议类型为HTTP协议的情况下,调用请求携带的鉴权凭证,可以包括第一应用ID(app-id)、时间戳(timestamp)以及签名(sign)三个参数。
时间戳为第一应用发起调用时的当前时间戳。第一应用ID为第一应用的ID。
可选地,签名可以是基于第一应用ID、上述时间戳和第二应用ID生成的。第二应用ID为第二应用的ID。
示例性地,签名的生成步骤包括:将第一应用ID、上述时间戳和第二应用ID用逗号连接后,再经MD5码加密转成16进制大写字符串,作为签名。
可选地,鉴权凭证还可以包括用户ID。用户ID可以从代用请求携带的jwt token中提取。
在目标中台微服务的协议类型为TCP协议的情况下,调用请求携带的鉴权凭证,可以包括第一应用ID。
可选地,鉴权凭证还可以包括第二应用的ID和目标中台微服务的ID。
可选地,鉴权凭证还可以包括用户证书。
本发明实施例通过支持TCP协议,能实现对基于TCP协议的中台微服务进行鉴权和授权,能解决对基于TCP协议的SOCKET长连接进行集中管控的技术难题。
基于上述任一实施例的内容,目标中台微服务的授权策略包括应用鉴权、用户鉴权或平台鉴权。
具体地,如图3所示,本发明实施例至少支持应用鉴权、用户鉴权以及平台鉴权三种可自由组合的鉴权模式,灵活适应不同等级的安全共享要求,支持同一微服务被多客户端同时调用。
应用鉴权,指将第一应用作为鉴权对象。相应地,鉴权凭证包括第一应用的证书(或第一ID)和第二应用的签名(即第二应用的密钥)。
应用的证书指TCP协议下中台微服务授权装置使用CA证书签发给应用的数字证书,代表应用的身份,作为应用的标识信息。
应用ID指HTTP协议下中台微服务授权装置颁发给第二应用的唯一标识。
所述应用签名(密钥)是中台微服务授权装置颁发给注册应用的唯一应用密钥,不对外公开。
用户鉴权,指将第一客户端作为鉴权对象。鉴权凭证包括用户证书。示例性地,用户证书可以为jwt token。其中,jwt token是通过jwt协议对用户信息进行加密封装,作为用户的标识信息。
上述所有鉴权凭证信息传输过程中都经过加密处理(可选的,支持对称加密和非对称加密),安全性高。
平台鉴权,指中台微服务授权装置默认任一调用请求的鉴权结果均为鉴权通过,不对调用请求做处理而直接透传至提供目标中台微服务的电子设备,将具体的鉴权过程交予该电子设备处理。平台鉴权,特别适合于纯前端页面调用的场景,防止因将鉴权凭证信息加载到前端而引起非法破解。
本发明实施例通过至少支持应用鉴权、用户鉴权以及平台鉴权三种可自由组合的鉴权模式,能更灵活地适应不同等级的安全共享要求。
基于上述任一实施例的内容,基于调用请求携带的鉴权凭证,以及目标中台微服务的授权策略、协议类型和订阅关系,对第一客户端进行鉴权,具体包括:在目标中台微服务的协议类型为TCP协议的情况下,根据目标中台微服务的授权策略,基于安全传输层协议和服务器名称指示,获取调用请求携带的鉴权凭证;基于鉴权凭证和目标中台微服务的订阅关系,对第一客户端进行鉴权。
具体地,在目标中台微服务的协议类型为TCP协议的情况下,中台微服务授权装置可以在原始的TCP连接之上增加一层TLS(Transport Layer Security Protocol,安全传输层协议)安全防护,,在TLS握手阶段验证颁发给应用的客户端证书的真实性,并提取证书中携带的应用ID,随后通过查询订阅关系进行二次过滤。
进一步的,通过引入SNI(Server Name Indication,服务器名称指示)技术,在TLS握手阶段提交请求的Host信息中添加所调用的应用ID以及服务ID信息,TCP网关通过提取上述信息实现路由功能。在目标中台微服务的授权策略为用户鉴权的情况下,则可以在Host信息中添加jwt token信息。并且,可以通过控制连接数的方式实现流控。
如图4所示,TLS机制可以通过两种方式实施:第一种是通过修改第一客户端侧的代码,增加第一客户端对TLS的支持,即增加安全传输相关的代码,实现安全套接字;第二种是添加本地TLS代理(如图4中的Envoy)的方式,不用修改第一客户端侧的代码,只是将连接请求委托给代理转发。
本发明实施例通过引入TLS+SNI安全防控技术,能通过校验TLS握手阶段客户端携带的证书以及SNI信息达到鉴权和路由目的,能解决对基于TCP协议的SOCKET长连接进行集中管控的技术难题。
基于上述任一实施例的内容,接收第一客户端发送的请求调用目标中台微服务的调用请求之前,方法还包括:接收提供目标中台微服务的电子设备发送的注册请求。
其中,注册请求携带有目标中台微服务的授权策略和协议类型。
具体地,步骤101之前,中台微服务授权装置可以执行目标中台微服务的注册步骤。
用户可以通过提供目标中台微服务的电子设备向中台微服务授权装置发送注册请求,请求新增一个中台微服务,即目标中台微服务。
响应于注册请求,向电子设备发送目标密钥,并发布目标中台微服务的接口信息。
其中,接口信息包括目标中台微服务的授权策略、协议类型和对应的标识。
具体地,中台微服务授权装置接收注册请求之后,在注册成功的情况下,可以分配第二应用的ID(即标识)和密钥。第二应用的ID,即目标中台微服务对应的标识。
分配第二应用的密钥之后,可以将第二应用的密钥作为目标密钥,向提供目标中台微服务的电子设备返回目标密钥。
分配第二应用的密钥之后,可以分布目标中台微服务的接口信息。
目标中台微服务的接口信息,可以包括目标中台微服务归属的应用、API名称、专业类型、授权策略和协议类型等。
如图5所示,目标中台微服务的注册过程可以包括以下步骤:
步骤501、登录平台,完成应用信息登记和创建。
用户登录中台微服务授权装置上的目标平台后,新增一个应用,即第二应用。
可选的,在界面输入应用唯一名称、应用中文名称、应用描述、开放商、联系人、联系人电话、联系人邮箱、归属域信息。
步骤502、申请应用上线,完成管理员审核后,获得应用ID和密钥。
完成信息录入后即可提交上线申请,触发审批流程。管理员审核通过后,目标平台会自动分配应用ID和密钥。其中,可选的,应用ID是系统随机生成的32位UUID(UniversallyUnique Identifier,通用唯一识别码)。可选的,密钥是通过AES加密的随机字符串。两者都可以保证全局唯一性。应用ID以及密钥作为应用的合法身份凭证,可以据此消费已成功订阅的微服务。
步骤503、注册并发布API信息,确定协议类型以及授权策略。
本发明实施例通过响应于注册请求,向电子设备发送目标密钥,并发布目标中台微服务的接口信息,规范发布和消费操作,将原先需要通过增加复杂配置和鉴权的微服务的工作进行拆解,一方面利用请求携带的应用证书(ID)和应用签名(密钥)作为鉴权凭证进行身份核实,另一方面利用订阅关系进行权限控制,能简化鉴权流程。
基于上述任一实施例的内容,响应于注册请求,发布目标中台微服务的接口信息之后,方法还包括:接收第二客户端发送的订阅请求。
其中,订阅请求,用于订阅目标中台微服务。
具体地,目标中台微服务发布之后,中台微服务授权装置可以执行目标中台微服务的注册步骤。
第二客户端可以先执行注册第三应用的步骤。第三应用,指第二客户端运行的用于调用目标中台微服务的应用程序。注册第三应用的步骤,与注册第二应用的步骤类似,此处不再赘述。
第二客户端可以基于目标中台微服务的接口信息,向中台微服务授权装置发送订阅请求。订阅请求可以携带有第三应用的ID。
可以理解的是,第一客户端也可以作为第二客户端,订阅目标中台微服务。相应地,第三应用为第一应用。
可选地,订阅请求可以携带有订阅生效的周期。
响应于订阅请求,更新目标中台微服务的订阅关系。
具体地,中台微服务授权装置接收注册请求之后,可以更新目标中台微服务的订阅关系,将第三应用的ID添加至目标中台微服务的允许列表中。
本发明实施例通过响应于订阅请求,更新目标中台微服务的订阅关系,规范发布和消费操作,将原先需要通过增加复杂配置和鉴权的微服务的工作进行拆解,一方面利用请求携带的应用证书(ID)和应用签名(密钥)作为鉴权凭证进行身份核实,另一方面利用订阅关系进行权限控制,能简化鉴权流程。
基于上述任一实施例的内容,在鉴权通过的情况下,基于目标中台微服务的协议类型,将调用请求转发至目标中台微服务的应用程序编程接口之后,方法还包括:将目标中台微服务的应用程序编程接口返回的调用请求的响应数据,转发至第一客户端。
其中,响应数据,是提供目标中台微服务的电子设备,在确定鉴权凭证合法的情况下生成的。
具体地,提供目标中台微服务的电子设备(可以称为服务端)可以中台微服务授权装置转发的调用请求再次进行校验。
目标中台微服务的电子设备,可以根据第二应用的密钥验证调用请求携带的鉴权凭证的合法性。
校验通过之后,可以执行目标中台微服务,通过中台微服务授权装置向第一客户端返回该调用请求的响应数据;校验不通过,则不执行目标中台微服务,可以通过中台微服务授权装置向第一客户端返回调用失败或无权限调用的结果,或不返回结果。
可选地,在鉴权通过之后,在目标中台微服务的协议类型为TCP协议的情况下,中台微服务授权装置为该调用请求新增相应的TCP透传通道(如图6所示)。该透传通道,用于第一客户端与目标中台微服务的应用程序编程接口之间的数据传输。因而,该调用请求也可以通过该透传通道传输至目标中台微服务的应用程序编程接口。
在目标中台微服务的协议类型为TCP协议的情况下,响应数据可以直接通过该透传通道返回第一客户端。
本发明实施例通过提供目标中台微服务的电子设备对调用请求进行二次校验,能进一步提高中台微服务授权的安全性。
为了便于对本发明上述各实施例的理解,下面对中台微服务授权的完整过程进行说明。如图7所示,中台微服务授权的过程可以包括以下步骤:
步骤701、能力提供方注册第二应用,发布目标中台微服务,确定目标中台微服务的协议类型以及授权策略。
步骤702、能力消费方注册第一应用,订阅目标中台微服务。
步骤703、能力消费方根据目标中台微服务的协议类型和授权策略,通过中台微服务授权装置访问中台微服务。
步骤704、中台微服务授权装置根据订阅关系、协议类型以及授权策略校验请求的合法性并进行路由转发。
步骤705、能力提供方根据授权策略进行服务端二次校验,通过后返回响应数据。
如图8所示,步骤704可以包括以下步骤:
步骤801、网关服务判断调用请求的协议类型。
中台微服务授权装置的网关服务判断调用请求的协议类型的过程如图9所示。
可选的,通过前置Nginx将请求流量按照协议类型进行分流,通过微服务网关对HTTP类型流量进行授权,TCP网关则负责对TCP类型流量授权。
优选地,在Nginx侧通过端口号区分协议类型。
可选地,将TCP网关以及HTTP网关部署在K8S容器集群内,利用Istio IngressGateway将流量按照协议类型进行分配。
通过引入不同协议的网关,利用前置装置将请求流量按照协议类型进行分流,可以实现对两种协议类型的自动识别。
步骤802、调用请求为TCP协议时,网关服务在TLS首次握手是验证证书和SNI;调用请求为HTTP协议时,网关服务将根据授权策略的不同,对第一客户端进行鉴权。
当调用请求为TCP协议时,应用端在首次与网关服务进行TLS握手时,网关服务对证书进行认证,认证通过后,再从SNI上下文中获取到目标服务端服务的信息,并根据这些信息对这次调用进行鉴权和路由。
当调用请求为HTTP协议时,网关服务将根据调用的共享能力的授权模式的不同,分别完成对第一客户端的鉴权。
步骤803、网关服务处理鉴权结果。
当鉴权失败时,网关服务立即返回请求不成功消息给第一客户端。当鉴权成功后,网关服务会为TCP协议的调用请求新增相应的TCP透传通道,后续的数据传输则不需要再次鉴权,因此第一客户端可通过TCP通道不断获取共享能力的响应数据;而对于HTTP协议的调用请求,网关服务会路由请求到目标微服务的接口。
图10示例了基于HTTP协议的中台微服务授权过程。
下面对本发明提供的中台微服务授权装置进行描述,下文描述的中台微服务授权装置与上文描述的中台微服务授权方法可相互对应参照。
图11是本发明提供的中台微服务授权装置的结构示意图之一。基于上述任一实施例的内容,如图11所示,中台微服务授权装置包括接收模块1101、授权模块1102和转发模块1103,其中:
接收模块1101,用于接收第一客户端发送的请求调用目标中台微服务的调用请求;
授权模块1102,用于基于调用请求携带的鉴权凭证,以及目标中台微服务的授权策略、协议类型和订阅关系,对第一客户端进行鉴权;
转发模块1103,用于在鉴权通过的情况下,基于目标中台微服务的协议类型,将调用请求转发至目标中台微服务的应用程序编程接口。
具体地,接收模块1101、授权模块1102和转发模块1103顺次电连接。
在第一客户端需要调用目标中台微服务的情况下,向中台微服务授权装置发送调用请求。该调用请求,为请求调用目标中台微服务的请求。
接收模块1101可以接收该调用请求。
授权模块1102可以基于鉴权凭证和订阅关系,对第一客户端进行鉴权,判断该调用请求是否为合法的调用请求,即是否具有请求调用目标中台微服务的权限。
转发模块1103在鉴权通过的情况下,可以基于目标中台微服务的协议类型,通过该协议类型对应的网关,将该调用请求转发至目标中台微服务的应用程序编程接口,即授权第一客户端调用目标中台微服务。
可选地,目标中台微服务的协议类型可以包括HTTP协议或TCP协议。
可选地,目标中台微服务的授权策略可以包括应用鉴权、用户鉴权或平台鉴权。
可选地,授权模块1102可以具体用于:
在目标中台微服务的协议类型为TCP协议的情况下,根据目标中台微服务的授权策略,基于安全传输层协议和服务器名称指示,获取调用请求携带的鉴权凭证;
基于鉴权凭证和目标中台微服务的订阅关系,对第一客户端进行鉴权。
可选地,中台微服务授权装置还可以包括:
注册模块,用于接收提供目标中台微服务的电子设备发送的注册请求;响应于注册请求,向电子设备发送目标密钥,并发布目标中台微服务的接口信息;
其中,注册请求携带有目标中台微服务的授权策略和协议类型;接口信息包括目标中台微服务的授权策略、协议类型和对应的标识。
可选地,中台微服务授权装置还可以包括:
订阅模块,用于接收第二客户端发送的订阅请求;响应于订阅请求,更新目标中台微服务的订阅关系。
其中,订阅请求,用于订阅目标中台微服务。
可选地,转发模块1103,可以还用于将目标中台微服务的应用程序编程接口返回的调用请求的响应数据,转发至第一客户端;
其中,响应数据,是提供目标中台微服务的电子设备,在确定鉴权凭证合法的情况下生成的。
图12是本发明提供的中台微服务授权装置的结构示意图之二。
接收模块1101、授权模块1102和转发模块1103组成的部分可以称为能力网关。
如图12所示,中台微服务授权装置还可以包括登记模块1204和存储模块1205。登记模块1204,分别与接收模块1101、授权模块1102和存储模块1205电连接。存储模块1205,还分别与授权模块1102和转发模块1103电连接。
接收模块1101,可以用于接收调用请求,提取调用请求携带的协议类型以及鉴权凭证,确定使用的鉴权模式(即授权策略)。可选的,基于端口区分不同协议类型并路由到不同的协议网关。
授权模块1102可以包括TCP鉴权单元1210与TCP鉴权单元1220。
授权模块1102包括:TCP鉴权单元1210与TCP鉴权单元1220。
TCP鉴权单元1210用于基于TCP协议的SOCKET长连接请求的鉴权:在TLS握手阶段验证客户端证书的有效性,并提取证书中携带的应用ID;通过引入SNI(Server NameIndication,服务器名称指示)技术,进行路由识别以及权限验证。
TCP鉴权单元1220用于基于HTTP协议请求的鉴权,通过对应用签名以及jwt token进行验证判断请求的合法性。进一步地,根据订阅关系判断是否有请求的权限。
转发模块1103包括:TCP转发单元1230与HTTP转发单元1240。
TCP转发单元1230用于对鉴权通过后基于TCP协议请求的转发。可选的,鉴权通过后,新增一条TCP透传通道到目标中台微服务,数据通过该通道进行传输。
HTTP转发单元1240用于对鉴权通过后基于HTTP协议请求的转发。可选地,鉴权通过后,将HTTP请求进行二次封装后转发到目标中台微服务的接口。
登记模块1204用于登记应用、微服务与API能力信息。同时处理上述三者之间的关联关系以及应用与API之间的订阅关系。进一步地,根据不同的鉴权策略关联鉴权参数信息(即鉴权凭证)。可选地,登记模块1204还用于颁发TCP协议下的客户端证书或者HTTP协议下的应用ID和密钥。
存储模块1205用于存储登记模块登记的相关信息,包括应用密钥信息以及CA根证书信息。
本发明实施例提供的中台微服务授权装置,用于执行本发明上述中台微服务授权方法,其实施方式与本发明提供的中台微服务授权方法的实施方式一致,且可以达到相同的有益效果,此处不再赘述。
该中台微服务授权装置用于前述各实施例的中台微服务授权方法。因此,在前述各实施例中的中台微服务授权方法中的描述和定义,可以用于本发明实施例中各执行模块的理解。
本发明实施例基于调用请求携带的鉴权凭证,以及目标中台微服务的授权策略、协议类型和订阅关系,对第一客户端进行鉴权,能实现中台微服务共享场景下,对中台微服务的鉴权和授权,适用于中台微服务共享场景下的安全防护,尤其是能力建设方以及消费方分别来自不同承建商的复杂业务中台建设场景下的微服务共享。
下面对本发明提供的电子设备及存储介质进行描述,下文描述的电子设备及存储介质与上文描述的中台微服务授权方法可相互对应参照。
图13示例了一种电子设备的实体结构示意图,如图13所示,该电子设备可以包括:处理器(processor)1310、通信接口(Communication Interface)1320、存储器(memory)1330和通信总线1340,其中,处理器1310,通信接口1320,存储器1330通过通信总线1340完成相互间的通信。处理器1310可以调用存储器1330中的计算机程序,以执行中台微服务授权方法的步骤,例如包括:接收第一客户端发送的请求调用目标中台微服务的调用请求;基于调用请求携带的鉴权凭证,以及目标中台微服务的授权策略、协议类型和订阅关系,对第一客户端进行鉴权;在鉴权通过的情况下,基于目标中台微服务的协议类型,将调用请求转发至目标中台微服务的应用程序编程接口。
此外,上述的存储器1330中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,RandomAccessMemory)、磁碟或者光盘等各种可以存储程序代码的介质。
另一方面,本发明还提供一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法所提供的中台微服务授权方法的步骤,例如包括:接收第一客户端发送的请求调用目标中台微服务的调用请求;基于调用请求携带的鉴权凭证,以及目标中台微服务的授权策略、协议类型和订阅关系,对第一客户端进行鉴权;在鉴权通过的情况下,基于目标中台微服务的协议类型,将调用请求转发至目标中台微服务的应用程序编程接口。
另一方面,本申请实施例还提供一种处理器可读存储介质,所述处理器可读存储介质存储有计算机程序,所述计算机程序用于使所述处理器执行上述各实施例提供的方法的步骤,例如包括:接收第一客户端发送的请求调用目标中台微服务的调用请求;基于调用请求携带的鉴权凭证,以及目标中台微服务的授权策略、协议类型和订阅关系,对第一客户端进行鉴权;在鉴权通过的情况下,基于目标中台微服务的协议类型,将调用请求转发至目标中台微服务的应用程序编程接口。
所述处理器可读存储介质可以是处理器能够存取的任何可用介质或数据存储设备,包括但不限于磁性存储器(例如软盘、硬盘、磁带、磁光盘(MO)等)、光学存储器(例如CD、DVD、BD、HVD等)、以及半导体存储器(例如ROM、EPROM、EEPROM、非易失性存储器(NANDFLASH)、固态硬盘(SSD))等。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (10)
1.一种中台微服务授权方法,其特征在于,包括:
接收第一客户端发送的请求调用目标中台微服务的调用请求;
基于所述调用请求携带的鉴权凭证,以及所述目标中台微服务的授权策略、协议类型和订阅关系,对所述第一客户端进行鉴权;
在鉴权通过的情况下,基于所述目标中台微服务的协议类型,将所述调用请求转发至所述目标中台微服务的应用程序编程接口。
2.根据权利要求1所述的中台微服务授权方法,其特征在于,所述目标中台微服务的协议类型包括HTTP协议或TCP协议。
3.根据权利要求1所述的中台微服务授权方法,其特征在于,所述目标中台微服务的授权策略包括应用鉴权、用户鉴权或平台鉴权。
4.根据权利要求2所述的中台微服务授权方法,其特征在于,所述基于所述调用请求携带的鉴权凭证,以及所述目标中台微服务的授权策略、协议类型和订阅关系,对所述第一客户端进行鉴权,具体包括:
在所述目标中台微服务的协议类型为TCP协议的情况下,根据所述目标中台微服务的授权策略,基于安全传输层协议和服务器名称指示,获取所述调用请求携带的鉴权凭证;
基于所述鉴权凭证和所述目标中台微服务的订阅关系,对所述第一客户端进行鉴权。
5.根据权利要求1所述的中台微服务授权方法,其特征在于,所述接收第一客户端发送的请求调用目标中台微服务的调用请求之前,所述方法还包括:
接收提供所述目标中台微服务的电子设备发送的注册请求;
响应于所述注册请求,向所述电子设备发送目标密钥,并发布所述目标中台微服务的接口信息;
其中,所述注册请求携带有所述目标中台微服务的授权策略和协议类型;所述接口信息包括所述目标中台微服务的授权策略、协议类型和对应的标识。
6.根据权利要求5所述的中台微服务授权方法,其特征在于,所述响应于所述注册请求,发布所述目标中台微服务的接口信息之后,所述方法还包括:
接收第二客户端发送的订阅请求;
响应于所述订阅请求,更新所述目标中台微服务的订阅关系;
其中,所述订阅请求,用于订阅所述目标中台微服务。
7.根据权利要求1至6任一所述的中台微服务授权方法,其特征在于,所述在鉴权通过的情况下,基于所述目标中台微服务的协议类型,将所述调用请求转发至所述目标中台微服务的应用程序编程接口之后,所述方法还包括:
将所述目标中台微服务的应用程序编程接口返回的所述调用请求的响应数据,转发至所述第一客户端;
其中,所述响应数据,是提供所述目标中台微服务的电子设备,在确定所述鉴权凭证合法的情况下生成的。
8.一种中台微服务授权装置,其特征在于,包括:
接收模块,用于接收第一客户端发送的请求调用目标中台微服务的调用请求;
授权模块,用于基于所述调用请求携带的鉴权凭证,以及所述目标中台微服务的授权策略、协议类型和订阅关系,对所述第一客户端进行鉴权;
转发模块,用于在鉴权通过的情况下,基于所述目标中台微服务的协议类型,将所述调用请求转发至所述目标中台微服务的应用程序编程接口。
9.一种电子设备,包括处理器和存储有计算机程序的存储器,其特征在于,所述处理器执行所述计算机程序时实现根据权利要求1至7任一项所述中台微服务授权方法的步骤。
10.一种处理器可读存储介质,其特征在于,所述处理器可读存储介质存储有计算机程序,所述计算机程序用于使所述处理器执行根据权利要求1至7任一项所述中台微服务授权方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111124349.2A CN115865384A (zh) | 2021-09-24 | 2021-09-24 | 中台微服务授权方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111124349.2A CN115865384A (zh) | 2021-09-24 | 2021-09-24 | 中台微服务授权方法、装置、电子设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115865384A true CN115865384A (zh) | 2023-03-28 |
Family
ID=85652828
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111124349.2A Pending CN115865384A (zh) | 2021-09-24 | 2021-09-24 | 中台微服务授权方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115865384A (zh) |
-
2021
- 2021-09-24 CN CN202111124349.2A patent/CN115865384A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11038682B2 (en) | Communication method, apparatus and system, electronic device, and computer readable storage medium | |
US9621355B1 (en) | Securely authorizing client applications on devices to hosted services | |
US10027670B2 (en) | Distributed authentication | |
JP5944501B2 (ja) | ピアツーピアオーバーレイネットワーク内のデータオブジェクトに対するグループアクセス制御の容易化 | |
CN106034104B (zh) | 用于网络应用访问的验证方法、装置和系统 | |
CN110770695A (zh) | 物联网(iot)设备管理 | |
US20130227646A1 (en) | Methods and apparatus for large scale distribution of electronic access clients | |
US9608971B2 (en) | Method and apparatus for using a bootstrapping protocol to secure communication between a terminal and cooperating servers | |
CN110569638B (zh) | 一种api认证的方法、装置、存储介质及计算设备 | |
WO2019178942A1 (zh) | 一种进行ssl握手的方法和系统 | |
US8566581B2 (en) | Secure inter-process communications | |
US9998287B2 (en) | Secure authentication of remote equipment | |
RU2685975C2 (ru) | Обеспечение безопасности связи с расширенными мультимедийными платформами | |
CN107040501B (zh) | 基于平台即服务的认证方法和装置 | |
US8650392B2 (en) | Ticket authorization | |
TWI469655B (zh) | 電子存取用戶端之大規模散佈之方法及裝置 | |
KR20220002455A (ko) | Some/ip 통신 프로토콜을 사용하여 차량 내 데이터 또는 메시지들 전송 개선 | |
CN113678410A (zh) | 提供连接租赁交换和相互信任协议的计算系统和相关方法 | |
WO2016000473A1 (zh) | 一种业务访问方法、系统及装置 | |
CN115996381B (zh) | 一种无线专网的网络安全管控方法、系统、装置及介质 | |
US11171786B1 (en) | Chained trusted platform modules (TPMs) as a secure bus for pre-placement of device capabilities | |
CN115865384A (zh) | 中台微服务授权方法、装置、电子设备及存储介质 | |
US11611541B2 (en) | Secure method to replicate on-premise secrets in a cloud environment | |
US20230370456A1 (en) | Systems, methods, and storage media for controlling user access to an application | |
CN116760595A (zh) | 访问方法、计算设备及计算机存储介质 |
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 |