一种跨平台的分布式统一鉴权方法与流程



1.本发明涉及鉴权技术领域,具体涉及一种跨平台的分布式统一鉴权方法。


背景技术:



2.业务系统越来越多,各个系统的技术栈各不相同,给服务的维护和拓展带来麻烦。公司亟需将散落在各处的系统进行统一管理和鉴权,提高用户服务效率和运维效率。
3.申请号为cn201810689051.8的专利申请公开了一种微服务统一鉴权方法及网关,其通过提供一种微服务网关,用于多种服务类型的微服务鉴权。网关接收由客户端发送的微服务鉴权请求,并从鉴权请求中提取出uri统一资源标识符;网关将uri发送给网关管理微服务,网关管理微服务用于存储uri与微服务接口类型、微服务地址、微服务鉴权类型及鉴权凭证参数的的映射表;网关接收由网关管理微服务发送的对应微服务接口类型、微服务地址、微服务鉴权类型及鉴权凭证参数,并从鉴权请求中提取出对应的鉴权凭证参数;网关将uri和对应的鉴权凭证参数发送至鉴权服务进行鉴权,并接收对应的鉴权结果。但这种方法对鉴权服务未形成完整闭环,当业务微服务禁止某个客户端访问时,微服务网关并不能实时同步其访问权限,存在网络安全隐患。
4.申请号为cn202110180771.3的专利申请公开了一种实现统一鉴权的工具及方法,其通过设计一种统一鉴权网关,网关具有session管理、鉴权、审计、服务路由、限流熔断、csrf等功能。但这种统一鉴权网关由于只有一个服务节点,在应对大规模的服务请求时必然会导致占用资源过高,访问速度下降等问题。


技术实现要素:



5.本发明的目的是针对现有技术存在的不足,提供一种跨平台的分布式统一鉴权方法。
6.为实现上述目的,本发明提供了一种跨平台的分布式统一鉴权方法,包括:
7.步骤1、接收客户端发出的访问请求,所述访问请求的类型包括用户登录访问请求和系统调用访问请求,并对接收的访问请求进行分析,以判断当前访问请求的类型和请求访问的目标应用系统,若为用户登录访问请求,则进入步骤2,若为系统调用访问请求,则进入步骤3;
8.步骤2、判断本次访问请求是否为用户在第一设定时段内首次请求访问所述目标应用系统,若为第一设定时段内首次请求访问所述目标应用系统,则进入步骤4,否则进入步骤6;
9.步骤3、判断本次访问请求是否为系统在第二设定时段内的首次请求访问所述目标应用系统,若为第二设定时段内的首次请求访问所述目标应用系统,则进入步骤5,否则进入步骤6;
10.步骤4、根据用户登录信息进行认证,并判断该用户是否具有目标应用系统的访问权限,若认证通过且具有目标应用系统的访问权限,则进入步骤5,否则向客户端返回认证
未通过或无权限;
11.步骤5、根据本次访问请求分析出鉴权参数,并采用相应的加密算法将分析出的鉴权参数生成鉴权信息,然后将鉴权信息发送至客户端,并将本次访问请求和鉴权信息发送至应用服务器;所述客户端对接收的鉴权信息进行存储,并在后续访问请求信息中携带所述鉴权信息;
12.步骤6、验证该本次访问请求携带的鉴权信息,若验证通过,则将所述访问请求发送至应用服务器,否则,拦截本次请求,并向客户端返回请求失败。
13.进一步的,接收客户端发出的访问请求由多个请求接收模块完成,还包括:
14.通过负载均衡服务器实时分析多个请求接收模块的负载情况,并选择当前负载最低的请求接收模块接收处理户端发出的访问请求。
15.进一步的,所述第一设定时段为30分钟。
16.进一步的,所述第二设定时段为5分钟。
17.进一步的,所述目标应用系统的访问权限以权限矩阵形式进行存储。
18.有益效果:本发明既能为各个不同底层技术架构的业务体统提供服务,提供用户请求与系统调用的统一解决方案,还能解决大规模业务量情况下的性能瓶颈问题。
附图说明
19.图1是本发明实施例的跨平台的分布式统一鉴权方法的流程示意图。
具体实施方式
20.下面结合附图和具体实施例,进一步阐明本发明,本实施例在以本发明技术方案为前提下进行实施,应理解这些实施例仅用于说明本发明而不用于限制本发明的范围。
21.如图1所示,本发明实施例提供了一种跨平台的分布式统一鉴权方法,包括:
22.步骤1、接收客户端发出的访问请求,访问请求的类型包括用户登录访问请求和系统调用访问请求,并对接收的访问请求进行分析,以判断当前访问请求的类型和请求访问的目标应用系统,若为用户登录访问请求,则进入步骤2,若为系统调用访问请求,则进入步骤3。对接收的访问请求进行分析可以得到uri和访问标记等信息,根据uri和码值对应关系,即可得到本次请求的目标应用系统的码表,通过访问标记即可区分本次访问请求为用户登录访问请求,还是系统调用访问请求。
23.具体的,通过分析访问请求结构,可区分是否携带鉴权信息,携带鉴权信息的报文有signature段落;通过请求头head中的请求类型参数,可区分是用户登录访问请求还是系统调用访问请求,用户登录访问请求类型为“user_request”,系统调用访问请求类型为“sys_request”。
24.用户登录访问请求如下:
[0025][0026][0027]
带鉴权信息的用户登录访问请求如下:
[0028][0029][0030]
系统调用访问请求如下:
[0031][0032]
带鉴权信息的系统调用访问请求如下:
[0033]
[0034][0035]
步骤2、判断本次访问请求是否为用户在第一设定时段内首次请求访问该目标应用系统,若为第一设定时段内首次请求访问该目标应用系统,则进入步骤4,否则进入步骤6。上述第一设定时段优选为30分钟。
[0036]
步骤3、判断本次访问请求是否为系统在第二设定时段内的首次请求访问该目标应用系统,若为第二设定时段内的首次请求访问该目标应用系统,则进入步骤5,否则进入步骤6。上述第二设定时段优选为5分钟。
[0037]
步骤4、根据用户登录信息进行认证,并判断该用户是否具有目标应用系统的访问权限,若认证通过且具有目标应用系统的访问权限,则进入步骤5,否则向客户端返回认证未通过或无权限。上述用户信息包括系统码值、工号和登录密码等,在进行认证时,将系统码值、工号和登录密码拼接成一个请求串,然后发送至用户信息管理系统的认证模块进行认证,用户信息管理系统的认证模块在认证完成后会返回认证成功或认证失败的结果。在判断是否具有目标应用系统的访问权限时,将工号和请求访问的目标应用系统等信息拼成一个请求串,然后发送至用户信息管理系统的权限模块,用户信息管理系统的权限模块内优选存以权限矩阵形式储有目标应用系统的访问权限,可以根据该请求串中的信息返回权限认证结果。
[0038]
步骤5、根据本次访问请求分析出鉴权参数,并采用相应的加密算法将分析出的鉴权参数生成jwt信息(鉴权信息),然后将鉴权信息发送至客户端,并将本次访问请求和鉴权信息发送至应用服务器;客户端对接收的鉴权信息进行存储,并在后续访问请求信息中携带存储的鉴权信息。具体的,若本次访问请求为用户登录访问请求,上述鉴权参数包括用户工号、登陆密码和uri等参数信息;若本次访问请求为系统调用访问请求,上述鉴权参数包括端口号和uri等参数信息。客户端将接收的jwt信息存储在cookie中,并在后续调用中,如再次访问该应用系统时,在http请求头的authorization信息中携带该jwt信息,并在设定的时段内利用该携带的jwt信息进行鉴权。若当前用户具有多个应用系统的访问权限,则会在首次访问每一应用系统时根据不同的应用系统分别生成对应的鉴权信息并存储,不同的应用系统所采用的加密算法不同,进而针对每一应用系统生成的鉴权信息不同。上述加密算法预先存储在应用系统与加密算法映射模块中,可直接根据目标应用系统调用相应的加密算法。
[0039]
步骤6、验证该本次访问请求携带的鉴权信息,若验证通过,则将访问请求发送至应用服务器,否则,拦截本次请求,并向客户端返回请求失败。应用服务器在接收到访问请求后,会采用相应的解密算法来对一同发送过来或携带的jwt信息进行解密,然后判断jwt信息是不是有效,若有效,则向客户端返回请求结果;若没有效,则向客户端返回无法调用,需重新申请权限。
[0040]
作为优选实施例,客户端发出的访问请求由多个请求接收模块完成接收和分析处理工作,但每个访问请求由一个请求接收模块来完成接收和分析处理,即不同的访问请求可能由不同的请求接收模块来接收和分析处理,本发明实施例还通过负载均衡服务器实时分析多个请求接收模块的负载情况,并选择当前负载最低的请求接收模块接收处理户端发出的访问请求。
[0041]
通过以上实施例可以看出,本发明在首次请求时区分应用系统。举例:用户信息管理服务模块中记录的用户工号0001,密码abcd,则用户首次请求访问应用系统a时,使用0001/abcd登录鉴权,获得用以访问应用系统a的鉴权信息。而后该用户首次访问应用系统b时,应再次请求应用系统b的鉴权信息。在第一设定时段内,该用户再次需要访问应用系统a或应用系统b时,在访问请求中携带对应的鉴权信息。
[0042]
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,其它未具体描述的部分,属于现有技术或公知常识。在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

