CN113065120B - 接口调用鉴权方法、装置、电子设备及可读存储介质 - Google Patents
接口调用鉴权方法、装置、电子设备及可读存储介质 Download PDFInfo
- Publication number
- CN113065120B CN113065120B CN202110350302.1A CN202110350302A CN113065120B CN 113065120 B CN113065120 B CN 113065120B CN 202110350302 A CN202110350302 A CN 202110350302A CN 113065120 B CN113065120 B CN 113065120B
- Authority
- CN
- China
- Prior art keywords
- micro
- service
- accessible
- feature
- interface
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/44—Program or device authentication
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/547—Remote procedure calls [RPC]; Web services
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Telephonic Communication Services (AREA)
Abstract
本申请提供了一种接口调用鉴权方法、装置、电子设备及可读存储介质。所述方法包括:接收微服务调用方发送的调用请求,调用请求用于请求调用所述微服务提供方的目标接口,调用请求中携带所述微服务调用方的特征;验证微服务调用方的特征是否与预设的可访问特征匹配,可访问特征与目标接口对应;在匹配时,确定微服务调用方具备调用目标接口的权限。通过该方法,当微服务调用方想要调用微服务提供方的任意一个接口时,微服务提供方均可以将微服务调用方的自有特征与该接口对应的可访问特征比较以确定微服务调用方是否具备调用目标接口的权限,从而将接口鉴权的粒度细化到了每一个接口,大幅提升了微服务应用之间进行接口调用的安全性。
Description
技术领域
本发明涉及数据处理技术领域,特别是涉及一种接口调用鉴权方法、装置、电子设备及可读存储介质。
背景技术
微服务间通过接口互相调用时,为保证调用安全(指被调接口需要某种机制来认证调用者是否可信),通常需要对调用者进行鉴权。相关技术中有两种鉴权方案,一种是基于token(令牌)的方法,例如Oauth(一种开放协议,为用户资源的授权提供了安全的、开放而简易的标准)或JWT(Json web token,是为了在网络应用环境间传递声明而执行的一种基于JSON的开放标准)等,这类方法将token当作钥匙,只要调用者有合法的token就允许其调用接口,如果两个接口使用同一个token,这时因为某种原因需要禁止其中一个接口的访问,该方案则无法实现,导致安全性较差。第二种方案是设置黑白名单,黑名单中的接口禁止访问,白名单中的接口允许访问。名单中的参数通常是IP地址、服务名等,从参数可以看出,这种方法通常是服务间的鉴权,假设白名单中设置了一个服务的IP地址,意味着此IP地址下所有的接口都可以访问,因此仍然存在较大的安全隐患。因此,如何更好地对调用者进行鉴权,保障微服务应用之间进行接口调用的安全性,成为亟待解决的问题。
发明内容
本申请提供了一种接口调用鉴权方法、装置、电子设备及可读存储介质,可以。
本申请第一方面提供了一种接口调用鉴权方法,应用于微服务系统内的微服务提供方,所述方法包括:
接收微服务调用方发送的调用请求,所述调用请求用于请求调用所述微服务提供方的目标接口,所述调用请求中携带所述微服务调用方的特征;
验证所述微服务调用方的特征是否与预设的可访问特征匹配,所述可访问特征与所述目标接口对应;
在匹配时,确定所述微服务调用方具备调用所述目标接口的权限。
可选地,所述可访问特征包括第一类可访问特征和第二类可访问特征;验证所述微服务调用方的特征是否与预设的可访问特征匹配,包括:
在所述微服务调用方为微服务系统内的应用时,验证所述微服务调用方的特征是否与第一类可访问特征匹配;
在所述微服务调用方为微服务系统外的应用时,验证所述微服务调用方的特征是否与第二类可访问特征匹配。
可选地,验证所述微服务调用方的特征是否与预设的可访问特征匹配,所述可访问特征与所述目标接口对应,包括:
通过所述微服务提供方内部署的特征处理程序验证所述微服务调用方的特征是否与预设的可访问特征匹配;或
将所述微服务调用方的特征发送到第三方验证系统,以使所述第三方验证系统验证所述微服务调用方的特征是否与预设的可访问特征匹配。
可选地,验证所述微服务调用方的特征是否与预设的可访问特征匹配,所述可访问特征与所述目标接口对应,包括:
获得预先存储的与所述目标接口对应的可访问特征白名单;
在所述微服务调用方的特征中的至少一个记载在所述可访问特征白名单内时,确定所述微服务调用方的特征与预设的可访问特征匹配;
在所述微服务调用方的特征均未记载在所述可访问特征白名单内时,确定所述微服务调用方的特征与预设的可访问特征不匹配。
可选地,验证所述微服务调用方的特征是否与预设的可访问特征匹配,所述可访问特征与所述目标接口对应,包括:
获得预先存储的与所述目标接口对应的可访问特征黑名单;
在所述微服务调用方的特征存在至少一个未记载在所述可访问特征黑名单内时,确定所述微服务调用方的特征与预设的可访问特征匹配;
在所述微服务调用方的特征均记载在所述可访问特征黑名单内时,确定所述微服务调用方的特征与预设的可访问特征不匹配。
可选地,所述方法还包括:
从特征中心获取最新的可访问特征,利用所述最新的可访问特征更新本地存储的可访问特征;
从特征中心获取最新的微服务提供方的特征,利用所述最新的微服务提供方的特征更新本地存储的微服务提供方的特征;
其中,所述可访问特征用于验证微服务调用方是否具备调用所述目标接口的权限,所述微服务提供方的特征是所述微服务提供方请求调用微服务系统内除所述微服务提供方外的其它微服务应用时携带的特征。
本申请第二方面提供了一种接口调用鉴权装置,应用于微服务系统内的微服务提供方,所述装置包括:
接收模块,用于接收微服务调用方发送的调用请求,所述调用请求用于请求调用所述微服务提供方的目标接口,所述调用请求中携带所述微服务调用方的特征;
验证模块,用于验证所述微服务调用方的特征是否与预设的可访问特征匹配,所述可访问特征与所述目标接口对应;
确定模块,用于在匹配时,确定所述微服务调用方具备调用所述目标接口的权限。
可选地,所述验证模块包括:
第一验证子模块,用于在所述微服务调用方为微服务系统内的应用时,验证所述微服务调用方的特征是否与第一类可访问特征匹配;
第二验证子模块,用于在所述微服务调用方为微服务系统外的应用时,验证所述微服务调用方的特征是否与第二类可访问特征匹配。
可选地,所述验证模块包括:
第三验证子模块,用于通过所述微服务提供方内部署的特征处理程序验证所述微服务调用方的特征是否与预设的可访问特征匹配;或
第四验证子模块,用于将所述微服务调用方的特征发送到第三方验证系统,以使所述第三方验证系统验证所述微服务调用方的特征是否与预设的可访问特征匹配。
可选地,所述验证模块包括:
第一获得子模块,用于获得预先存储的与所述目标接口对应的可访问特征白名单;
第一确定子模块,用于在所述微服务调用方的特征中的至少一个记载在所述可访问特征白名单内时,确定所述微服务调用方的特征与预设的可访问特征匹配;
第二确定子模块,用于在所述微服务调用方的特征均未记载在所述可访问特征白名单内时,确定所述微服务调用方的特征与预设的可访问特征不匹配。
可选地,所述验证模块包括:
第二获得子模块,用于获得预先存储的与所述目标接口对应的可访问特征黑名单;
第三确定子模块,用于在所述微服务调用方的特征存在至少一个未记载在所述可访问特征黑名单内时,确定所述微服务调用方的特征与预设的可访问特征匹配;
第四确定子模块,用于在所述微服务调用方的特征均记载在所述可访问特征黑名单内时,确定所述微服务调用方的特征与预设的可访问特征不匹配。
可选地,所述装置还包括:
第一更新模块,用于从特征中心获取最新的可访问特征,利用所述最新的可访问特征更新本地存储的可访问特征;
第二更新模块,用于从特征中心获取最新的微服务提供方的特征,利用所述最新的微服务提供方的特征更新本地存储的微服务提供方的特征;
其中,所述可访问特征用于验证微服务调用方是否具备调用所述目标接口的权限,所述微服务提供方的特征是所述微服务提供方请求调用微服务系统内除所述微服务提供方外的其它微服务应用时携带的特征。
本申请第三方面提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行时实现本申请第一方面所述的接口调用鉴权方法的步骤。
本申请第四方面提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本申请第一方面所述的接口调用鉴权方法中的步骤。
通过本申请的接口调用鉴权方法,微服务提供方首先接收微服务调用方发送的调用请求,该调用请求用于请求调用微服务提供方的目标接口,调用请求中携带微服务调用方的特征。接着,验证微服务调用方的特征是否与预设的可访问特征匹配,可访问特征与目标接口对应,并在匹配时,确定微服务调用方具备调用目标接口的权限。本实施例中,微服务提供方为每一个接口设置有对应的可访问特征,当微服务调用方想要调用微服务提供方的任意一个接口时,微服务提供方均可以将微服务调用方的自有特征与该接口对应的可访问特征比较以确定微服务调用方是否具备调用目标接口的权限,从而将接口鉴权的粒度细化到了每一个接口,大幅提升了微服务应用之间进行接口调用的安全性。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本申请一实施例示出的一种实施环境示意图;
图2是本申请一实施例示出的一种接口调用鉴权方法的流程图;
图3是本申请一实施例示出的一种接口调用鉴权方法的示意图;
图4是本申请一实施例示出的一种接口调用鉴权装置的结构框图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
图1是本申请一实施例示出的一种实施环境示意图。在图1中,微服务系统内设置有多个微服务应用(包括:微服务应用1-微服务应用N),这些微服务应用之间可以通过接口互相调用(例如微服务应用1可以通过自身的接口M调用微服务应用2的接口N)。每一个微服务应用既可以提供微服务,也可以调用其它微服务应用提供的微服务,因此每一个微服务应用既可以是微服务提供方,也可以是微服务调用方。示例地,微服务应用1调用微服务应用2提供的微服务时,微服务应用1为微服务调用方,微服务应用2为微服务提供方。同理,微服务应用2调用微服务应用1提供的微服务时,微服务应用2为微服务调用方,微服务应用1为微服务提供方。
本申请提供的接口调用鉴权方法可以应用于图1中的微服务提供方。图2是本申请一实施例示出的一种接口调用鉴权方法的流程图。参照图2,本申请的接口调用鉴权方法可以包括如下步骤:
步骤S21:接收微服务调用方发送的调用请求,所述调用请求用于请求调用所述微服务提供方的目标接口,所述调用请求中携带所述微服务调用方的特征。
在本实施例中,当微服务调用方想要调用微服务提供方的某个API(ApplicationProgramming Interface,应用程序接口)时(以下简称:目标接口),微服务调用方可以向微服务提供方发送调用请求,例如可以向微服务提供方的目标接口发送调用请求。
微服务调用方的每一个API都具有对应的自有特征。调用请求中携带的微服务调用方的特征主要是指微服务调用方当前使用的接口的自有特征(当前使用的接口所具备的特征)。自有特征可以理解为标签,该标签可以由用户任意设置,例如地址、服务类型、访问次数限制、是否携带关键词等,本实施例对自有特征的类型不作具体限制。
示例地,微服务调用方通过接口A调用微服务提供方的接口B,那么微服务调用方获得接口A的自有特征,将这些自有特征作为微服务调用方的特征携带在调用请求中。
步骤S22:验证所述微服务调用方的特征是否与预设的可访问特征匹配,所述可访问特征与所述目标接口对应。
在本实施例中,微服务提供方的每一个API都具有对应的可访问特征,微服务提供方可以预先将每一个API对应的可访问特征存储到本地。可访问特征用于在微服务调用方请求调用微服务提供方的某个API时,验证微服务调用方是否具备调用该API的权限。一般地,如果可访问特征包含调用请求的至少一个自有特征,可以确定微服务调用方的自有特征与可访问特征匹配,反之,如果可访问特征不包含调用请求的任意一个自有特征,可以确定微服务调用方的自有特征与可访问特征不匹配。
步骤S23:在匹配时,确定所述微服务调用方具备调用所述目标接口的权限。
在本实施例中,在微服务调用方的自有特征与可访问特征匹配时,可以确定微服务调用方具备调用目标接口的权限。微服务提供方可以向微服务调用方返回响应消息,以提示微服务调用方可以调用微服务提供方的目标接口。
在本实施例中,微服务提供方首先接收微服务调用方发送的调用请求,该调用请求用于请求调用微服务提供方的目标接口,调用请求中携带微服务调用方的特征。接着,验证微服务调用方的特征是否与预设的可访问特征匹配,可访问特征与目标接口对应,并在匹配时,确定微服务调用方具备调用目标接口的权限。本实施例中,微服务提供方为每一个接口设置有对应的可访问特征,当微服务调用方想要调用微服务提供方的任意一个接口时,微服务提供方均可以将微服务调用方的自有特征与该接口对应的可访问特征比较以确定微服务调用方是否具备调用目标接口的权限,从而将接口鉴权的粒度细化到了每一个接口,大幅提升了微服务应用之间进行接口调用的安全性。
结合以上实施例,在一种实施方式中,所述可访问特征可以包括第一类可访问特征和第二类可访问特征,其中第一类特征用于对微服务系统内的微服务调用方进行鉴权,第二类特征用于对微服务系统外的微服务调用方进行鉴权。在此基础上,步骤S22可以包括:
在所述微服务调用方为微服务系统内的应用时,验证所述微服务调用方的特征是否与第一类可访问特征匹配。
在所述微服务调用方为微服务系统外的应用时,验证所述微服务调用方的特征是否与第二类可访问特征匹配。
在本实施例中,微服务提供方的每一个接口对应的可访问特征可以划分为两类:第一类可访问特征和第二类可访问特征。由于微服务系统外的应用不受微服务系统的控制,因此,微服务系统外的应用在发起调用请求时携带的自有特征,与微服务系统内的应用在发起调用请求时携带的自有特征不同,相应地,对微服务系统外的应用进行接口调用鉴权时使用的可访问特征,与对微服务系统内的应用进行接口调用鉴权时使用的可访问特征不同,即第二类可访问特征不同于第一类可访问特征。
微服务提供方在接收到调用请求后,检测微服务调用方所属的应用类型,如果微服务调用方是微服务系统内的微服务应用,那么微服务提供方验证微服务调用方的特征是否与第一类可访问特征匹配。一般地,如果第一类可访问特征包含调用请求的至少一个自有特征,可以确定微服务调用方的自有特征与第一类可访问特征匹配,此时微服务调用方具备调用目标接口的权限,反之,如果第一类可访问特征不包含调用请求的任意一个自有特征,可以确定微服务调用方的自有特征与第一类可访问特征不匹配,此时微服务调用方不具备调用目标接口的权限。
如果微服务调用方是微服务系统外的微服务应用,那么微服务提供方验证微服务调用方的特征是否与第二类可访问特征匹配。一般地,如果第二类可访问特征包含调用请求的至少一个自有特征,可以确定微服务调用方的自有特征与第二类可访问特征匹配,此时微服务调用方具备调用目标接口的权限,反之,如果第二类可访问特征不包含调用请求的任意一个自有特征,可以确定微服务调用方的自有特征与第二类可访问特征不匹配,此时微服务调用方不具备调用目标接口的权限。
本实施例中,微服务提供方既可以支持系统内微服务应用的接口调用,也可以支持系统外应用的接口调用,提升了接口调用鉴权的灵活性和适用范围,提升了微服务应用之间进行接口调用的安全性。
结合以上实施例,在一种实施方式中,验证所述微服务调用方的特征是否与预设的可访问特征匹配,所述可访问特征与所述目标接口对应,可以包括如下步骤:
通过所述微服务提供方内部署的特征处理程序验证所述微服务调用方的特征是否与预设的可访问特征匹配;或
将所述微服务调用方的特征发送到第三方验证系统,以使所述第三方验证系统验证所述微服务调用方的特征是否与预设的可访问特征匹配。
在本实施例中,可以在微服务提供方内部署特征处理程序,如此,当微服务提供方接收到调用请求后,可以直接通过特征处理程序验证微服务调用方的自有特征是否与可访问特征匹配。
在一种实施场景中,微服务系统内部微服务应用数量较多时,如果在每一个微服务应用中部署特征处理程序,不仅部署成本高且工作量较大。在此情况下,还可以在微服务系统内部设置至少一个第三方验证系统,微服务提供方接收到调用请求后,可以将可访问特征和微服务调用方的自有特征发送到第三方验证系统,由第三方验证系统验证微服务调用方的自有特征是否与可访问特征匹配。当然,第三方验证系统还可以预先存储各个微服务应用的可访问特征,如此,微服务提供方接收到调用请求后,可以只将微服务调用方的自有特征发送到第三方验证系统,由第三方验证系统验证微服务调用方的自有特征是否与可访问特征匹配。
其中,第三方验证系统可以采用SDK(Software Development Kit,软件开发工具包),也可以采用其它代理系统,本实施例对第三方验证系统的部署类型不作具体限制。
在本实施例中,第三方验证系统也可以支持对微服务系统内的微服务应用的接口调用鉴权,和对微服务系统外的应用的接口调用鉴权。在对微服务系统内的微服务应用进行接口调用鉴权时,验证微服务调用方的自有特征是否与第一类可访问特征匹配,在对微服务系统外的应用进行接口调用鉴权时,验证微服务调用方的自有特征是否与第二类可访问特征匹配,具体验证过程可参照前文所述,本实施例对此不作赘述。
本实施例中,微服务提供方既可以通过内置的特征处理程序实现接口调用鉴权,也可以通过第三方验证系统实现接口调用鉴权,在提升接口调用鉴权的灵活性的同时,降低了微服务系统实现接口调用鉴权的成本。
结合以上实施例,在一种实施方式中,验证所述微服务调用方的特征是否与预设的可访问特征匹配,所述可访问特征与所述目标接口对应,可以包括:
获得预先存储的与所述目标接口对应的可访问特征白名单;
在所述微服务调用方的特征中的至少一个记载在所述可访问特征白名单内时,确定所述微服务调用方的特征与预设的可访问特征匹配;
在所述微服务调用方的特征均未记载在所述可访问特征白名单内时,确定所述微服务调用方的特征与预设的可访问特征不匹配。
在本实施例中,微服务提供方可以设置各个接口的可访问特征白名单,可访问特征白名单中记录了可访问特征。微服务提供方可根据微服务调用方的自有特征是否记录在可访问特征白名单内从而确定微服务调用方的特征是否与预设的可访问特征匹配。具体地,如果微服务调用方的特征中的至少一个特征记载在可访问特征白名单内,微服务调用方的特征与预设的可访问特征匹配,如果微服务调用方的特征的所有特征均未记载在可访问特征白名单内,微服务调用方的特征与预设的可访问特征不匹配。
示例地,微服务调用方的自有特征包括:特征A、特征B以及特征C,而微服务调用方欲调用的目标接口所对应的可访问特征白名单包括:特征A、特征B、特征C、特征D、特征E、特征F、特征G,由于微服务调用方的自有特征均包含在目标接口所对应的可访问特征白名单内,因此微服务调用方的自有特征与可访问特征匹配,微服务调用方具备调用目标接口的权限。而如果微服务调用方的自有特征包括特征O和特征P时,由于特征O和特征P均未包含在目标接口所对应的可访问特征白名单内,因此微服务调用方的自有特征与可访问特征不匹配,微服务调用方不具备调用目标接口的权限。
本实施例中通过设置可访问特征白名单的方式实现了对微服务调用方的接口调用鉴权,保证了微服务应用之间进行接口调用的安全性。
结合以上实施例,在一种实施方式中,验证所述微服务调用方的特征是否与预设的可访问特征匹配,所述可访问特征与所述目标接口对应,可以包括:
获得预先存储的与所述目标接口对应的可访问特征黑名单;
在所述微服务调用方的特征存在至少一个未记载在所述可访问特征黑名单内时,确定所述微服务调用方的特征与预设的可访问特征匹配;
在所述微服务调用方的特征均记载在所述可访问特征黑名单内时,确定所述微服务调用方的特征与预设的可访问特征不匹配。
在一些实施场景中,设置可访问特征白名单具有一定的难度,而设置可访问特征黑名单较为容易,此时微服务提供方可以设置各个接口的可访问特征黑名单,表示除了可访问特征黑名单中记录的特征外,其它特征均可以是可访问特征。
微服务提供方可根据微服务调用方的自有特征是否记录在可访问特征黑名单内从而确定微服务调用方的特征是否与可访问特征匹配。具体地,如果微服务调用方的特征存在至少一个特征未记载在可访问特征黑名单内,表示微服务调用方的自有特征与可访问特征匹配,如果微服务调用方的特征全部记载在可访问特征黑名单内,表示微服务调用方的特征与可访问特征不匹配。
示例地,微服务调用方的自有特征包括:特征A、特征B以及特征C,而微服务调用方欲调用的目标接口所对应的可访问特征黑名单包括:特征B、特征C、特征D、特征E、特征F、特征G,由于微服务调用方的自有特征中的特征A未包含在目标接口所对应的可访问特征黑名单内,因此微服务调用方的自有特征与可访问特征匹配,微服务调用方具备调用目标接口的权限。而如果微服务调用方的自有特征仅包括特征B和特征C时,由于特征B和特征C均包含在目标接口所对应的可访问特征黑名单内,因此微服务调用方的自有特征与可访问特征不匹配,微服务调用方不具备调用目标接口的权限。
本实施例中通过设置可访问特征黑名单的方式实现了对微服务调用方的接口调用鉴权,保证了微服务应用之间进行接口调用的安全性。
在一种实施方式中,微服务系统内还可以设置特征中心,微服务应用还可以与特征中心通信连接。在此基础上,本申请的方法还可以包括:
从特征中心获取最新的可访问特征,利用所述最新的可访问特征更新本地存储的可访问特征;
从特征中心获取最新的微服务提供方的特征,利用所述最新的微服务提供方的特征更新本地存储的微服务提供方的特征;
其中,所述可访问特征用于验证微服务调用方是否具备调用所述目标接口的权限,所述微服务提供方的特征是所述微服务提供方请求调用微服务系统内除所述微服务提供方外的其它微服务应用时携带的特征。
在本实施例中,微服务系统内的各个微服务应用可以预先在特征中心注册。特征中心存储有所有已注册的微服务应用的各个接口对应的可访问特征。微服务提供方可以周期性从特征中心获取最新的可访问特征,并利用最新的可访问特征更新本地存储的可访问特征。
当然,由于每一个微服务提供方也可以是微服务调用方,因此特征中心还存储有所有已注册的微服务应用的各个接口对应的自有特征,该自有特征是微服务提供方在请求调用微服务系统内其它微服务应用时需要携带的特征。
其次,特征中心中的各个接口的可访问特征和自有特征都是可调整的。示例地,当用户需要调整微服务提供方的自有特征和接口的可访问特征时,可以登录到特征中心,在特征中心中调整微服务提供方的自有特征和接口的可访问特征。
在本实施例中,微服务提供方还可以从特征中心中获得最新的可访问特征和自有特征,通过该最新的可访问特征和自有特征对微服务调用方进行接口调用鉴权,可保证鉴权结果的准确度。
图3是本申请一实施例示出的一种接口调用鉴权方法的示意图。下面将结合图3,以一个具体实施例对本申请的接口调用鉴权方法进行详细的说明。
在图3中,微服务系统内部署有API特征中心和多个微服务应用(包括微服务应用1-微服务应用2),其中微服务应用1为微服务提供方,微服务应用2为微服务调用方,微服务系统外还部署有外部系统。
微服务应用1-微服务应用N需要首先在API特征中心完成注册。之后,微服务应用在启动时将自身拥有的API信息上报给API特征中心。API特征中心维护有一个特征表,包含了微服务系统中所有微服务应用的自有特征和可访问特征。API特征中心可以针对每个API设置自有特征和可访问特征,自有特征用于当前API内调用其他API时携带的特征,可访问特征用于其他API调用本API时必须具备的特征,如果不具备则不允许访问。微服务应用实时从API特征中心中获取本服务所有API的自有特征和可访问特征并存储在自己的内存中用于后续操作。API特征中心存储的特征可如下表1所示(当然,表1仅做一种示例,不代表实际存储过程):
表1
当微服务应用2通过接口N调用微服务应用1的接口M时,微服务应用2首先获取接口N的自有特征,在访问接口M时携带这些自有特征。微服务应用1验证接口N的自有特征是否与接口M的可访问特征匹配,只要有一个特征匹配成功,可确定微服务应用2具备调用接口M的权限,向微服务应用2返回有权调用的结果,否则确定微服务应用2不具备调用接口M的权限,向微服务应用2返回无权调用的结果。
一个特征也可以由多个子特征组成,只有当该特征内部的所有子特征均匹配时,该特征才算匹配成功。示例地,接口N的自有特征X包括子特征1和子特征2,接口M的可访问特征Y包括子特征1和子特征2,那么接口N的自有特征X和接口M的可访问特征Y是匹配的,而如果接口M的可访问特征Y包括子特征1、子特征2以及子特征3,那么接口N的自有特征X和接口M的可访问特征Y是不匹配的。
在实施时,API特征中心可以根据需要动态调整每个微服务应用的自有特征和可访问特征。例如可对表1中各个接口的自有特征和可访问特征进行调整。
为了方便使用,还可以将微服务应用中与API特征中心的交互和特征的判定逻辑抽离出来形成一个SDK或者一个代理系统,以降低接口调用鉴权的成本,例如设置前文所述的第三方验证系统。
当外部系统访问微服务系统内部的微服务接口时,也可以选择使用本申请提供的方法。具体地,微服务系统内部的微服务应用将可访问特征划分为适用于微服务系统内接口调用鉴权的第一类可访问特征,和适用于外部系统接口调用鉴权的第二类可访问特征。当外部系统通过接口P调用微服务应用2的接口N时,外部系统首先获取接口P的自有特征,在访问接口N时携带这些自有特征。微服务应用2验证接口P的自有特征是否与接口N的第二类可访问特征匹配,只要有一个特征匹配成功,可确定外部系统具备调用接口N的权限,向外部系统返回有权调用的结果,否则确定外部系统不具备调用接口N的权限,向外部系统返回无权调用的结果。
其次,用户可根据实际需求为每个API设置白名单特征和黑名单特征。
本申请中,微服务提供方为每一个接口设置有对应的可访问特征,当微服务调用方想要调用微服务提供方的任意一个接口时,微服务提供方均可以将微服务调用方的自有特征与该接口对应的可访问特征比较以确定微服务调用方是否具备调用目标接口的权限,从而将接口鉴权的粒度细化到了每一个接口,大幅提升了微服务应用之间进行接口调用的安全性。
需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明实施例所必须的。
基于同一发明构思,本申请还提供了一种接口调用鉴权装置400,应用于微服务系统内的微服务提供方。图4是本申请一实施例示出的一种接口调用鉴权装置的结构框图。参照图4,本申请的接口调用鉴权装置400可以包括:
接收模块401,用于接收微服务调用方发送的调用请求,所述调用请求用于请求调用所述微服务提供方的目标接口,所述调用请求中携带所述微服务调用方的特征;
验证模块402,用于验证所述微服务调用方的特征是否与预设的可访问特征匹配,所述可访问特征与所述目标接口对应;
确定模块403,用于在匹配时,确定所述微服务调用方具备调用所述目标接口的权限。
可选地,所述验证模块包括:
第一验证子模块,用于在所述微服务调用方为微服务系统内的应用时,验证所述微服务调用方的特征是否与第一类可访问特征匹配;
第二验证子模块,用于在所述微服务调用方为微服务系统外的应用时,验证所述微服务调用方的特征是否与第二类可访问特征匹配。
可选地,所述验证模块包括:
第三验证子模块,用于通过所述微服务提供方内部署的特征处理程序验证所述微服务调用方的特征是否与预设的可访问特征匹配;或
第四验证子模块,用于将所述微服务调用方的特征发送到第三方验证系统,以使所述第三方验证系统验证所述微服务调用方的特征是否与预设的可访问特征匹配。
可选地,所述验证模块包括:
第一获得子模块,用于获得预先存储的与所述目标接口对应的可访问特征白名单;
第一确定子模块,用于在所述微服务调用方的特征中的至少一个记载在所述可访问特征白名单内时,确定所述微服务调用方的特征与预设的可访问特征匹配;
第二确定子模块,用于在所述微服务调用方的特征均未记载在所述可访问特征白名单内时,确定所述微服务调用方的特征与预设的可访问特征不匹配。
可选地,所述验证模块包括:
第二获得子模块,用于获得预先存储的与所述目标接口对应的可访问特征黑名单;
第三确定子模块,用于在所述微服务调用方的特征存在至少一个未记载在所述可访问特征黑名单内时,确定所述微服务调用方的特征与预设的可访问特征匹配;
第四确定子模块,用于在所述微服务调用方的特征均记载在所述可访问特征黑名单内时,确定所述微服务调用方的特征与预设的可访问特征不匹配。
可选地,所述装置还包括:
第一更新模块,用于从特征中心获取最新的可访问特征,利用所述最新的可访问特征更新本地存储的可访问特征;
第二更新模块,用于从特征中心获取最新的微服务提供方的特征,利用所述最新的微服务提供方的特征更新本地存储的微服务提供方的特征;
其中,所述可访问特征用于验证微服务调用方是否具备调用所述目标接口的权限,所述微服务提供方的特征是所述微服务提供方请求调用微服务系统内除所述微服务提供方外的其它微服务应用时携带的特征。
对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
本领域内的技术人员应明白,本发明实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本发明实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明实施例是参照根据本发明实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明实施例范围的所有变更和修改。
最后,还需要说明的是,在本申请中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
以上对本发明所提供的一种接口调用鉴权方法、装置、电子设备及可读存储介质,进行了详细介绍,本申请中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (8)
1.一种接口调用鉴权方法,其特征在于,应用于微服务系统内的微服务提供方,所述方法包括:
接收微服务调用方发送的调用请求,所述调用请求用于请求调用所述微服务提供方的目标接口,所述调用请求中携带所述微服务调用方的特征;
验证所述微服务调用方的特征是否与预设的可访问特征匹配,所述可访问特征与所述目标接口对应;
所述可访问特征包括第一类可访问特征和第二类可访问特征;验证所述微服务调用方的特征是否与预设的可访问特征匹配,包括:
在所述微服务调用方为微服务系统内的应用时,验证所述微服务调用方的特征是否与第一类可访问特征匹配;
在所述微服务调用方为微服务系统外的应用时,验证所述微服务调用方的特征是否与第二类可访问特征匹配;
在匹配时,确定所述微服务调用方具备调用所述目标接口的权限。
2.根据权利要求1所述的方法,其特征在于,验证所述微服务调用方的特征是否与预设的可访问特征匹配,所述可访问特征与所述目标接口对应,包括:
通过所述微服务提供方内部署的特征处理程序验证所述微服务调用方的特征是否与预设的可访问特征匹配;
或将所述微服务调用方的特征发送到第三方验证系统,以使所述第三方验证系统验证所述微服务调用方的特征是否与预设的可访问特征匹配。
3.根据权利要求2所述的方法,其特征在于,验证所述微服务调用方的特征是否与预设的可访问特征匹配,所述可访问特征与所述目标接口对应,包括:
获得预先存储的与所述目标接口对应的可访问特征白名单;
在所述微服务调用方的特征中的至少一个记载在所述可访问特征白名单内时,确定所述微服务调用方的特征与预设的可访问特征匹配;
在所述微服务调用方的特征均未记载在所述可访问特征白名单内时,确定所述微服务调用方的特征与预设的可访问特征不匹配。
4.根据权利要求2所述的方法,其特征在于,验证所述微服务调用方的特征是否与预设的可访问特征匹配,所述可访问特征与所述目标接口对应,包括:
获得预先存储的与所述目标接口对应的可访问特征黑名单;
在所述微服务调用方的特征存在至少一个未记载在所述可访问特征黑名单内时,确定所述微服务调用方的特征与预设的可访问特征匹配;
在所述微服务调用方的特征均记载在所述可访问特征黑名单内时,确定所述微服务调用方的特征与预设的可访问特征不匹配。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
从特征中心获取最新的可访问特征,利用所述最新的可访问特征更新本地存储的可访问特征;
从特征中心获取最新的微服务提供方的特征,利用所述最新的微服务提供方的特征更新本地存储的微服务提供方的特征;
其中,所述可访问特征用于验证微服务调用方是否具备调用所述目标接口的权限,所述微服务提供方的特征是所述微服务提供方请求调用微服务系统内除所述微服务提供方外的其它微服务应用时携带的特征。
6.一种接口调用鉴权装置,其特征在于,应用于微服务系统内的微服务提供方,所述装置包括:
接收模块,用于接收微服务调用方发送的调用请求,所述调用请求用于请求调用所述微服务提供方的目标接口,所述调用请求中携带所述微服务调用方的特征;
验证模块,用于验证所述微服务调用方的特征是否与预设的可访问特征匹配,所述可访问特征与所述目标接口对应;
所述验证模块包括:
第一验证子模块,用于在所述微服务调用方为微服务系统内的应用时,验证所述微服务调用方的特征是否与第一类可访问特征匹配;
第二验证子模块,用于在所述微服务调用方为微服务系统外的应用时,验证所述微服务调用方的特征是否与第二类可访问特征匹配;
确定模块,用于在匹配时,确定所述微服务调用方具备调用所述目标接口的权限。
7.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-5任一项所述的接口调用鉴权方法中的步骤。
8.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行时实现如权利要求1-5任一项所述的接口调用鉴权方法中的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110350302.1A CN113065120B (zh) | 2021-03-31 | 2021-03-31 | 接口调用鉴权方法、装置、电子设备及可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110350302.1A CN113065120B (zh) | 2021-03-31 | 2021-03-31 | 接口调用鉴权方法、装置、电子设备及可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113065120A CN113065120A (zh) | 2021-07-02 |
CN113065120B true CN113065120B (zh) | 2022-12-13 |
Family
ID=76564948
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110350302.1A Active CN113065120B (zh) | 2021-03-31 | 2021-03-31 | 接口调用鉴权方法、装置、电子设备及可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113065120B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114826749A (zh) * | 2022-04-30 | 2022-07-29 | 济南浪潮数据技术有限公司 | 一种接口访问控制方法、装置、介质 |
CN116112541A (zh) * | 2023-02-07 | 2023-05-12 | 南方电网数字电网集团信息通信科技有限公司 | 一种域控系统微服务设计方法、系统、设备及可存储介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109067728A (zh) * | 2018-07-25 | 2018-12-21 | 苏州科达科技股份有限公司 | 应用程序接口的访问控制方法、装置、服务器及存储介质 |
CN109639723A (zh) * | 2019-01-10 | 2019-04-16 | 深圳市买买提信息科技有限公司 | 一种基于erp系统的微服务访问方法及服务器 |
CN109739665A (zh) * | 2019-01-04 | 2019-05-10 | 上海银赛计算机科技有限公司 | 接口管理方法、装置、服务器及存储介质 |
CN109831504A (zh) * | 2019-01-31 | 2019-05-31 | 泰康保险集团股份有限公司 | 微服务请求处理方法、装置及设备 |
CN111258781A (zh) * | 2020-01-15 | 2020-06-09 | 中国平安人寿保险股份有限公司 | 微服务的调用鉴权方法、装置、设备及存储介质 |
CN111897605A (zh) * | 2020-07-30 | 2020-11-06 | 深圳前海微众银行股份有限公司 | 基于微服务架构的数据处理方法、设备及可读存储介质 |
CN112333289A (zh) * | 2021-01-05 | 2021-02-05 | 清华四川能源互联网研究院 | 反向代理访问方法、装置、电子设备及存储介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10606672B2 (en) * | 2017-05-04 | 2020-03-31 | Microsoft Technology Licensing, Llc | Micro-service framework derived from third-party apps |
-
2021
- 2021-03-31 CN CN202110350302.1A patent/CN113065120B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109067728A (zh) * | 2018-07-25 | 2018-12-21 | 苏州科达科技股份有限公司 | 应用程序接口的访问控制方法、装置、服务器及存储介质 |
CN109739665A (zh) * | 2019-01-04 | 2019-05-10 | 上海银赛计算机科技有限公司 | 接口管理方法、装置、服务器及存储介质 |
CN109639723A (zh) * | 2019-01-10 | 2019-04-16 | 深圳市买买提信息科技有限公司 | 一种基于erp系统的微服务访问方法及服务器 |
CN109831504A (zh) * | 2019-01-31 | 2019-05-31 | 泰康保险集团股份有限公司 | 微服务请求处理方法、装置及设备 |
CN111258781A (zh) * | 2020-01-15 | 2020-06-09 | 中国平安人寿保险股份有限公司 | 微服务的调用鉴权方法、装置、设备及存储介质 |
CN111897605A (zh) * | 2020-07-30 | 2020-11-06 | 深圳前海微众银行股份有限公司 | 基于微服务架构的数据处理方法、设备及可读存储介质 |
CN112333289A (zh) * | 2021-01-05 | 2021-02-05 | 清华四川能源互联网研究院 | 反向代理访问方法、装置、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN113065120A (zh) | 2021-07-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109033774B (zh) | 获取、反馈用户资源的方法、装置及电子设备 | |
CN105991614B (zh) | 一种开放授权、资源访问的方法及装置、服务器 | |
CN111931154B (zh) | 基于数字凭证的业务处理方法、装置及设备 | |
KR20060089658A (ko) | 애플리케이션 실행의 보안 관리 프로세스 | |
CN111030812A (zh) | 令牌验证方法、装置、存储介质及服务器 | |
CN110417730B (zh) | 多应用程序的统一接入方法及相关设备 | |
CN109086596B (zh) | 应用程序的认证方法、装置及系统 | |
CN113065120B (zh) | 接口调用鉴权方法、装置、电子设备及可读存储介质 | |
CN113067859B (zh) | 一种基于云手机的通讯方法和装置 | |
US9455972B1 (en) | Provisioning a mobile device with a security application on the fly | |
CN111783051A (zh) | 身份认证方法及装置和电子设备 | |
US11977620B2 (en) | Attestation of application identity for inter-app communications | |
CN111753270A (zh) | 应用程序登录验证方法、装置、设备和存储介质 | |
CN109802927B (zh) | 一种安全服务提供方法及装置 | |
CN103559430B (zh) | 基于安卓系统的应用账号管理方法和装置 | |
CN109144743A (zh) | 一种数据的获取方法、装置及设备 | |
US20160269420A1 (en) | Apparatus for verifying safety of resource, server thereof, and method thereof | |
CN110457959B (zh) | 一种基于Trust应用的信息传输方法及装置 | |
CN112100610B (zh) | 登录及用户登录相关业务的处理方法、装置和设备 | |
CN112131545B (zh) | 语音授权及语音相关业务的处理方法、装置和设备 | |
CN115550921A (zh) | 无线网络接入方法、装置、设备及存储介质 | |
CN110768972B (zh) | 一种安全验证方法和路由器 | |
JP2023521901A (ja) | ユーザ識別子および署名収集を利用したモバイルアプリケーション偽造・変造探知方法、コンピュータプログラム、コンピュータ読み取り可能な記録媒体およびコンピュータ装置 | |
CN113032750B (zh) | 一种权限管理的方法、装置、电子设备及介质 | |
CN111444483A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |