CN117768530A - 一种基于轻量级微服务架构的网关中间件 - Google Patents
一种基于轻量级微服务架构的网关中间件 Download PDFInfo
- Publication number
- CN117768530A CN117768530A CN202311807282.1A CN202311807282A CN117768530A CN 117768530 A CN117768530 A CN 117768530A CN 202311807282 A CN202311807282 A CN 202311807282A CN 117768530 A CN117768530 A CN 117768530A
- Authority
- CN
- China
- Prior art keywords
- module
- service module
- request
- user
- gateway
- 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
- 238000012795 verification Methods 0.000 claims abstract description 75
- 238000012545 processing Methods 0.000 claims description 59
- 238000007726 management method Methods 0.000 claims description 37
- 238000004519 manufacturing process Methods 0.000 claims description 3
- 238000011161 development Methods 0.000 abstract description 13
- 238000012423 maintenance Methods 0.000 abstract description 10
- 238000000034 method Methods 0.000 abstract description 7
- 238000004891 communication Methods 0.000 abstract description 3
- 230000018109 developmental process Effects 0.000 description 12
- 230000003993 interaction Effects 0.000 description 4
- 238000010586 diagram Methods 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 230000004044 response Effects 0.000 description 3
- 230000032683 aging Effects 0.000 description 2
- 230000015556 catabolic process Effects 0.000 description 2
- 238000006731 degradation reaction Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 238000012550 audit Methods 0.000 description 1
- 238000013475 authorization Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 235000014510 cooky Nutrition 0.000 description 1
- 238000013523 data management Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 230000009545 invasion Effects 0.000 description 1
- 238000002955 isolation Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 239000013589 supplement Substances 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
Abstract
本发明提供了一种基于轻量级微服务架构的网关中间件,涉及通信技术领域,包括网关服务模块、用户权限服务模块和缓存服务模块;网关服务模块,用于接受外部请求并审核外部请求合法性,向用户权限服务模块和缓存服务模块分发请求,并接受用户权限服务模块和缓存服务模块的请求反馈;用户权限服务模块,用于对请求进行权限校验,并提供用户权限数据;缓存服务模块,用于缓存用户信息,并提供所述缓存用户信息。本发明整体架构方便程序扩展,易于维护和升级,节省开发成本和维护成本;更加符合传统企业业务需求及更快实现落地应用。
Description
技术领域
本发明涉及通信技术领域,具体涉及一种基于轻量级微服务架构的网关中间件。
背景技术
通常在相同领域的应用系统间,有许多基础功能和基础服务是有相似的,如果每次承接同类业务都从0到1进行开发,那么将大大增加研发成本。为了尽可能多的提炼共性并进行复用,通常将工程开发中共用的服务和逻辑包装成标准、一致、易集成的基础中间件。网关中间件就是一种独立的软件层,它可以提供一系列的服务和功能,如统一认证、数据预处理、缓存、统一鉴权、安全处理、响应处理等。
进入互联网时代,越来越多企业基于业务将大型复杂软件应用拆分成粒度更细的多个子服务,同时许多企业面临着新旧系统的并存开发,为了不影响新旧不同技术体系的并行开发,微服务的开发模式得到广泛应用,有效解决了不同技术体系转型的兼容问题,且不影响客户的用户体验。微服务架构模式应用同样适用于网关,既可以统一处理各客户端的请求,将真正提供业务处理的各类服务隐藏于后端,又能对业务运算模块起到安全保护的作用,也便于灵活配置扩容。
一般互联网企业使用的是微服务全家桶,需要搭配配置管理中心、负载均衡、流量控制、熔断机制、降级管理、监控平台进行综合管理,不仅开发复杂度高,对于部署和运维要求也很高。对传统企业来说,各业务系统高度专业化,且更重视各业务系统之间的风险隔离。所以传统企业更关注的是多业务系统间的独立运作,各业务系统之间只需要实现对身份认证及权限验证的统一管理即可,如果使用微服务全家桶,则会增加无益的开发成本和维护成本。
发明内容
本发明的目的在于提供一种基于轻量级微服务架构的网关中间件,其基于瘦身精简的微服务架构,能够实现对身份认证及权限验证的统一管理,适合传统企业的业务特点,降低业务系统的开发和维护成本。
为实现上述目的,本发明通过以下技术方案实现:
一种基于轻量级微服务架构的网关中间件,包括网关服务模块、用户权限服务模块和缓存服务模块;
网关服务模块,用于接受外部请求并审核外部请求合法性,向用户权限服务模块和缓存服务模块分发请求,并接受用户权限服务模块和缓存服务模块的请求反馈;
用户权限服务模块,用于对请求进行权限校验,并提供用户权限数据;
缓存服务模块,用于缓存用户信息,并提供所述缓存用户信息。
进一步地:所述网关服务模块包括报文检验子模块、安全校验子模块、令牌管理子模块、路由转发子模块和核心处理子模块;
报文检验子模块,用于对Http请求报文进行解析并进行合法性校验;
令牌管理子模块,用于制作和校验令牌;
路由转发子模块,用于根据路由规则将请求转发到正确的目标地址;
核心处理子模块,用于调用用户权限服务模块、缓存服务模块和用户终端。
进一步地:所述网关服务模块还包括数据加解密子模块,用于对网关服务模块接受的数据解密,对网关服务模块发出的数据加密。
进一步地:所述网关服务模块还包括安全校验子模块,用于根据检查策略负责对登录用户进行合法性校验。
进一步地:所述网关服务模块还包括日志记录子模块,用于记录网关所有请求的日志。
进一步地:所述网关服务模块还包括配置子模块,用于网关服务模块的所有配置管理及加载。
进一步地:缓存服务模块所缓存的用户信息包括用户登录信息、用户登录令牌和用户权限信息。
本发明还提供一种身份认证及权限验证统一管理方法,应用于基于轻量级微服务架构的网关中间件,包括:用户登录验证和业务数据权限验证,其中用户登录验证的具体步骤包括:
S101:网关服务模块接受并审查外部请求的合法性,将审查合法的请求发送至用户权限管理模块;拒绝审查不合法的请求;
S102:用户权限服务模块对请求数据中的账号密码进行正确性校验,若检验通过,则发送该请求数据对应的用户信息至网关服务模块制作令牌;拒绝检验不正确的请求;
S103:网关服务模块将制作好的令牌发送至缓存服务模块进行缓存,并向终端客户颁发令牌;
业务数据权限验证具体步骤包括:
S201:网关服务模块接受外部请求并审查请求的合法性,若请求审查不合法,则拒绝该请求;若审查合法,则将请求数据发送至缓存服务模块;
S202:若缓存服务模块中已缓存该用户权限信息,网关服务模块直接从缓存服务模块中获取用户权限信息;若缓存服务模块未缓存该用户权限信息,则网关服务模块从用户权限模块获取用户权限信息,并将获取的用户权限信息发送至缓存服务模块进行缓存;
S203:网关服务模块从缓存服务模块获取S202中缓存的用户权限信息,并转发请求至对应的业务资源服务进行业务处理。
进一步地:S101的具体步骤为:
报文校验子模块接收外部请求报文并进行对报文进行校验,若报文格式不符合要求,则直接拒绝该HTTP请求;
若报文格式符合要求,则将请求数据发至核心处理子模块,并通过核心处理子模块转发至安全校验子模块;安全校验子模块根据检查策略负责对登录用户进行合法性校验,若校验失败,则结束请求;
若安全校验子模块校验成功,则请求进入核心处理子模块,核心处理子模块转发请求数据至用户权限服务模块;
S103的具体步骤为:
令牌管理子模块制作令牌,将令牌、用户信息发送至缓存服务模块进行缓存,并将令牌发送至数据加解密子模块进行加密;
数据加解密子模块将加密后的令牌发送至核心子模块,核心子模块向终端用户颁发令牌。
进一步地:S201的具体步骤为:
报文检验子模块接受外部请求报文并对报文进行校验,若报文格式不符合要求,则直接拒绝该HTTP请求;若报文格式符合要求,则将请求数据发送至令牌管理子模块;
令牌管理子模块对请求数据中的令牌合法性进行校验,若校验失败,则结束请求;若校验合格,则将请求数据发至核心处理子模块,核心处理子模块将请求数据发送至缓存服务模块;
S202的具体步骤为:
若缓存服务模块中已缓存该用户权限信息,缓存服务模块向核心处理子模块返回该请求用户权限信息;
若缓存服务模块不存在该请求用户权限信息,则核心处理子模块将该请求发至用户权限服务模块,用户权限服务模块向核心处理子模块返回该请求用户权限信息,核心处理子模块向缓存服务模块发送该请求用户权限信息进行缓存;
S203的具体步骤为:
缓存服务模块将用户权限信息发送至安全校验子模块;
安全校验子模块负责根据用户请求URL与用户权限进行匹配判断,若存在访问权限,则进入路由转发子模块;
路由转发子模块根据路由配置规则转发请求至对应的业务资源服务进行业务处理。
相对原技术,本发明具有以下有益效果:
一、本申请中的网关中间件整体架构更加灵活,除了核心的网关服务模块,还引入了具备独立运行的用户权限服务模块和缓存服务模块作为补充,既能达到后续缓存服务、用户权限服务的独立升级又不需要对网关中间件进行整体升级,方便程序扩展;也可以将用户权限服务单独集成到单体应用,满足单体系统的权限管理要求,功能组装更加自由灵活,使得整个框架更加容易维护和升级。不仅节省开发成本和维护成本,也更加符合传统企业业务企业针对不同业务采用单体、微服务等不同架构的业务需求,更快实现落地应用。
二、网关更加轻量级,一般的网关微服务全家桶默认引入了配置中心、负载均衡、流量控制、熔断机制、降级管理、预警监控等模块,不仅开发复杂度高,对于部署和运维要求也高。本网关服务模块包含的子模块少,更专注于实现安全校验、缓存控制、路由转发、数据转换的数据处理功能,同时通过集成用户权限服务即可轻松达到权限控制效果。开发维护成本更低,更符合传统企业是实际业务需求。
附图说明
图1为本申请网关中间件的架构示意图;
图2为用户登录验证时序图;
图3为业务数据权限验证时序图。
具体实施方式
下面将结合附图对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在本发明的描述中,需要说明的是,术语“中心”、“上”、“下”、“左”、“右”、“竖直”、“水平”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性。
下面对本申请涉及的一些技术术语进行说明:
中间件:中间件是一种独立的软件层,它提供了一系列的服务和功能,使得应用程序能够更加方便地访问硬件资源和通信协议。中间件通常被视为底层技术的构建块,为业务应用程序和基础设施提供了各种功能,如消息传递、事务处理、安全、数据管理和缓存等。
网关:网关的角色是作为一个API架构,用来保护、增强和控制对于API服务的访问。它是一个处于应用程序或服务(提供REST API接口服务)之前的系统,用来管理授权、访问控制和流量限制等。这样提供业务资源的各类REST API接口就被网关保护起来,对所有的调用者透明。因此,隐藏在API网关后面的业务系统就可以专注于创建和管理服务,无需关心这些策略性的请求。
微服务:微服务是一种架构模式,其中应用程序被拆分成小型、自治的服务,每个服务都可以独立部署、扩展和维护。这种架构风格使得应用程序更容易构建、部署和扩展,同时也可以提高可靠性和可维护性。微服务还可以提供更好的可伸缩性和弹性,因为服务可以根据负载进行动态调整。
本申请实施例公开的一种基于轻量级微服务架构的网关中间件,如图1所示,包括网关服务模块、用户权限服务模块和缓存服务模块;
网关服务模块,用于接受外部请求并审核外部请求合法性,向用户权限服务模块和缓存服务模块分发请求,并接受用户权限服务模块和缓存服务模块的请求反馈;
在一些实施例中,网关服务模块包括报文检验子模块、安全校验子模块、令牌管理子模块、路由转发子模块、数据加解密子模块、安全校验子模块、日志记录子模块、配置子模块和核心处理子模块,其中:
报文检验子模块,用于对Http请求报文进行解析并进行合法性校验,所有Http请求进入网关服务模块后,首先进入报文校验子模块。然后由报文校验子模块对报文进行解析并进行合法性校验。例如请求头需要携带令牌、应用标识、终端类型等信息,也可以配置关键词规则对非法请求进行合法性校验;
令牌管理子模块,用于制作和校验令牌:用户第一次登录,令牌管理子模块生成Token并返回给客户端,后续请求由客户端携带这个Token请求数据即可,无需每次请求都进行账号和密码验证。具体执行步骤如下:
(1)客户端输入账号、密码进行登录;
(2)网关中间件收到请求,进行账号密码验证;
(3)验证成功后,令牌管理子模块签发Token,同时将Token发送给客户端;
(4)客户端收到Token后进行存储,比如存储在Cookie、Local Storage、SessionStorage中;
(5)客户端每次向服务器请求资源的时候携带第3步签发的Token;
(6)令牌管理子模块收到请求,采用filter过滤器,校验请求头携带的Token,校验成功则返回请求数据,校验失败则返回错误码;
路由转发子模块,用于根据路由规则将请求转发到正确的目标地址,支持基于不同的路由规则进行转发,比如固定URL、URL关键字、系统标识、其他参数等路由规则,匹配路由并确定了目标URI后,将请求转发到目标URI,并将响应返回给客户端;该路由转发子模块更加智能,传统应用的路由转发都是在配置表动态增加路由规则,需要重启网关服务才能立即生效;微服务应用普遍引入服务注册模块来解决,体量比较重且增加维护难度。本发明的路由规则使用系统和服务标识作为标签,标签跟后端业务服务一一匹配,当新的业务节点加入时就同步实现路由配置规则的动态添加,达到路由规则无需额外单独维护的效果,且不需要重启网关服务即可立即生效。
核心处理子模块,用于调用用户权限服务模块、缓存服务模块和用户终端。作为网关服务模块的核心处理逻辑模块,主要实现与其他模块的相互调用,起到承上启下的作用,具体包含以下交互场景:
调用用户权限服务模块:校验用户账号和密码、提供用户登录信息、校验用户访问权限、提供用户权限信息。
调用缓存服务模块:缓存令牌信息、缓存用户登录信息、缓存用户权限数据。
调用用户终端:推送错误信息、推送成功信息、推送令牌及登录令牌、推送业务数据。
数据加解密子模块,用于对网关服务模块接受的数据解密,对网关服务模块发出的数据加密。自定义加解密filter,实现对请求前的处理以及返回后的处理。
处理顺序:请求数据->自定义解密filter->业务处理->自定义加密filter->返回结果
通过定义参数加解密匹配规则,数据加解密子模块在处理业务请求之前添加对参数的统一解密处理,到达后端业务服务时传递解密后的正常参数。对于业务处理完的结果,同样在返回之前对返回结果进行统一加密处理,达到对所有业务请求数据加解密的统一处理,有效解决业务数据水平权限的漏洞,同时规避加解密逻辑对于业务功能的代码侵入。
安全校验子模块,用于根据检查策略负责对登录用户进行合法性校验。负责对每一个请求进行安全合法性校验,严格控制身份合法性、访问数据权限,避免越权访问造成数据流失,严密保护数据资产安全。安全校验子模块根据检查策略负责对登录用户进行合法性校验,比如请求IP限制、时间戳、登录次数限制、多地登录强制退出、输入密码错误次数上限、强制更改密码等安全性验证,验证通过才允许发放令牌。至于业务数据权限方面,通过与用户权限服务模块关联,匹配请求URL与当前登录用户拥有的权限进行比对,比对通过,才允许转发请求至业务服务进行业务处理。
日志记录子模块,用于记录网关所有请求的日志。日志记录子模块是网关中间件位于整个系统的最前端,它扮演一个“哨兵”的角色,是业务系统与客户端之间构建的一道关口,日志子模块负责记录网关所有请求的日志,它可以帮助系统管理员和开发人员了解系统的运行状态,以便能够及时发现并解决问题,也是安全审计的重要基础数据源。
配置子模块,用于网关服务模块的所有配置管理及加载。负责网关服务模块的所有配置管理及加载,加载后应用于网关服务模块的所有需要获取配置并进行处理的逻辑块。比如静态路由、动态路由、自动路由、令牌缓存时效、用户权限缓存时效、加解密参数规则等。在网关服务模块启动时进行加载;如果服务运行过程中有调整,不需要重启服务即可实现热加载。
用户权限服务模块,用于对请求进行权限校验,并提供用户权限数据。服务权限服务模块提供功能角色、用户、功能权限、角色与功能权限的关系、用户与角色的关系的维护,且支持多业务系统的统一维护。功能权限分配给角色,角色与人员关联,从而实现对用户的权限分配管理。用户第一次发起业务数据请求时,用户权限服务模块负责提供当前用户的功能权限数据;当缓存失效后,又负责从配置数据库获取数据并重新缓存。用户权限服务模块主要通过核心处理子模块实现与网关服务模块的交互。
缓存服务模块,用于缓存用户信息,并提供所述缓存用户信息。缓存用户权限数据、令牌数据、用户登录信息。一般缓存的数据都是每个请求都会使用的热数据,通过有效的缓存机制,可以避免频繁访问后端业务,减轻服务器压力,提升系统响应能力。缓存服务模块主要通过核心处理子模块实现与网关服务模块的交互。
在一些实施例中,缓存服务模块所缓存的用户信息包括用户登录信息、用户登录令牌和用户权限信息。
本申请实施例还提供一种身份认证及权限验证统一管理方法,应用于基于轻量级微服务架构的网关中间件,包括:用户登录验证和业务数据权限验证,如图2所示:其中用户登录验证的具体步骤包括:
S101:网关服务模块接受并审查外部请求的合法性,将审查合法的请求发送至用户权限管理模块;拒绝审查不合法的请求;
S102:用户权限服务模块对请求数据中的账号密码进行正确性校验,若检验通过,则发送该请求数据对应的用户信息至网关服务模块制作令牌;拒绝检验不正确的请求;
S103:网关服务模块将制作好的令牌发送至缓存服务模块进行缓存,并向终端客户颁发令牌;
如图3所示,业务数据权限验证具体步骤包括:
S201:网关服务模块接受外部请求并审查请求的合法性,若请求审查不合法,则拒绝该请求;若审查合法,则将请求数据发送至缓存服务模块;
S202:若缓存服务模块中已缓存该用户权限信息,网关服务模块直接从缓存服务模块中获取用户权限信息;若缓存服务模块未缓存该用户权限信息,则网关服务模块从用户权限模块获取用户权限信息,并将获取的用户权限信息发送至缓存服务模块进行缓存;
S203:网关服务模块从缓存服务模块获取S202中缓存的用户权限信息,并转发请求至对应的业务资源服务进行业务处理。
在本实施例中,S101的具体步骤为:
报文校验子模块接收外部请求报文并进行对报文进行校验,若报文格式不符合要求,则直接拒绝该HTTP请求;
若报文格式符合要求,则将请求数据发至核心处理子模块,并通过核心处理子模块转发至安全校验子模块;安全校验子模块根据检查策略负责对登录用户进行合法性校验,若校验失败,则结束请求;
若安全校验子模块校验成功,则请求进入核心处理子模块,核心处理子模块转发请求数据至用户权限服务模块;
S103的具体步骤为:
令牌管理子模块制作令牌,将令牌、用户信息发送至缓存服务模块进行缓存,并将令牌发送至数据加解密子模块进行加密;
数据加解密子模块将加密后的令牌发送至核心子模块,核心子模块向终端用户颁发令牌。
在本实施例中S201的具体步骤为:
报文检验子模块接受外部请求报文并对报文进行校验,若报文格式不符合要求,则直接拒绝该HTTP请求;若报文格式符合要求,则将请求数据发送至令牌管理子模块;
令牌管理子模块对请求数据中的令牌合法性进行校验,若校验失败,则结束请求;若校验合格,则将请求数据发至核心处理子模块,核心处理子模块将请求数据发送至缓存服务模块;
S202的具体步骤为:
若缓存服务模块中已缓存该用户权限信息,缓存服务模块向核心处理子模块返回该请求用户权限信息;
若缓存服务模块不存在该请求用户权限信息,则核心处理子模块将该请求发至用户权限服务模块,用户权限服务模块向核心处理子模块返回该请求用户权限信息,核心处理子模块向缓存服务模块发送该请求用户权限信息进行缓存;
S203的具体步骤为:
缓存服务模块将用户权限信息发送至安全校验子模块;
安全校验子模块负责根据用户请求URL与用户权限进行匹配判断,若存在访问权限,则进入路由转发子模块;
路由转发子模块根据路由配置规则转发请求至对应的业务资源服务进行业务处理。
下面针对用户登录验证所应用的业务场景作详细的说明:
(1)用户通过PC端、移动端或其它客户端发起登录申请,登录方式支持多种,比如账号密码、手机号、第三方平台账号等,Http请求进入网关服务模块;
(2)网关服务模块首先对请求进行合法性校验,合法性校验支持但不限于以下内容:用户是否多地登录、访问IP白名单、连续失败登录次数、时间戳、密码过期等适配安全等保要求的验证;
(3)第一重验证通过后,进入将账号合法性校验,Http请求携带登录信息进入用户权限服务模块,用户权限服务模块通过内置数据访问接口访问数据库,并进行账号存在性查询,最终将查询结果返回网关服务模块;
(4)如果账号存在,网关服务模块再次请求用户权限服务模块获取用户标识信息,用户权限服务模块通过内置数据访问层访问数据库,并进行信息查询,最终将查询结果返回网关服务模块;
(5)网关服务模块根据获取的用户信息进行令牌制作,令牌内容包含用户标识、用户登录基本信息、应用标识等,同时对数据进行加密处理,防止被拦截攻击;
(6)为了提升系统的吞吐量,更短时间内响应客户请求,引入缓存服务模块,网关服务模块发送令牌、用户登录信息至缓存服务模块进行数据缓存,因令牌具备用户惟一性,因此缓存服务模块根据令牌对用户登录信息进行缓存,并设置有效过期时间;
(7)网关服务模块发送令牌至用户终端,结束请求。
下面针对业务数据权限验证所应用的业务场景作详细说明:
(1)用户通过PC端、移动端或其它客户端发起业务数据请求,Http请求进入网关服务模块;
(2)网关服务模块首先对请求进行合法性校验,合法性校验支持但不限于以下内容:是否携带Token,是否携带应用标识、关键业务主键是否加密等适配安全要求的验证;
(3)验证通过后,网关服务模块负责用户权限合法性校验。首先从缓存中获取登录用户的权限缓存数据,如果不存在,Http请求将携带登录信息访问用户权限服务模块,用户权限服务模块通过内置数据访问接口访问数据库,并进行用户权限数据查询,最终将查询结果返回网关服务模块;
(4)如果用户权限数据获取成功,网关服务模块再次调用缓存服务模块对用户权限数据进行缓存并设置有效过期时间,并返回操作成功信息至网关服务模块;
(5)网关服务模块根据获取的用户权限数据进行权限校验,通过对用户请求URL与权限数据进行字符串完全匹配,如果匹配不上则拒绝请求,并将用户没有权限访问信息反馈至用户终端;否则,匹配成功则进入路由转发环节;
(6)网关服务模块转发请求前,根据加解密配置规则对关键业务数据参数进行解密处理,然后根据路由配置规则将请求转发到正确的业务资源服务,由对应的业务资源服务负责对请求参数进行解析、匹配,并请求对应的业务数据库进行数据操作,并经过业务逻辑处理后将业务执行结果返回网关服务模块;
(7)网关服务模块根据加解密配置规则对关键业务数据参数进行加密处理,然后将业务数据转发至用户终端,结束请求。
上述实施方式只为说明本发明的技术构思及特点,其目的在于让熟悉此项技术的人能够了解本发明的内容并据以实施,并不能以此限制本发明的保护范围。凡根据本发明精神实质所做的等效变换或修饰,都应涵盖在本发明的保护范围之内。
Claims (10)
1.一种基于轻量级微服务架构的网关中间件,其特征在于:包括网关服务模块、用户权限服务模块和缓存服务模块;
网关服务模块,用于接受外部请求并审核外部请求合法性,向用户权限服务模块和缓存服务模块分发请求,并接受用户权限服务模块和缓存服务模块的请求反馈,向外部分发请求反馈;
用户权限服务模块与网关服务模块连接,用于对请求进行权限校验,并向网关服务模块提供用户权限数据;
缓存服务模块与网关服务模块连接,用于缓存用户信息,并向网关服务模块提供所述缓存用户信息。
2.根据权利要求1所述的一种基于轻量级微服务架构的网关中间件,其特征在于:所述网关服务模块包括报文检验子模块、令牌管理子模块、路由转发子模块和核心处理子模块;
报文检验子模块,用于对Http请求报文进行解析并进行合法性校验;
令牌管理子模块,用于制作和校验令牌;
路由转发子模块,用于根据路由规则将请求转发到正确的目标地址;
核心处理子模块,用于调用用户权限服务模块、缓存服务模块和用户终端。
3.根据权利要求2所述的一种基于轻量级微服务架构的网关中间件,其特征在于:所述网关服务模块还包括数据加解密子模块,用于对网关服务模块接受的数据解密,对网关服务模块发出的数据加密。
4.根据权利要求2所述的一种基于轻量级微服务架构的网关中间件,其特征在于:所述网关服务模块还包括安全校验子模块,用于根据检查策略负责对登录用户进行合法性校验。
5.根据权利要求2所述的一种基于轻量级微服务架构的网关中间件,其特征在于:所述网关服务模块还包括日志记录子模块,用于记录网关所有请求的日志。
6.根据权利要求2所述的一种基于轻量级微服务架构的网关中间件,其特征在于:所述网关服务模块还包括配置子模块,用于网关服务模块的所有配置管理及加载。
7.根据权利要求1-6所述的任一种基于轻量级微服务架构的网关中间件,其特征在于:缓存服务模块所缓存的用户信息包括用户登录信息、用户登录令牌和用户权限信息。
8.一种身份认证及权限验证统一管理方法,其特征在于,应用于基于轻量级微服务架构的网关中间件,包括:用户登录验证和业务数据权限验证,其中用户登录验证的具体步骤包括:
S101:网关服务模块接受并审查外部请求的合法性,将审查合法的请求发送至用户权限管理模块;拒绝审查不合法的请求;
S102:用户权限服务模块对请求数据中的账号密码进行正确性校验,若检验通过,则发送该请求数据对应的用户信息至网关服务模块制作令牌;拒绝检验不正确的请求;
S103:网关服务模块将制作好的令牌发送至缓存服务模块进行缓存,并向终端客户颁发令牌;
业务数据权限验证具体步骤包括:
S201:网关服务模块接受外部请求并审查请求的合法性,若请求审查不合法,则拒绝该请求;若审查合法,则将请求数据发送至缓存服务模块;
S202:若缓存服务模块中已缓存该用户权限信息,网关服务模块直接从缓存服务模块中获取用户权限信息;若缓存服务模块未缓存该用户权限信息,则网关服务模块从用户权限模块获取用户权限信息,并将获取的用户权限信息发送至缓存服务模块进行缓存;
S203:网关服务模块从缓存服务模块获取S202中缓存的用户权限信息,并转发请求至对应的业务资源服务进行业务处理。
9.根据权利要求8所述的一种身份认证及权限验证统一管理方法,其特征在于:S101的具体步骤为:
报文校验子模块接收外部请求报文并进行对报文进行校验,若报文格式不符合要求,则直接拒绝该HTTP请求;
若报文格式符合要求,则将请求数据发至核心处理子模块,并通过核心处理子模块转发至安全校验子模块;安全校验子模块根据检查策略负责对登录用户进行合法性校验,若校验失败,则结束请求;
若安全校验子模块校验成功,则请求进入核心处理子模块,核心处理子模块转发请求数据至用户权限服务模块;
S103的具体步骤为:
令牌管理子模块制作令牌,将令牌、用户信息发送至缓存服务模块进行缓存,并将令牌发送至数据加解密子模块进行加密;
数据加解密子模块将加密后的令牌发送至核心子模块,核心子模块向终端用户颁发令牌。
10.根据权利要求8所述的一种身份认证及权限验证统一管理方法,其特征在于:S201的具体步骤为:
报文检验子模块接受外部请求报文并对报文进行校验,若报文格式不符合要求,则直接拒绝该HTTP请求;若报文格式符合要求,则将请求数据发送至令牌管理子模块;
令牌管理子模块对请求数据中的令牌合法性进行校验,若校验失败,则结束请求;若校验合格,则将请求数据发至核心处理子模块,核心处理子模块将请求数据发送至缓存服务模块;
S202的具体步骤为:
若缓存服务模块中已缓存该用户权限信息,缓存服务模块向核心处理子模块返回该请求用户权限信息;
若缓存服务模块不存在该请求用户权限信息,则核心处理子模块将该请求发至用户权限服务模块,用户权限服务模块向核心处理子模块返回该请求用户权限信息,核心处理子模块向缓存服务模块发送该请求用户权限信息进行缓存;
S203的具体步骤为:
缓存服务模块将用户权限信息发送至安全校验子模块;
安全校验子模块负责根据用户请求URL与用户权限进行匹配判断,若存在访问权限,则进入路由转发子模块;
路由转发子模块根据路由配置规则转发请求至对应的业务资源服务进行业务处理。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311807282.1A CN117768530A (zh) | 2023-12-26 | 2023-12-26 | 一种基于轻量级微服务架构的网关中间件 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311807282.1A CN117768530A (zh) | 2023-12-26 | 2023-12-26 | 一种基于轻量级微服务架构的网关中间件 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117768530A true CN117768530A (zh) | 2024-03-26 |
Family
ID=90312329
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311807282.1A Pending CN117768530A (zh) | 2023-12-26 | 2023-12-26 | 一种基于轻量级微服务架构的网关中间件 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117768530A (zh) |
-
2023
- 2023-12-26 CN CN202311807282.1A patent/CN117768530A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8386776B2 (en) | Certificate generating/distributing system, certificate generating/distributing method and certificate generating/distributing program | |
EP1953950B1 (en) | A method for protecting network service application account, the system, and the apparatus thereof | |
CN102638454B (zh) | 一种面向http身份鉴别协议的插件式单点登录集成方法 | |
JP4742903B2 (ja) | 分散認証システム及び分散認証方法 | |
CN101990183B (zh) | 保护用户信息的方法、装置及系统 | |
US7010600B1 (en) | Method and apparatus for managing network resources for externally authenticated users | |
RU2676896C2 (ru) | Способ и система аутентификации пользователей для предоставления доступа к сетям передачи данных | |
WO2005114946A1 (en) | An apparatus, computer-readable memory and method for authenticating and authorizing a service request sent from a service client to a service provider | |
CN103023856A (zh) | 单点登录的方法、系统和信息处理方法、系统 | |
CN104702562B (zh) | 终端融合业务接入方法、系统与终端 | |
WO2009129753A1 (zh) | 提高网络身份认证安全性的方法和装置 | |
CN114338242B (zh) | 一种基于区块链技术的跨域单点登录访问方法及系统 | |
CN112788031A (zh) | 基于Envoy架构的微服务接口认证系统、方法及装置 | |
CN102893579B (zh) | 用于在通信系统中发放票据的方法、节点和设备 | |
CN116980163A (zh) | 基于可信执行环境的数据处理方法、装置、设备及介质 | |
CN114390524B (zh) | 一键登录业务的实现方法和装置 | |
JP2006522374A (ja) | アクセス提供方法 | |
CN109274699A (zh) | 鉴权方法、装置、服务器及存储介质 | |
WO2009153402A1 (en) | Method, arrangement and computer program for authentication data management | |
KR100639992B1 (ko) | 클라이언트 모듈을 안전하게 배포하는 보안 장치 및 그방법 | |
CN117768530A (zh) | 一种基于轻量级微服务架构的网关中间件 | |
CN115118454A (zh) | 一种基于移动应用的级联认证系统及认证方法 | |
CN112491895A (zh) | 一种基于微服务的身份认证方法、存储介质及系统 | |
CN114385995B (zh) | 一种基于Handle的标识解析微服务接入工业互联网的方法及标识服务系统 | |
US20230171250A1 (en) | Method and system for authenticating a user on an identity-as-a-service server |
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 |