System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种基于微服务架构的统一验证方法及系统技术方案_技高网

一种基于微服务架构的统一验证方法及系统技术方案

技术编号:40806727 阅读:15 留言:0更新日期:2024-03-28 19:30
本发明专利技术公开了一种基于微服务架构的统一验证方法及系统,属于微服务架构技术领域,用于解决目前的微服务架构中,对用户请求的验证方式会产生重复的身份验证和授权任务,增加微服务架构的开发和维护复杂性的技术问题。方法包括:根据网关配置列表,确定用户请求的认证属性;根据认证属性,将用户请求发送到对应的认证模块进行认证;在用户请求认证通过后,对用户请求对应的用户信息进行编码,并随用户请求转发到上游微服务;在上游微服务中,通过注解对所述用户信息编码进行标识及解析,以使上游微服务获取用户信息。实现了微服务架构统一的身份认证、权限校验,使业务微服务无需关心令牌校验、权限验证等基础逻辑。减少了业务微服务与认证服务的交互。

【技术实现步骤摘要】

本专利技术涉及微服务架构,尤其涉及一种基于微服务架构的统一验证方法及系统


技术介绍

1、微服务架构是一种流行的应用程序架构,它将应用程序拆分成多个独立的服务,每个服务都运行在自己的进程中,并通过轻量级通信机制进行通信。这种架构可以增加系统的可伸缩性、灵活性以及并发性。

2、然而,随着服务数量的增加,每个服务都需要进行独立的身份验证和权限验证,这会增加开发者的负担,同时也增加了系统的复杂性。此外,一般的设计方法会从网关放过请求,直接在每个微服务进行身份认证和权限验证,这会导致每个服务都需要自己处理身份验证和权限验证,增加了开发和维护的复杂性。即使有些设计使用网关进行统一的身份验证,但是没有将网关的认证结果向上传递,使得上游微服务无法得知请求用户主体,需要重新通过token获取用户信息,这样会增加处理认证和授权的复杂性。即使有设计向上传递认证结果的,但是没有实现统一的解析方式,需要上游微服务自己完成解析,这样会导致每个服务都需要自己解析认证结果,增加了开发和维护的复杂性。

3、综上所述,目前的微服务架构中,单个服务无法轻松地获得用户请求中的信息,会产生重复的身份验证和授权任务,增加微服务架构的开发和维护复杂性。


技术实现思路

1、本专利技术实施例提供了一种基于微服务架构的统一验证方法及系统,用于解决如下技术问题:目前的微服务架构中,对用户请求的验证方式会产生重复的身份验证和授权任务,增加微服务架构的开发和维护复杂性。

2、本专利技术实施例采用下述技术方案:

3、一方面,本专利技术实施例提供了一种基于微服务架构的统一验证方法,方法包括:根据网关配置列表,确定用户请求的认证属性;根据所述认证属性,将所述用户请求发送到对应的认证模块进行认证;在所述用户请求认证通过后,对所述用户请求对应的用户信息进行编码,并随所述用户请求转发到上游微服务;在所述上游微服务中,通过注解对所述用户信息编码进行标识及解析,以使所述上游微服务获取所述用户信息。

4、在一种可行的实施方式中,根据网关配置列表,确定用户请求的认证属性,具体包括:读取所述网关配置列表;其中,所述网关配置列表包括第一请求列表、第二请求列表以及第三请求列表;所述第一请求列表中包含不需要认证的请求列表;所述第二请求列表中包含需要身份认证的请求列表;所述第三请求列表包含需要权限验证的请求列表;依次在所述第一请求列表、第二请求列表以及第三请求列表中查找所述用户请求;基于所述用户请求所属的请求列表,确定所述用户请求的认证属性。

5、在一种可行的实施方式中,依次在所述第一请求列表、第二请求列表以及第三请求列表中查找所述用户请求,基于所述用户请求所属的请求列表,确定所述用户请求的认证属性,具体包括:若在所述第一请求列表中查找到所述用户请求,则确定所述用户请求的认证属性为不需要认证,不再在第二请求列表及第三请求列表中继续查找;若在所述第一请求列表中未查找到所述用户请求,则继续在第二请求列表中查找;若在第二请求列表中查找到所述用户请求,则确定所述用户请求的认证属性为需要身份认证;无论是否在第二请求列表中查找到所述用户请求,都继续在第三请求列表中查找所述用户请求;若在第三请求列表中查找到所述用户请求,则确定所述用户请求的认证属性为需要权限验证。

6、在一种可行的实施方式中,根据所述认证属性,将所述用户请求发送到对应的认证模块进行认证,具体包括:若所述用户请求的认证属性为不需要认证,则放所述用户请求通过网关;若所述用户请求的认证属性中的任一项属性为需要身份认证,则将所述用户请求发送到认证管理器,对所述用户请求的身份进行认证;若所述用户请求的认证属性中的任一项属性为需要权限验证,则将所述用户请求发送到权限管理器,对所述用户请求的权限进行验证。

7、在一种可行的实施方式中,将所述用户请求发送到认证管理器,对所述用户请求的身份进行认证,具体包括:将所述用户请求发送到认证过滤器,并由认证过滤器发送到认证管理器;通过所述认证管理器与认证服务交互,对所述用户请求的令牌有效性进行校验,并将校验结果反馈给所述认证过滤器处理;若令牌校验有效,则身份认证通过;反之则认证失败,中断所述用户请求。

8、在一种可行的实施方式中,将所述用户请求发送到权限管理器,对所述用户请求的权限进行验证,具体包括:将所述用户请求发送到权限管理器;通过所述权限管理器,判断所述用户请求与在所述第三请求列表中约定的角色是否一致;若一致,则返回权限验证通过的决定,反之则中断所述用户请求。

9、在一种可行的实施方式中,对所述用户请求对应的用户信息进行编码,并随所述用户请求转发到上游微服务,具体包括:将所述用户请求的令牌转换为用户信息;对所述用户信息进行base64编码,得到用户信息编码;将所述用户信息编码添加到所述用户请求的请求头中,与所述用户请求一同转发到所述上游微服务。

10、在一种可行的实施方式中,在所述上游微服务中,通过注解对所述编码进行标识及解析,以使所述上游微服务获取所述用户信息,具体包括:在所述用户请求中读取用户信息编码,并通过注解对用户信息编码进行标识;读取所述用户请求中请求头的值;若所述请求头中包含注解,则对所述请求头中的用户信息编码进行base64解码并转换为unityuser对象,得到所述用户信息。

11、在一种可行的实施方式中,在通过注解对所述用户信息编码进行标识及解析,以使所述上游微服务获取所述用户信息之后,所述方法还包括:通过异常处理器,确定所述用户请求存在的异常情况;其中,所述异常情况至少包括:参数缺失、参数校验、参数不匹配、资源未找到以及请求方法不允许。

12、另一方面,本专利技术实施例还提供了一种基于微服务架构的统一验证系统,系统包括:网关服务,用于根据网关配置列表,确定用户请求的认证属性;根据所述认证属性,将所述用户请求发送到对应的认证模块进行认证;在所述用户请求认证通过后,对所述用户请求对应的用户信息进行编码,并随所述用户请求转发到上游微服务;上游微服务,用于通过注解对所述用户信息编码进行标识及解析,以使所述上游微服务获取所述用户信息。

13、与现有技术相比,本专利技术实施例提供的一种基于微服务架构的统一验证方法及系统,具有如下有益效果:

14、本系统实现了微服务架构统一的身份认证、权限校验,使得业务微服务不需要关心令牌校验、权限验证等基础逻辑。同时业务微服务不再需要自己解析令牌、换取用户信息等操作,而是通过注解直接获得用户信息,减少了业务微服务与认证服务的交互,降低了认证服务的被请求压力,降低了业务微服务的逻辑复杂度,提高了系统性能。

本文档来自技高网...

【技术保护点】

1.一种基于微服务架构的统一验证方法,其特征在于,所述方法包括:

2.根据权利要求1所述的一种基于微服务架构的统一验证方法,其特征在于,根据网关配置列表,确定用户请求的认证属性,具体包括:

3.根据权利要求2所述的一种基于微服务架构的统一验证方法,其特征在于,依次在所述第一请求列表、第二请求列表以及第三请求列表中查找所述用户请求,基于所述用户请求所属的请求列表,确定所述用户请求的认证属性,具体包括:

4.根据权利要求1所述的一种基于微服务架构的统一验证方法,其特征在于,根据所述认证属性,将所述用户请求发送到对应的认证模块进行认证,具体包括:

5.根据权利要求4所述的一种基于微服务架构的统一验证方法,其特征在于,将所述用户请求发送到认证管理器,对所述用户请求的身份进行认证,具体包括:

6.根据权利要求4所述的一种基于微服务架构的统一验证方法,其特征在于,将所述用户请求发送到权限管理器,对所述用户请求的权限进行验证,具体包括:

7.根据权利要求1所述的一种基于微服务架构的统一验证方法,其特征在于,对所述用户请求对应的用户信息进行编码,并随所述用户请求转发到上游微服务,具体包括:

8.根据权利要求1所述的一种基于微服务架构的统一验证方法,其特征在于,在所述上游微服务中,通过注解对所述编码进行标识及解析,以使所述上游微服务获取所述用户信息,具体包括:

9.根据权利要求1所述的一种基于微服务架构的统一验证方法,其特征在于,在通过注解对所述用户信息编码进行标识及解析,以使所述上游微服务获取所述用户信息之后,所述方法还包括:

10.一种基于微服务架构的统一验证系统,其特征在于,所述系统包括:

...

【技术特征摘要】

1.一种基于微服务架构的统一验证方法,其特征在于,所述方法包括:

2.根据权利要求1所述的一种基于微服务架构的统一验证方法,其特征在于,根据网关配置列表,确定用户请求的认证属性,具体包括:

3.根据权利要求2所述的一种基于微服务架构的统一验证方法,其特征在于,依次在所述第一请求列表、第二请求列表以及第三请求列表中查找所述用户请求,基于所述用户请求所属的请求列表,确定所述用户请求的认证属性,具体包括:

4.根据权利要求1所述的一种基于微服务架构的统一验证方法,其特征在于,根据所述认证属性,将所述用户请求发送到对应的认证模块进行认证,具体包括:

5.根据权利要求4所述的一种基于微服务架构的统一验证方法,其特征在于,将所述用户请求发送到认证管理器,对所述用户请求的身份进行认证,具体包括:

6...

【专利技术属性】
技术研发人员:曹晓瑶肖雪商广勇李佳罗涛刘大庆
申请(专利权)人:浪潮云洲工业互联网有限公司
类型:发明
国别省市:

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

1