掌桥专利:专业的专利平台
掌桥专利
首页

一种接口访问控制方法、装置、介质

文献发布时间:2023-06-19 16:09:34



技术领域

本申请涉及微服务领域,特别是涉及一种接口访问控制方法、装置、介质。

背景技术

在云计算系统中,云计算平台通过接口为用户提供计算资源。为了保证平台的安全,云计算平台需要通过网关控制用户对接口的访问,在具体实施中网关通过对发送请求的角色的权限进行判断,仅当发送请求的角色具有访问目标接口的权限时,才允许访问目标接口以获取接口提供的计算资源。

但在采用微服务架构的云计算平台中,由于云计算平台所提供的服务种类较多,用户发送的请求数量也相应增加,导致网关无法及时对访问请求的权限进行验证以判断是否允许当前角色访问相应接口,从而降低云计算平台的响应速度。

由此可见,如何提供一种应用于微服务平台的接口访问控制方法,以提高云计算平台的响应速度,是本领域技术人员亟需解决的问题。

发明内容

本申请的目的是提供一种接口访问控制方法、装置、介质,以提高云计算平台响应速度。

为了解决上述技术问题,本申请提供了一种接口访问控制方法,应用于网关,该方法包括:

获取访问请求;

解析所述访问请求,根据解析结果获取发送所述访问请求的用户的身份信息和目标接口;

将所述访问请求、所述目标接口和所述身份信息发送至与所述目标接口对应的云平台中的目标微服务,以便于所述目标微服务根据所述身份信息判断是否允许访问所述目标接口。

优选的,所述身份信息为所述用户发送所述访问请求时使用的角色身份信息,所述角色身份信息为系统中供用户使用的预设角色的信息。

优选的,所述将所述访问请求、所述目标接口和所述身份信息发送至与所述目标接口对应的目标微服务的步骤前,还包括:

通过与所述云平台的通信判断所述目标微服务是否处于工作状态;

若处于所述工作状态,则执行所述将所述访问请求、所述目标接口和所述身份信息发送至与所述目标接口对应的目标微服务的步骤;

若否,则向所述用户发送故障信息。

为了解决上述技术问题,本申请还提供了另一种接口访问控制方法,应用于各云平台,该方法包括:

获取网关发送的身份信息、目标接口和访问请求;其中,所述身份信息、所述目标接口为所述网关在获取所述访问请求并解析后获取的信息;

判断所述目标接口的权限数据中是否存在所述身份信息;

若存在所述身份信息,则允许访问所述目标接口。

优选的,还包括:

获取自身各所述目标接口的所述权限数据以创建权限数据库,所述权限数据为权限管理进程发送的包含所述身份信息与所述接口对应关系的数据。

优选的,还包括:

当获取到所述权限管理进程发送的更新指令时,解析所述更新指令以获取待更新接口;

根据所述更新指令修改所述权限数据库中所述待更新接口的所述权限数据。

优选的,通过消息队列与所述权限管理进程通信。

为了解决上述技术问题,本申请还提供了一种接口访问控制装置,应用于云平台,包括:

获取模块,用于获取网关发送的身份信息、目标接口和访问请求;其中,所述身份信息、所述目标接口为所述网关在获取所述访问请求并解析后获取的信息;

判断模块,用于判断所述目标接口的权限数据中是否存在所述身份信息;

访问模块,用于若存在所述身份信息,则允许访问所述目标接口。

为了解决上述技术问题,本申请还提供了一种接口访问控制装置,包括存储器,用于存储计算机程序;

处理器,用于执行所述计算机程序时实现所述的接口访问控制方法的步骤。

为了解决上述技术问题,本申请还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现所述的接口访问控制方法的步骤。

本申请所提供的接口访问控制方法,包括:获取网关发送的身份信息、目标接口和访问请求,以减少微服务处理访问请求时的工作量,提高处理效率。微服务通过判断目标接口的权限数据中是否存在身份信息以确定当前发送接口访问请求的用户是否具有访问权限,若存在身份信息,则表明当前用户具有访问权限,则允许访问目标接口。由此可见,本申请所提供的方案中,通过网关对访问请求进行解析以获取身份信息等数据,并将相应数据和访问请求发送至目标接口所在的微服务中,以便于微服务验证是否具有访问权限。通过网关和各微服务协调完成访问权限验证工作,防止请求过多时验证工作占用较长时间,提高云计算平台的响应速度。

此外,本申请还提供了一种接口访问控制装置和介质,与上述方法对应,效果同上。

附图说明

为了更清楚地说明本申请实施例,下面将对实施例中所需要使用的附图做简单的介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本申请实施例所提供的一种接口访问控制方法的应用场景示意图;

图2为本申请实施例所提供的一种接口访问控制方法的流程图;

图3为本申请实施例所提供的另一种接口访问控制方法的流程图;

图4为本申请实施例所提供的一种接口访问控制装置的结构图;

图5为本申请实施例所提供的另一种接口访问控制装置的结构图;

附图标记如下:1为客户端,2网关,3为云平台,4为微服务。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下,所获得的所有其他实施例,都属于本申请保护范围。

本申请的核心是提供一种接口访问控制方法、装置、介质,以提高云计算平台响应速度。

图1为本申请实施例所提供的一种接口访问控制方法的应用场景示意图,如图1所示,在微服务应用场景中,用户为了访问目标接口,通过客户端1(应用程序或网页)向云平台3发送访问目标接口的访问请求,由于云平台3采用微服务4架构,每个微服务4都提供多个接口,云平台3的总接口数量非常大,为了防止验证访问请求权限所需时间过长导致云计算响应用户访问请求的速度变慢,影响用户的使用体验,本申请提供了一种新的接口访问控制方法,通过网关2获取访问请求并解析访问请求,根据解析结果获取发送访问请求的用户的身份信息和目标接口。网关2将访问请求、目标接口和身份信息发送至与目标接口对应的云平台中的目标微服务4,目标微服务4通过获取网关2发送的身份信息、目标接口和访问请求,以减少目标微服务4处理访问请求时的工作量,提高处理效率。目标微服务4通过判断目标接口的权限数据中是否存在身份信息以确定当前发送接口访问请求的用户是否具有访问权限,若存在身份信息,则表明当前用户具有访问权限,则允许访问目标接口。本申请所提供的方案中,通过网关2和各微服务4协调完成访问权限验证工作,防止请求过多时验证工作占用较长时间,提高云平台3的响应速度。

为了使本技术领域的人员更好地理解本申请方案,下面结合附图和具体实施方式对本申请作进一步的详细说明。

图2为本申请实施例所提供的一种接口访问控制方法的流程图,如图2所示,该方法应用于网关,包括:

S10:获取访问请求。

S11:解析访问请求,根据解析结果获取发送访问请求的用户的身份信息和目标接口。

在具体实施中,网关获取用户发送的访问请求并对访问请求进行解析,以获取用户的身份信息和用户想要访问的目标接口。

在具体实施中,可以直接使用用户自身的身份信息发送访问请求,也可以通过在云计算平台中预先设定角色,用户通过选用不同的角色向网关发送请求,此时,网关解析获取到的身份信息即为用户使用的角色的身份信息。例如:云计算平台中包括第一预设角色、第二预设角色、第三预设角色,用户A以第一预设角色发送访问请求,此时,网关解析获取的身份信息即为第一预设角色的身份信息。后一种方案所占用的计算资源较少,且更便捷。

可以理解的是,本实施例所提到的访问请求包括用户发送的资源查询请求、资源调用请求等。

需要说明的是,网关获取访问请求后对访问请求进行解析的过程中,可以仅获取与访问请求对应的目标接口,以便于根据接口与微服务对应关系将访问请求发送至相应微服务,以便于微服务对访问请求进行解析以获取用户的身份信息,并根据身份信息判断是否允许访问;在解析过程中,网关还可以获取目标接口、身份信息等全部数据,并将这些数据发送至微服务,以减少微服务的工作量,提高云计算平台的响应速度,本实施例中选用第二种解析方式。

