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

一种分布式微服务的权限认证架构、认证方法及认证系统技术方案

技术编号:40490025 阅读:4 留言:0更新日期:2024-02-26 19:20
本发明专利技术公开一种分布式微服务的权限认证架构、认证方法及认证系统。该架构包括请求转发模块、认证与权限微服务及业务功能微服务;各微服务中设置公共依赖组件;请求转发模块接收客户端发起的认证请求并转发至目标微服务;认证与权限微服务或业务功能微服务在接收到认证请求时,通过设置的公共依赖组件确定双JWT并发送至客户端;请求转发模块接收客户端发起的业务资源访问请求并转发至目标业务功能微服务;业务资源访问请求包括双JWT;业务功能微服务在接收到业务资源访问请求时,在确定双JWT有效时通过权限控制数据查询接口获取权限控制数据,根据双JWT与权限控制数据进行鉴权处理;鉴权通过时执行业务逻辑,有统一和自定义认证功能。

【技术实现步骤摘要】

本专利技术涉及微服务,尤其涉及一种分布式微服务的权限认证架构、认证方法及认证系统


技术介绍

1、当前许多软件系统都从单体应用结构转变为微服务结构,各个微服务均保持独立,开发、测试、部署、以及运维等环节均可独立完成,极大方便开发新需求、降低错误率。

2、单体架构的软件系统是部署在同一个服务器下,在进行认证与授权操作时通过前台客户端保存的cookies(小型文本文件)和后台服务器保存的session(时域)实现认证与授权:用户在登录系统时,服务端会为发出请求的用户分配不同的session id,这些session id包含了用户id、用户名称和用户登录记录等信息,同时用户在浏览器发出登录请求时,会将session id保存到浏览器的cookie中。服务器通过cookies中保存的sessionid与服务端所保存的session信息来分辨用户身份,并为该用户授予对应的操作权限。

3、但是在微服务架构下,系统被分解为多个独立服务,其中“认证与权限控制”功能即可被划为一个独立微服务,和其他业务功能微服务部署在不同的服务器上,此时session难以共享。虽然业界有一些session共享的方案,但其他业务微服务通常不会过多关注认证和权限控制相关的代码,不应分散精力到实现session共享方案上,而是将主要精力放在业务逻辑上,因此原单体架构下的cookies+session机制不再适用。

4、抛弃cookies+session机制后,微服务架构通常采用无状态的jwt来传递用户信息,并且使用api网关作为统一对外暴露的入口,api网关也具备鉴权功能。但我们针对某些复杂场景,例如某业务微服务存在自己个性化定义认证和鉴权方案的需求:例如既保留统一平台登录入口、也保留业务模块自有登录入口的双入口机制,此时不能将认证、鉴权功能统一收敛到专责“认证与权限”微服务或api网关,必须分散到该业务微服务之中。

5、出于兼顾“无需额外规则的默认”与“特殊场景下的可扩展”,需要设计一套新的分布式微服务的权限认证方案才能保证安全性。


技术实现思路

1、本专利技术提供了一种分布式微服务的权限认证架构、认证方法及认证系统,以在将巨单体应用分散为多个业务功能微服务模块后,达成统一认证与权限控制功能的同时,也让各个业务微服务模块继续保持自定义认证和权限控制的能力,使得用户安全访问各个微服务。

2、根据本专利技术的一方面,提供了一种分布式微服务的权限认证架构,所述架构,包括:请求转发模块、认证与权限微服务、以及至少一个业务功能微服务;其中:

3、各微服务中设置有公共依赖组件;所述公共依赖组件中封装双令牌jwt确定算法;所述认证与权限微服务提供权限控制数据查询接口;

4、所述请求转发模块,用于接收客户端发起的认证请求,并将所述认证请求转发至对应的目标微服务中;

5、所述认证与权限微服务,用于在接收到所述请求转发模块转发的认证请求时,通过所述认证与权限微服务中设置的公共依赖组件确定双jwt,并将双jwt经由所述请求转发模块发送至客户端;

6、所述业务功能微服务,用于在接收到所述请求转发模块转发的认证请求时,通过所述业务功能微服务中设置的公共依赖组件确定双jwt,并将双jwt经由所述请求转发模块发送至客户端;

7、所述请求转发模块,还用于接收客户端发起的业务资源访问请求,并将所述业务资源访问请求转发至对应的目标业务功能微服务;其中,所述业务资源访问请求中包括双jwt;

8、所述业务功能微服务,还用于在接收到所述请求转发模块转发的业务资源访问请求时,确定双jwt是否有效;并在确定双jwt有效时,通过所述权限控制数据查询接口获取权限控制数据,根据双jwt与权限控制数据进行鉴权处理;在鉴权通过时,执行业务逻辑。

9、可选的,所述公共依赖组件基于权限安全框架spring security实现;

10、所述公共依赖组件中,包括:jwt工具类、抽象身份验证服务abstract authservice、认证授权过滤器login auth filter、校验业务资源访问请求中jwt的过滤器httpheader double token filter、以及鉴权过滤器url auth service;

11、在所述公共依赖组件中,通过安全性配置类web security config,将login authfilter、http header double token filter、以及url auth service插入至springsecurity过滤器链中;

12、所述jwt工具类,包括双jwt的生成方法以及双jwt的有效验证方法;

13、所述abstract auth service,包括抽象认证授权方法以及抽象鉴权方法。

14、可选的,所述jwt工具类,还包括:双jwt无感刷新方法和异地登录判断方法;其中:

15、所述双jwt由访问令牌access token和刷新令牌refresh token构成;

16、双jwt无感刷新方法和异地登录判断方法,通过下述步骤实现:

17、若access token和refresh token中存在至少一个令牌未过期,则判断数据库中存在的用户信息是否为空;

18、如果用户信息不为空,则判断数据库中存在的access token和refresh token存储参数值是否均与业务资源访问请求中的access token和refresh token请求参数值相同;

19、如果所述存储参数值与所述请求参数值完全相同,则验证通过,重新生成双jwt;将更新后的双jwt更新至数据库中,并添加在业务资源访问请求中;

20、如果所述存储参数值与所述请求参数值不完全相同,则确定业务资源访问请求的发起账户已异地登录;

21、如果用户信息为空,则所述发起账户已主动登出,确定所述发起账户需重新登录;

22、若access token和refresh token均过期,则确定双jwt授权过期,所述发起账户需重新登录。

23、可选的,该架构,还包括:数据库redis,以及各微服务的关系型数据库;其中:

24、各微服务均连接于同一个所述redis服务器;

25、所述redis服务器,用于在所述认证与权限微服务通过所述认证请求时,保存所述认证请求发起账户的账户信息,以及双jwt,以使所述业务功能微服务判断双jwt是否有效;

26、所述认证与权限微服务的关系型数据库中保存权限控制数据;

27、各所述业务功能微服务的关系型数据库中保存自身业务数据,且具有自定义认证授权鉴权功能的业务功能微服务的关系型数据库中保存权限控制数据。

28、根据本专利技术的另一方面,提供了一种分布式微服务的权限认证方法,所述方法应用于如本专利技术任一实施例本文档来自技高网...

【技术保护点】

1.一种分布式微服务的权限认证架构,其特征在于,所述架构,包括:请求转发模块、认证与权限微服务、以及至少一个业务功能微服务;其中:

2.根据权利要求1所述的架构,其特征在于,所述公共依赖组件基于权限安全框架Spring Security实现;

3.根据权利要求2所述的架构,其特征在于,所述JWT工具类,还包括:双JWT无感刷新方法和异地登录判断方法;其中:

4.根据权利要求3所述的架构,其特征在于,所述架构,还包括:数据库Redis,以及各微服务的关系型数据库;其中:

5.一种分布式微服务的权限认证方法,其特征在于,所述方法应用于如权利要求1-4任一项所述的分布式微服务的权限认证架构中,所述方法,包括:

6.根据权利要求5所述的方法,其特征在于,所述公共依赖组件基于权限安全框架Spring Security实现;

7.根据权利要求6所述的方法,其特征在于,所述双JWT由访问令牌Access Token和刷新令牌Refresh Token构成;

8.根据权利要求7所述的方法,其特征在于,还包括:p>

9.一种分布式微服务的权限认证系统,其特征在于,所述系统,包括:客户端,以及如权利要求1-4任一项所述的分布式微服务的权限认证架构;其中:

...

【技术特征摘要】

1.一种分布式微服务的权限认证架构,其特征在于,所述架构,包括:请求转发模块、认证与权限微服务、以及至少一个业务功能微服务;其中:

2.根据权利要求1所述的架构,其特征在于,所述公共依赖组件基于权限安全框架spring security实现;

3.根据权利要求2所述的架构,其特征在于,所述jwt工具类,还包括:双jwt无感刷新方法和异地登录判断方法;其中:

4.根据权利要求3所述的架构,其特征在于,所述架构,还包括:数据库redis,以及各微服务的关系型数据库;其中:

5.一种分布式微服务的权限认证方法,其特征在于,所...

【专利技术属性】
技术研发人员:杨凌
申请(专利权)人:中国农业银行股份有限公司
类型:发明
国别省市:

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

1