本申请涉及计算机应用,特别是涉及微服务网关鉴权方法和系统。
背景技术:
1、在微服务架构中,通常至少会存在一个以上的微服务,服务与服务之间无可避免的会产生交互,例如有一客户服务对外提供收件邮箱信息查询接口,此接口若完全开放给任意用户调取,则会出现数据丢失越权等安全问题,所以需要进行业务鉴权,即根据用户角色的权限范围进行收件邮箱信息查询,防止越权。
2、如果想获取用户业务鉴权之外的数据,目前的方案为:通过在调用者服务内再次实现被调用者服务的功能,来获取用户业务鉴权(根据当次请求的用户权限范围进行认证鉴权)之外的数据。这种方案会造成系统冗余、系统之间产生耦合,不利于后期维护。
3、针对相关技术中存在用户为获取业务鉴权之外的数据导致系统冗余、系统之间产生耦合,后期维护困难问题,目前还没有提出有效的解决方案。
技术实现思路
1、在本实施例中提供了一种微服务网关鉴权方法和系统,以解决相关技术中用户为获取业务鉴权之外的数据导致系统冗余、系统之间产生耦合,后期维护困难问题。
2、第一个方面,在本实施例中提供了一种微服务网关鉴权方法,包括:
3、通过网关层,获取客户端发起的请求的第一请求报文,并对所述第一请求报文进行内部鉴权标识清洗,得到第二请求报文;根据所述第二请求报文,调用第一微服务应用;
4、在所述第一微服务应用调用第二微服务应用时,构造目标请求,在所述目标请求的第三请求报文中添加目标内部鉴权标识,并发送所述目标请求至所述第二微服务应用的目标接口;
5、判断所述目标接口是否支持内部鉴权;在所述目标接口支持内部鉴权时,根据所述目标内部鉴权标识,对所述目标请求进行内部鉴权验证,在所述内部鉴权验证通过时,执行所述目标接口的业务逻辑。
6、在其中的一些实施例中,所述通过网关层,获取客户端发起的请求的第一请求报文,并对所述第一请求报文进行内部鉴权标识清洗,包括:
7、在所述网关层构造全局拦截器,拦截所述第一请求报文;
8、对所述第一请求报文的请求头进行内部鉴权标识清洗。
9、在其中的一些实施例中,所述在所述目标请求的第三请求报文中添加目标内部鉴权标识,包括:
10、在所述第三请求报文的请求头中添加随机生成的所述目标内部鉴权标识。
11、在其中的一些实施例中,所述在所述目标请求的第三请求报文中添加目标内部鉴权标识之后,还包括:
12、通过所述第一微服务应用,将所述目标内部鉴权标识存入消息队列中。
13、在其中的一些实施例中,所述根据所述目标内部鉴权标识,对所述目标请求进行内部鉴权验证,包括:
14、从所述第三请求报文中,获取所述目标内部鉴权标识,在所述消息队列中存在所述目标内部鉴权标识时,所述内部鉴权验证通过。
15、在其中的一些实施例中,所述根据所述第二请求报文,调用第一微服务应用之后,还包括:
16、在所述第一微服务应用没有调用第二微服务应用时,执行所述第一微服务应用的业务逻辑,得到响应结果,并将所述响应结果返回至所述客户端。
17、在其中的一些实施例中,所述判断所述目标接口是否支持内部鉴权,包括:
18、通过在所述目标接口上的内部鉴权注解,判断所述目标接口是否支持内部鉴权。
19、第二个方面,在本实施例中提供了一种微服务网关鉴权系统,包括:
20、清洗模块,用于通过网关层,获取客户端发起的请求的第一请求报文,并对所述第一请求报文进行内部鉴权标识清洗,得到第二请求报文;根据所述第二请求报文,调用第一微服务应用;
21、添加模块,用于在所述第一微服务应用调用第二微服务应用时,构造目标请求,在所述目标请求的第三请求报文中添加目标内部鉴权标识,并发送所述目标请求至所述第二微服务应用的目标接口;
22、验证模块,用于判断所述目标接口是否支持内部鉴权;在所述目标接口支持内部鉴权时,根据所述目标内部鉴权标识,对所述目标请求进行内部鉴权验证,在所述内部鉴权验证通过时,执行所述目标接口的业务逻辑。
23、第三个方面,在本实施例中提供了一种电子装置,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述第一个方面所述的一种微服务网关鉴权方法。
24、第四个方面,在本实施例中提供了一种存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述第一个方面所述的一种微服务网关鉴权方法。
25、与相关技术相比,在本实施例中提供的为服务网关鉴权方法和系统,通过网关层,获取客户端发起的请求的第一请求报文,并对第一请求报文进行内部鉴权标识清洗,得到第二请求报文;根据所述第二请求报文,调用第一微服务应用;在第一微服务应用调用第二微服务应用时,构造目标请求,在目标请求的第三请求报文中添加目标内部鉴权标识,并发送目标请求至第二微服务应用的目标接口;判断目标接口是否支持内部鉴权;在目标接口支持内部鉴权时,根据目标内部鉴权标识,对目标请求进行内部鉴权验证,在内部鉴权验证通过时,执行目标接口的业务逻辑,解决了现有技术存在的用户为获取业务鉴权之外的数据导致系统冗余、后期维护困难问题,在获取到用户业务鉴权之外数据的同时,提高了系统的可维护性。
26、本申请的一个或多个实施例的细节在以下附图和描述中提出,以使本申请的其他特征、目的和优点更加简明易懂。
1.一种微服务网关鉴权方法,其特征在于,包括:
2.根据权利要求1所述的微服务网关鉴权方法,其特征在于,所述通过网关层,获取客户端发起的请求的第一请求报文,并对所述第一请求报文进行内部鉴权标识清洗,包括:
3.根据权利要求1所述的微服务网关鉴权方法,其特征在于,所述在所述目标请求的第三请求报文中添加目标内部鉴权标识,包括:
4.根据权利要求1所述的微服务网关鉴权方法,其特征在于,所述在所述目标请求的第三请求报文中添加目标内部鉴权标识之后,还包括:
5.根据权利要求4所述的微服务网关鉴权方法,其特征在于,所述根据所述目标内部鉴权标识,对所述目标请求进行内部鉴权验证,包括:
6.根据权利要求1所述的微服务网关鉴权方法,其特征在于,所述根据所述第二请求报文,调用第一微服务应用之后,还包括:
7.根据权利要求1所述的微服务网关鉴权方法,其特征在于,所述判断所述目标接口是否支持内部鉴权,包括:
8.一种微服务网关鉴权系统,其特征在于,包括:
9.一种电子装置,包括存储器和处理器,其特征在于,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行权利要求1至7中任一项所述的微服务网关鉴权方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述的微服务网关鉴权方法的步骤。