S12:将访问请求、目标接口和身份信息发送至与目标接口对应的云平台中的目标微服务,以便于目标微服务根据身份信息判断是否允许访问目标接口。

可以理解的是,云计算平台中各微服务均通过接口向用户提供计算资源,因此,用户所发送的访问请求的请问目标为微服务接口,云计算平台需要根据微服务与接口的对应关系,确定与目标接口对应的微服务,从而完成访问请求的转发工作。

本实施例中提供了一种接口访问控制方法,该方法包括:获取访问请求并解析访问请求,根据解析结果获取发送访问请求的用户的身份信息和目标接口,然后将相关信息和访问请求均发送至与目标接口对应的云平台中的目标微服务,以便于目标微服务根据身份信息判断是否允许访问目标接口。由此可见,本申请所提供的方案中,通过网关对访问请求进行解析以获取身份信息等数据,并将相应数据和访问请求发送至目标接口所在的微服务中,以便于微服务验证是否具有访问权限。通过网关和各微服务协调完成访问权限验证工作,防止请求过多时验证工作占用较长时间,提高云计算平台的响应速度。

可以理解的是,由于云计算平台的用户较多,若为了验证某个用户是否具有访问权限而为每个注册用户均设置权限并保存,则各微服务均需要建立庞大的数据库,会造成计算资源的浪费,同时影响微服务的性能。

为了解决上述技术问题,在上述实施例的基础上,网关解析访问请求所获取的身份信息为用户发送访问请求时使用的角色身份信息,角色身份信息为系统中供用户使用的预设角色的信息。

进一步的,在定义预设角色信息时,需要定义角色名称、角色下的接口权限、角色与用户的对应关系等。

在具体实施中,由管理人员在系统中预先设置角色,并确定各角色的访问权限(即各角色能够访问的接口),当用户登录或使用云计算系统时,使用预设角色发送访问请求或执行其他命令。

可以理解的是,在用户使用预设角色时,还需要判断用户权限以确定用户是否能够使用目标预设角色。

在本实施例中,通过将用户使用的预设角色的身份信息作为用户的身份信息,防止微服务的权限数据库过大造成计算资源的浪费。

在具体实施中,云计算平台内的各微服务可能处于休眠状态或下线状态,而仅当微服务处于工作状态时,网关才能将访问请求和相关信息发送至微服务。

在上述实施例的基础上,在网关将访问请求、目标接口和身份信息发送至与目标接口对应的目标微服务的步骤前,还包括:

通过与云平台的通信判断目标微服务是否处于工作状态;

若处于工作状态,则执行将访问请求、目标接口和身份信息发送至与目标接口对应的目标微服务的步骤;

若否,则向用户发送故障信息。

可以理解的是,网关与云平台间可以通过消息队列的方式通信,此外,网关也可采用消息队列将访问请求和身份信息发送至目标微服务。

在本实施例中,通过网关在转发访问请求前预先判断微服务的工作状态的,并仅当目标微服务处于工作状态时才向目标微服务发送访问请求、目标接口和身份信息,防止计算资源和通信资源的浪费。

图3为本申请实施例所提供的另一种接口访问控制方法的流程图,如图3所示,该方法应用于各云平台,包括:

S20:获取网关发送的身份信息、目标接口和访问请求;其中,身份信息、目标接口为网关在获取访问请求并解析后获取的信息;

在具体实施中,网关获取访问请求,并在解析访问请求以获取目标接口、身份信息后,根据目标接口确定与目标接口对应的微服务,从而将访问请求和与访问请求对应的身份信息、目标接口均转发至微服务,以便于微服务根据身份信息验证当前用户是否具有访问权限。

进一步的,在本实施例中所使用的身份信息为用户所使用的预设角色的角色身份信息。

S21:判断目标接口的权限数据中是否存在身份信息。

