微服务网关鉴权方法和系统技术方案

技术编号:38427726 阅读:9 留言:0更新日期:2023-08-07 11:25
本申请涉及一种微服务网关鉴权方法和系统,其中,该方法包括:通过网关层,获取客户端发起的请求的第一请求报文,并对第一请求报文进行内部鉴权标识清洗,得到第二请求报文;根据第二请求报文,调用第一微服务应用;在第一微服务应用调用第二微服务应用时,构造目标请求,在目标请求的第三请求报文中添加目标内部鉴权标识,并发送目标请求至第二微服务应用的目标接口;判断目标接口是否支持内部鉴权;在目标接口支持内部鉴权时,根据目标内部鉴权标识,对目标请求进行内部鉴权验证,在内部鉴权验证通过时,执行目标接口的业务逻辑。通过本申请,在获取到用户业务鉴权之外数据的同时,提高了系统的可维护性。提高了系统的可维护性。提高了系统的可维护性。

【技术实现步骤摘要】
微服务网关鉴权方法和系统


[0001]本申请涉及计算机应用
,特别是涉及微服务网关鉴权方法和系统。

技术介绍

[0002]在微服务架构中,通常至少会存在一个以上的微服务,服务与服务之间无可避免的会产生交互,例如有一客户服务对外提供收件邮箱信息查询接口,此接口若完全开放给任意用户调取,则会出现数据丢失越权等安全问题,所以需要进行业务鉴权,即根据用户角色的权限范围进行收件邮箱信息查询,防止越权。
[0003]如果想获取用户业务鉴权之外的数据,目前的方案为:通过在调用者服务内再次实现被调用者服务的功能,来获取用户业务鉴权(根据当次请求的用户权限范围进行认证鉴权)之外的数据。这种方案会造成系统冗余、系统之间产生耦合,不利于后期维护。
[0004]针对相关技术中存在用户为获取业务鉴权之外的数据导致系统冗余、系统之间产生耦合,后期维护困难问题,目前还没有提出有效的解决方案。

技术实现思路

