System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术涉及微服务,特别是涉及一种访问鉴权方法、装置、电子设备及存储介质。
技术介绍
1、微服务是一种将单个web应用程序根据功能开发为多个“小型服务”的架构技术,通常每个“小型服务”独立部署到不同的服务器上,并且通过http(hypertext transferprotocol,超文本传输协议)资源api(application programming interface,应用程序编程接口)等方式通信,通过微服务集群的形式构成整个web应用程序。在当前微服务架构体系下,访问微服务url(uniform resource locator,统一资源定位符)的形式有两种,一种是通过网关,例如微服务网关(gateway、zuul),配置路由到对应的服务,另一种通过feign接口进行内部服务的调用。
2、一个大型的微服务集群可能包含上百个微服务,而微服务之间通过互相调用的方式完成业务请求,当外部服务通过微服务网关(gateway)请求访问内部服务时,由微服务网关(gateway)转发到对应的微服务,为了保护访问的微服务免受恶意攻击和未授权访问资源,需要对访问鉴权。当这些内部微服务使用feign接口进行互相调用的时候,如果不对访问进行鉴权,则会导致不仅当前内部服务可以访问,其他服务也可以访问的情况发生,甚至外部服务访问请求也可以访问到该内部服务的资源。例如对数据库的删除操作访问,这类操作可能会带来较大的安全隐患。
3、目前,服务之间访问鉴权主要有以下几种方法,一种是基于api网关的接口认证(token)的鉴权方法
4、但是,第一种方法基于api网关的接口认证token的鉴权方法,需要获取用户登录后的认证(token)信息,当服务之间以异步的形式调用时,认证信息可能会出现不在有效期的情况。例如调用服务a执行定时任务,定时任务调用服务b的更新数据操作,定时任务不会立即操作,需等待到规定的时间执行,此时,认证信息可能已经失效。服务a等待一段时间,再次请求服务b时无法鉴权,并且若接口提供给外部使用,不需要登录,此时放开认证信息校验,也可能会造成安全问题。第二种基于ip、端口白名单设置,这种方法只是简单的将请求方的ip、端口等信息与白名单中的信息进行校验,若请求方篡改或者伪造ip、端口等信息,则也可以通过信息校验,导致服务之间的访问存在较大安全隐患。
5、综上所述,现有的服务之间访问鉴权方法安全性较差。
技术实现思路
1、基于此,有必要针对上述技术问题,提供一种安全性较高的访问鉴权方法、装置、电子设备及存储介质。
2、本专利技术提供了一种访问鉴权方法,所述方法包括:
3、接收来自外部服务的第一访问请求,并调用微服务网关作为所述第一访问请求的入口,所述第一访问请求为所述外部服务器通过统一资源定位器发出的访问内部服务资源的请求;
4、调用过滤器根据所述第一访问请求对应的业务接口进行鉴权,并在所述第一访问请求鉴权通过后调用网关路由将所述第一访问请求转发至第一服务,所述第一服务用于基于所述第一访问请求反馈第一处理结果;
5、基于所述第一处理结果,获取所述第一访问请求头中的验证标识符,并将所述验证标识符拼接为第二访问请求;
6、调用拦截器判断所述第二访问请求中的验证标识符是否正确,并在所述验证标识符正确时,将所述第二访问请求转发至第二服务,所述第二服务用于基于所述第二访问请求反馈第二处理结果。
7、在其中一个实施例中,所述过滤器包括全局过滤器和路由过滤器,所述全局过滤器为已有过滤器,所述路由过滤器为配置路由对应的过滤器;
8、所述调用过滤器根据所述第一访问请求对应的业务接口进行鉴权,并在所述第一访问请求鉴权通过后调用网关路由将所述第一访问请求转发至第一服务,包括:
9、调用所述微服务网关查找与所述第一访问请求匹配的第一路由;
10、当所述第一路由断言可用时,创建过滤器链并调用所述过滤器链以获取所述第一访问请求匹配的路由过滤器。
11、在其中一个实施例中,所述调用过滤器根据所述第一访问请求对应的业务接口进行鉴权,并在所述第一访问请求鉴权通过后调用网关路由将所述第一访问请求转发至第一服务,还包括:
12、获取多个来自外部服务的所述第一访问请求,并按照获取时间先后对多个所述第一访问请求进行排序;
13、调用所述全局过滤器以及每个所述第一访问请求对应的所述路由过滤器按照排序对所述第一访问请求进行过滤,以确定可用的所述路由过滤器及其对应的所述第一访问请求。
14、在其中一个实施例中,所述基于所述第一处理结果,获取所述第一访问请求头中的验证标识符,并将所述验证标识符拼接为第二访问请求,之前还包括:
15、获取所述第一访问请求对应的加密参数,并将所述加密参数组成新的字符串,所述加密参数至少包括所述第一访问请求的外部服务地址、密钥以及时间戳;
16、将所述外部服务地址、密钥以及新的字符串进行拼接,以将所述新的字符串加密成所述验证标识码。
17、在其中一个实施例中,所述方法还包括:
18、当多个所述第一访问请求进入所述微服务网关时,判断所述第一服务是否基于所述第一访问请求反馈所述第一处理结果;若否,则
19、将无法反馈的所述第一服务对应的第一访问请求返回至外部服务,以对所述第一服务进行降级处理。
20、在其中一个实施例中,所述调用拦截器判断所述第二访问请求中的验证标识符是否正确,并在所述验证标识符正确时,将所述第二访问请求转发至第二服务,包括:
21、将所述验证标识符发送至所述拦截器,并调用所述拦截器判断所述验证标识符是否正确;若是,则
22、将所述第二访问请求发送至所述第二服务,并调用所述第本文档来自技高网...
【技术保护点】
1.一种访问鉴权方法,其特征在于,所述方法包括:
2.根据权利要求1所述的访问鉴权方法,其特征在于,所述过滤器包括全局过滤器和路由过滤器,所述全局过滤器为已有过滤器,所述路由过滤器为配置路由对应的过滤器;
3.根据权利要求2所述的访问鉴权方法,其特征在于,所述调用过滤器根据所述第一访问请求对应的业务接口进行鉴权,并在所述第一访问请求鉴权通过后调用网关路由将所述第一访问请求转发至第一服务,还包括:
4.根据权利要求1所述的访问鉴权方法,其特征在于,所述基于所述第一处理结果,获取所述第一访问请求头中的验证标识符,并将所述验证标识符拼接为第二访问请求,之前还包括:
5.根据权利要求1所述的访问鉴权方法,其特征在于,所述方法还包括:
6.根据权利要求1所述的访问鉴权方法,其特征在于,所述调用拦截器判断所述第二访问请求中的验证标识符是否正确,并在所述验证标识符正确时,将所述第二访问请求转发至第二服务,包括:
7.根据权利要求1至6任一项所述的访问鉴权方法,其特征在于,所述方法还包括:
8.一种访问鉴权装置,
9.一种电子设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7中任一项所述的方法的步骤。
10.一种计算机存储介质,存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述的方法的步骤。
...【技术特征摘要】
1.一种访问鉴权方法,其特征在于,所述方法包括:
2.根据权利要求1所述的访问鉴权方法,其特征在于,所述过滤器包括全局过滤器和路由过滤器,所述全局过滤器为已有过滤器,所述路由过滤器为配置路由对应的过滤器;
3.根据权利要求2所述的访问鉴权方法,其特征在于,所述调用过滤器根据所述第一访问请求对应的业务接口进行鉴权,并在所述第一访问请求鉴权通过后调用网关路由将所述第一访问请求转发至第一服务,还包括:
4.根据权利要求1所述的访问鉴权方法,其特征在于,所述基于所述第一处理结果,获取所述第一访问请求头中的验证标识符,并将所述验证标识符拼接为第二访问请求,之前还包括:
5.根据权利要求1所述的访问鉴权方法,其特征在于,...
【专利技术属性】
技术研发人员:刘婷,牛冠杰,靳星,付成,张鹏,赵静坤,周琼,
申请(专利权)人:联通在线信息科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。