S22:若存在身份信息,则允许访问目标接口。

其中,权限数据为具有各个接口访问权限的用户身份信息或角色身份信息,例如:具有第一接口访问权限的预设角色包括:第一预设角色、第三预设角色;具有第二接口访问权限的预设角色包括:第二预设角色、第三预设角色等。

在具体实施中,权限数据保存在权限数据库中。其中,可以将权限数据库为云计算平台的通用数据库;也可以在各微服务中分别创建权限数据库。本实施例中将第一种方案与第二种方案结合,既建立通用数据库,并在各微服务中分别创建包含微服务自身接口的接口访问权限的数据库。

在本实施例中提供了另一种接口访问控制方法,应用于云计算平台,该方法包括:获取网关发送的身份信息、目标接口和访问请求,以减少微服务处理访问请求时的工作量,提高处理效率。微服务通过判断目标接口的权限数据中是否存在身份信息以确定当前发送接口访问请求的用户是否具有访问权限,若存在身份信息,则表明当前用户具有访问权限,则允许访问目标接口。由此可见,本申请所提供的方案中,通过网关对访问请求进行解析以获取身份信息等数据,并将相应数据和访问请求发送至目标接口所在的微服务中,以便于微服务验证是否具有访问权限。通过网关和各微服务协调完成访问权限验证工作,防止请求过多时验证工作占用较长时间,提高云计算平台的响应速度。

作为优选的实施例,微服务获取权限管理进程发送的权限数据以创建权限数据库,以便于微服务判断获取到的访问请求是否具有访问权限,其中,权限数据为权限管理进程发送的包含身份信息与接口对应关系的数据。

可以理解的是,当微服务器获取到网关发送的访问请求和身份信息后,判断自身的权限数据库中目标接口的权限数据中是否存在上述身份信息,若存在,则允许访问,若不存在,则拒绝用户的访问请求,并向管理人员发送警报。

在具体实施中,当微服务所提供的接口发生变化时,还需要对权限数据库中的权限数据进行更新。例如,当新增接口时,开发人员将新增接口与角色的对应关系写入至通用数据库,并通过权限管理进程将上述对应关系同步至各微服务的权限数据库内。

具体的,当更新权限数据时,权限管理进程根据接收到的更新指令(删除或增加角色的接口权限)更新云平台的通用数据库,并将权限变更信息通过消息队列向各微服务广播。各微服务获取到权限变更信息后,判断权限变更信息中的待更新接口是否为自身的接口,若为自身接口,则在自身的权限数据库保存的待更新接口的权限数据中增加或删除相应角色。

在本实施例中,建立权限数据库以保存权限数据,并根据权限管理进程发送的更新指令对权限数据进行更新,以便于微服务根据身份信息判断访问请求是否能够访问目标接口。

图4为本申请实施例所提供的一种接口访问控制装置的结构图,该装置应用于云平台,如图4所示,该装置包括:

获取模块10,用于获取网关发送的身份信息、目标接口和访问请求;其中,身份信息、目标接口为网关在获取访问请求并解析后获取的信息;

判断模块11,用于判断目标接口的权限数据中是否存在身份信息;

访问模块12,用于若存在身份信息,则允许访问目标接口。

此外,本实施例提供的接口访问控制装置还包括权限数据库创建模块,权限数据库更新模块。其中,权限数据库创建模块用于获取微服务自身各目标接口的权限数据以创建权限数据库,权限数据为权限管理进程发送的包含身份信息与接口对应关系的数据。权限数据库更新模块用于当获取到权限管理进程发送的更新指令时,解析更新指令以获取待更新接口;根据更新指令修改权限数据库中待更新接口的权限数据。