[0005]在本实施例中提供了一种微服务网关鉴权方法和系统,以解决相关技术中用户为获取业务鉴权之外的数据导致系统冗余、系统之间产生耦合,后期维护困难问题。
[0006]第一个方面,在本实施例中提供了一种微服务网关鉴权方法,包括:
[0007]通过网关层,获取客户端发起的请求的第一请求报文,并对所述第一请求报文进行内部鉴权标识清洗,得到第二请求报文;根据所述第二请求报文,调用第一微服务应用;
[0008]在所述第一微服务应用调用第二微服务应用时,构造目标请求,在所述目标请求的第三请求报文中添加目标内部鉴权标识,并发送所述目标请求至所述第二微服务应用的目标接口;
[0009]判断所述目标接口是否支持内部鉴权;在所述目标接口支持内部鉴权时,根据所述目标内部鉴权标识,对所述目标请求进行内部鉴权验证,在所述内部鉴权验证通过时,执行所述目标接口的业务逻辑。
[0010]在其中的一些实施例中,所述通过网关层,获取客户端发起的请求的第一请求报文,并对所述第一请求报文进行内部鉴权标识清洗,包括:
[0011]在所述网关层构造全局拦截器,拦截所述第一请求报文;
[0012]对所述第一请求报文的请求头进行内部鉴权标识清洗。
[0013]在其中的一些实施例中,所述在所述目标请求的第三请求报文中添加目标内部鉴权标识,包括:
[0014]在所述第三请求报文的请求头中添加随机生成的所述目标内部鉴权标识。
[0015]在其中的一些实施例中,所述在所述目标请求的第三请求报文中添加目标内部鉴权标识之后,还包括:
[0016]通过所述第一微服务应用,将所述目标内部鉴权标识存入消息队列中。
[0017]在其中的一些实施例中,所述根据所述目标内部鉴权标识,对所述目标请求进行内部鉴权验证,包括:
[0018]从所述第三请求报文中,获取所述目标内部鉴权标识,在所述消息队列中存在所述目标内部鉴权标识时,所述内部鉴权验证通过。
[0019]在其中的一些实施例中,所述根据所述第二请求报文,调用第一微服务应用之后,还包括:
[0020]在所述第一微服务应用没有调用第二微服务应用时,执行所述第一微服务应用的业务逻辑,得到响应结果,并将所述响应结果返回至所述客户端。
[0021]在其中的一些实施例中,所述判断所述目标接口是否支持内部鉴权,包括:
[0022]通过在所述目标接口上的内部鉴权注解,判断所述目标接口是否支持内部鉴权。
[0023]第二个方面,在本实施例中提供了一种微服务网关鉴权系统,包括:
[0024]清洗模块,用于通过网关层,获取客户端发起的请求的第一请求报文,并对所述第一请求报文进行内部鉴权标识清洗,得到第二请求报文;根据所述第二请求报文,调用第一微服务应用;
[0025]添加模块,用于在所述第一微服务应用调用第二微服务应用时,构造目标请求,在所述目标请求的第三请求报文中添加目标内部鉴权标识,并发送所述目标请求至所述第二微服务应用的目标接口;
[0026]验证模块,用于判断所述目标接口是否支持内部鉴权;在所述目标接口支持内部鉴权时,根据所述目标内部鉴权标识,对所述目标请求进行内部鉴权验证,在所述内部鉴权验证通过时,执行所述目标接口的业务逻辑。
[0027]第三个方面,在本实施例中提供了一种电子装置,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述第一个方面所述的一种微服务网关鉴权方法。
[0028]第四个方面,在本实施例中提供了一种存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述第一个方面所述的一种微服务网关鉴权方法。
[0029]与相关技术相比,在本实施例中提供的为服务网关鉴权方法和系统,通过网关层,获取客户端发起的请求的第一请求报文,并对第一请求报文进行内部鉴权标识清洗,得到第二请求报文;根据所述第二请求报文,调用第一微服务应用;在第一微服务应用调用第二微服务应用时,构造目标请求,在目标请求的第三请求报文中添加目标内部鉴权标识,并发送目标请求至第二微服务应用的目标接口;判断目标接口是否支持内部鉴权;在目标接口支持内部鉴权时,根据目标内部鉴权标识,对目标请求进行内部鉴权验证,在内部鉴权验证通过时,执行目标接口的业务逻辑,解决了现有技术存在的用户为获取业务鉴权之外的数据导致系统冗余、后期维护困难问题,在获取到用户业务鉴权之外数据的同时,提高了系统的可维护性。
[0030]本申请的一个或多个实施例的细节在以下附图和描述中提出,以使本申请的其他特征、目的和优点更加简明易懂。
附图说明
[0031]此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申
请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
[0032]图1是本实施例的微服务网关鉴权方法终端的硬件结构框图;
[0033]图2是本实施例的微服务网关鉴权方法的流程图;
[0034]图3是本实施例的微服务网关鉴权方法的流程图;
[0035]图4是本优选实施例的微服务网关鉴权方法的流程图;
[0036]图5是本实施例的微服务网关鉴权系统的结构框图。
[0037]图中:102、处理器;104、存储器;106、传输设备;108、输入输出设备;10、清洗模块;20、添加模块;30、验证模块。
具体实施方式
[0038]为更清楚地理解本申请的目的、技术方案和优点,下面结合附图和实施例,对本申请进行了描述和说明。
[0039]除另作定义外,本申请所涉及的技术术语或者科学术语应具有本申请所属
具备一般技能的人所理解的一般含义。在本申请中的“一”、“一个”、“一种”、“该”、“这些”等类似的词并不表示数量上的限制,它们可以是单数或者复数。在本申请中所涉及的术语“包括”、“包含”、“具有”及其任何变体,其目的是涵盖不排他的包含;例如本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种微服务网关鉴权方法,其特征在于,包括:通过网关层,获取客户端发起的请求的第一请求报文,并对所述第一请求报文进行内部鉴权标识清洗,得到第二请求报文;根据所述第二请求报文,调用第一微服务应用;在所述第一微服务应用调用第二微服务应用时,构造目标请求,在所述目标请求的第三请求报文中添加目标内部鉴权标识,并发送所述目标请求至所述第二微服务应用的目标接口;判断所述目标接口是否支持内部鉴权;在所述目标接口支持内部鉴权时,根据所述目标内部鉴权标识,对所述目标请求进行内部鉴权验证,在所述内部鉴权验证通过时,执行所述目标接口的业务逻辑。2.根据权利要求1所述的微服务网关鉴权方法,其特征在于,所述通过网关层,获取客户端发起的请求的第一请求报文,并对所述第一请求报文进行内部鉴权标识清洗,包括:在所述网关层构造全局拦截器,拦截所述第一请求报文;对所述第一请求报文的请求头进行内部鉴权标识清洗。3.根据权利要求1所述的微服务网关鉴权方法,其特征在于,所述在所述目标请求的第三请求报文中添加目标内部鉴权标识,包括:在所述第三请求报文的请求头中添加随机生成的所述目标内部鉴权标识。4.根据权利要求1所述的微服务网关鉴权方法,其特征在于,所述在所述目标请求的第三请求报文中添加目标内部鉴权标识之后,还包括:通过所述第一微服务应用,将所述目标内部鉴权标识存入消息队列中。5.根据权利要求4所述的微服务网关鉴权方法,其特征在于,所述根据所述目标内部鉴权标识,对所述目标请求进行内部鉴权验证,包括:从所述第三请求报文中,获取所述目标内部鉴权标识,在所述消息队列中存在所述目标内部鉴权...

【专利技术属性】
技术研发人员:郭坤袁国平王欣税雪飞
申请(专利权)人:杭州安恒信息技术股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1