技术特征:


1.一种跨平台的分布式统一鉴权方法,其特征在于,包括:步骤1、接收客户端发出的访问请求,所述访问请求的类型包括用户登录访问请求和系统调用访问请求,并对接收的访问请求进行分析,以判断当前访问请求的类型和请求访问的目标应用系统,若为用户登录访问请求,则进入步骤2,若为系统调用访问请求,则进入步骤3;步骤2、判断本次访问请求是否为用户在第一设定时段内首次请求访问所述目标应用系统,若为第一设定时段内首次请求访问所述目标应用系统,则进入步骤4,否则进入步骤6;步骤3、判断本次访问请求是否为系统在第二设定时段内的首次请求访问所述目标应用系统,若为第二设定时段内的首次请求访问所述目标应用系统,则进入步骤5,否则进入步骤6;步骤4、根据用户登录信息进行认证,并判断该用户是否具有目标应用系统的访问权限,若认证通过且具有目标应用系统的访问权限,则进入步骤5,否则向客户端返回认证未通过或无权限;步骤5、根据本次访问请求分析出鉴权参数,并采用相应的加密算法将分析出的鉴权参数生成鉴权信息,然后将鉴权信息发送至客户端,并将本次访问请求和鉴权信息发送至应用服务器;所述客户端对接收的鉴权信息进行存储,并在后续访问请求信息中携带所述鉴权信息;步骤6、验证该本次访问请求携带的鉴权信息,若验证通过,则将所述访问请求发送至应用服务器,否则,拦截本次请求,并向客户端返回请求失败。2.根据权利要求1所述的一种跨平台的分布式统一鉴权方法,其特征在于,接收客户端发出的访问请求由多个请求接收模块完成,还包括:通过负载均衡服务器实时分析多个请求接收模块的负载情况,并选择当前负载最低的请求接收模块接收处理户端发出的访问请求。3.根据权利要求1所述的一种跨平台的分布式统一鉴权方法,其特征在于,所述第一设定时段为30分钟。4.根据权利要求1所述的一种跨平台的分布式统一鉴权方法,其特征在于,所述第二设定时段为5分钟。5.根据权利要求1所述的一种跨平台的分布式统一鉴权方法,其特征在于,所述目标应用系统的访问权限以权限矩阵形式进行存储。

技术总结


本发明公开了一种跨平台的分布式统一鉴权方法。该方法包括接收客户端发出的访问请求,并对接收的访问请求进行分析,以判断当前访问请求的类型和请求访问的目标应用系统,若本次为第一设定时段内首次请求访问目标应用系统,进行登录和权限认证,认证成功后或为第二设定时段内的首次请求访问目标应用系统,则加密生成鉴权信息,然后将鉴权信息发送至客户端,并将本次访问请求和鉴权信息发送至应用服务器;客户端对接收的鉴权信息进行存储,并在后续访问请求信息中携带所述鉴权信息。本发明既能为各个不同底层技术架构的业务体统提供服务,提供用户请求与系统调用的统一解决方案,还能解决大规模业务量情况下的性能瓶颈问题。题。题。


技术研发人员:

张伶俐 吴玮 张聪 口拴军 王宗力

受保护的技术使用者:

江苏金融租赁股份有限公司

技术研发日:

2022.08.31

技术公布日:

2022/12/22

本文发布于:2024-09-23 12:23:31,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/2/44233.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:系统   信息   步骤   所述
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议