本申请所提供的接口访问控制装置,应用于云平台,该装置包括:获取网关发送的身份信息、目标接口和访问请求,以减少微服务处理访问请求时的工作量,提高处理效率。微服务通过判断目标接口的权限数据中是否存在身份信息以确定当前发送接口访问请求的用户是否具有访问权限,若存在身份信息,则表明当前用户具有访问权限,则允许访问目标接口。由此可见,本申请所提供的方案中,通过网关对访问请求进行解析以获取身份信息等数据,并将相应数据和访问请求发送至目标接口所在的微服务中,以便于微服务验证是否具有访问权限。通过网关和各微服务协调完成访问权限验证工作,防止请求过多时验证工作占用较长时间,提高云计算平台的响应速度。

在上述实施例中,对于接口访问控制方法进行了详细描述,本申请还提供接口访问控制装置对应的实施例。需要说明的是,本申请从两个角度对装置部分的实施例进行描述,一种是基于功能模块的角度,另一种是基于硬件的角度。

由于装置部分的实施例与方法部分的实施例相互对应,因此装置部分的实施例请参见方法部分的实施例的描述,这里暂不赘述。

图5为本申请实施例所提供的另一种接口访问控制装置的结构图,如图5所示,接口访问控制装置包括:存储器20,用于存储计算机程序;

处理器21,用于执行计算机程序时实现如上述实施例获取访问请求的身份信息的方法的步骤。

本实施例提供的终端设备可以包括但不限于智能手机、平板电脑、笔记本电脑或台式电脑等。

其中,处理器21可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器21可以采用数字信号处理器(Digital Signal Processor,DSP)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)、可编程逻辑阵列(Programmable LogicArray,PLA)中的至少一种硬件形式来实现。处理器21也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称中央处理器(CentralProcessing Unit,CPU);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器21可以集成有图像处理器(Graphics Processing Unit,GPU),GPU用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器21还可以包括人工智能(Artificial Intelligence,AI)处理器,该AI处理器用于处理有关机器学习的计算操作。

存储器20可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器20还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。本实施例中,存储器20至少用于存储以下计算机程序201,其中,该计算机程序被处理器21加载并执行之后,能够实现前述任一实施例公开的接口访问控制方法的相关步骤。另外,存储器20所存储的资源还可以包括操作系统202和数据203等,存储方式可以是短暂存储或者永久存储。其中,操作系统202可以包括Windows、Unix、Linux等。数据203可以包括但不限于身份信息、访问请求等。

在一些实施例中,接口访问控制装置还可包括有显示屏22、输入输出接口23、通信接口24、电源25以及通信总线26。

本领域技术人员可以理解,图5中示出的结构并不构成对接口访问控制装置的限定,可以包括比图示更多或更少的组件。

本申请实施例提供的接口访问控制装置,包括存储器和处理器,处理器在执行存储器存储的程序时,能够实现如下方法:。

获取网关发送的身份信息、目标接口和访问请求;其中,身份信息、目标接口为网关在获取访问请求并解析后获取的信息;

判断目标接口的权限数据中是否存在身份信息;

若存在身份信息,则允许访问目标接口。

本申请所提供的接口访问控制装置,应用于云计算平台,包括:获取网关发送的身份信息、目标接口和访问请求,以减少微服务处理访问请求时的工作量,提高处理效率。微服务通过判断目标接口的权限数据中是否存在身份信息以确定当前发送接口访问请求的用户是否具有访问权限,若存在身份信息,则表明当前用户具有访问权限,则允许访问目标接口。由此可见,本申请所提供的方案中,通过网关对访问请求进行解析以获取身份信息等数据,并将相应数据和访问请求发送至目标接口所在的微服务中,以便于微服务验证是否具有访问权限。通过网关和各微服务协调完成访问权限验证工作,防止请求过多时验证工作占用较长时间,提高云计算平台的响应速度。

最后,本申请还提供一种计算机可读存储介质对应的实施例。计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现如上述方法实施例(可以是网关侧对应的方法、也可以是云计算平台侧对应的方法,还可以是网关侧和云计算平台侧对应的方法)中记载的步骤。

可以理解的是,如果上述实施例中的方法以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(RandomAccess Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。

以上对本申请所提供的接口访问控制方法、装置、介质进行了详细介绍。说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围内。

还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

技术分类

06120114719224