一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种基于API网关的统一身份认证方法及系统与流程

2022-12-19 22:58:54 来源:中国专利 TAG:

一种基于api网关的统一身份认证方法及系统
技术领域
1.本发明涉及单点登录技术领域,具体涉及一种基于api网关的统一身份认证方法及系统。


背景技术:

2.随着企业发展,公司的软件应用数量增多,每个应用都有自己的登录认证功能和用户体系,用户需要在每个应用中都注册账户,用户登录操作频繁,体验感差,于是统一身份认证的需求应运而生。用户通过在一个统一的登录页面进行登录,就能访问公司其他产品的功能页,极大程度地简化了操作,提升了体验。
3.在现有技术中,cas是经典的统一身份认证方案,但cas方案只提供认证服务,不包含用户管理功能,每个应用都有自己的用户管理体系,增加了系统的复杂性和不稳定性;用户认证工作全部有cas server负责,每个请求都需要转发至cas server进行身份认证,增加了系统间调用,降低了应用性能。


技术实现要素:

4.因此,本发明为了解决系统调用频繁导致性能下降以及不具备用户管理功能等问题,从而提供一种基于api网关的统一身份认证方法及系统。
5.第一方面,本发明提供的基于api网关的统一身份认证方法,包括:
6.用户通过终端访问任一除登录页外的应用页面时,终端发送访问请求;
7.api网关拦截所述访问请求进行初步的身份认证,api网关初步身份认证后,转发进一步身份认证请求至用户服务中心;
8.用户服务中心基于收到的身份认证请求,通过数据库查找用户信息进行进一步的身份认证;所述用户服务中心,作为单独的一个微服务,提供用户管理接口和身份认证接口,不依赖于任何第三方软件;
9.身份认证通过后,api网关将访问请求转发至业务系统,基于所述访问请求响应具体的业务服务。
10.在一实施例中,数据库,包括redis,用于存储token和用户信息;用户信息,包括:用户名、密码和用户id。
11.在一实施例中,api拦截所述访问请求进行初步的身份认证,包括:
12.api网关解析访问请求中的http header,得到解析结果,并在解析结果中获取token信息,来进行初步的身份认证;
13.在一实施例中,若api网关在解析过程中未获取token或获取到token后对token解析失败,则认定为未登录;
14.将页面重定向到登录页面,用户发起登录请求,api网关向用户服务中心发起登录请求。
15.在一实施例中,用户服务中心收到登录请求,直接认证用户名和密码,若认证失
败,用户服务中心将失败信息返回给api网关,api网关将登录信息返回给浏览器;若认证成功,基于用户id生成token,并将token缓存到redis中,并返回给api网关。
16.在一实施例中,api网关将token返回终端,之后终端所有的httpheader中都会携带token。
17.在一实施例中,api获取到token并解析成功,api网关继续向用户服务中心发起进一步的身份认证请求。
18.在一实施例中,用户服务中心从http header中找到token,并认证redis中是否存在该token,若redis中不存在,则身份认证失败,将页面重定向到登录页面。
19.在一实施例中,若redis中存在token,则解析token获取用户id,从redis中已存储的用户信息中查找该用户id,若存在该id,则证明token是合法且有效的,将认证结果返回给api网关,api网关会将请求转发至业务系统,基于所述访问请求响应具体的业务服务。
20.第二方面,本发明还提供了一种基于api网关的统一身份认证系统,包括:请求发送模块、初步身份认证模块、请求转发模块、进一步身份认证模块和服务响应模块,其中:
21.请求发送模块,用于用户通过终端浏览器访问任一除登录页外的应用页面时,终端发送访问请求;
22.第一身份认证模块,用于api网关拦截所述访问请求进行初步的身份认证;
23.请求转发模块,用于api网关初步身份认证后,转发进一步身份认证请求至用户服务中心;
24.第二身份认证模块,用于用户服务中心基于收到的身份认证请求,通过数据库查找用户信息进行进一步的身份认证;
25.服务响应模块,用于身份认证通过后,api网关将访问请求转发至业务系统,基于所述访问请求响应具体的业务服务。
26.第三方面,本发明还提供了一种计算机设备,包括:存储器和处理器,所述存储器和所述处理器之间互相通信连接,所述存储器存储有计算机指令,所述处理器通过执行所述计算机指令,从而执行所述的基于api网关的统一身份认证方法。
27.第四方面,本发明还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使所述计算机执行所述的基于api网关的统一身份认证方法。
28.本发明技术方案,具有如下优点:
29.本发明提供的基于api网关的统一身份认证方法及系统,实现了单点登录以及用户管理功能,通过api网关对所有请求进行拦截,进行初步的身份认证,初步身份认证后再向用户服务中心发起进一步的身份认证请求,可以减少不同服务间的交互,提高了应用性能,用户服务中心提供公共的用户管理功能,可方便与其他微服务进行集成,便于后期进行功能扩展,具有较强的可维护性和功能扩展性;而且方案中提到的用户服务中心和api网关并不特指具体的某个软件,开发者可自行进行服务的开发或api网关产品的选型,实际落地可以非常灵活。
附图说明
30.为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体
实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
31.图1是本发明实施例提出的一种基于api网关的统一身份认证方法流程图。
32.图2是本发明实施例提出的基于api网关的统一身份认证系统的一个示例的结构示意图。
33.图3是本发明实施例提出的基于api网关的统一身份认证系统的技术架构图。
34.图4是本发明实施例提出的一种计算机设备的硬件结构示意图。
具体实施方式
35.下面将结合附图对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
36.目前现有技术中,cas是经典的统一身份认证方案,但cas方案只提供认证服务,不包含用户管理功能,每个应用都有自己的用户管理体系,增加了系统的复杂性和不稳定性;用户认证工作全部有cas server负责,每个请求都需要转发至cas server进行身份认证,增加了系统间调用,降低了应用性能。
37.为解决上述问题,本发明实施例中提供一种基于api网关的统一身份认证方法及系统,用于计算机设备中。下述方法实施例中,均以执行主体是计算机设备为例来进行说明。
38.如图1所示,基于api网关的统一身份认证方法包括如下步骤s1至s4:
39.步骤s1,用户通过终端访问任一除登录页外的应用页面时,终端发送访问请求。
40.在本发明实施例中,终端发送的访问请求为http请求。
41.步骤s2,api网关拦截所述访问请求进行初步的身份认证,api网关初步身份认证后,转发进一步身份认证请求至用户服务中心。
42.在本发明实施例中,api拦截所述访问请求进行初步的身份认证,包括:
43.api网关解析访问请求中的http header,得到解析结果,如图3所示,在解析结果中获取token信息,来进行初步的身份认证;
44.所述身份认证是基于jwt(json web token)进行身份认证,jwt生成token,通过获取token来进行初步认证。上述发明实施例使用apisix作为api网关,也可以使用openresty、kong等主流的api网关,它们都支持自定义lua脚本插件,可实现初步的身份认证逻辑。
45.在本发明实施例中,若api网关在解析过程中未获取token或获取到token后对token解析失败,则认定为未登录;如图3所示,认定为未登录,将页面重定向到登录页面,用户发起登录请求,api网关向用户服务中心发起登录请求。
46.在本发明实施例中,若api获取到token并解析成功,api网关继续向用户服务中心发起进一步的身份认证请求。
47.步骤s3,用户服务中心基于收到的身份认证请求,通过数据库查找用户信息进行进一步的身份认证。
48.在本发明实施例中,数据库,包括redis,用于存储token和用户信息;用户信息,包括:用户名、密码和用户id;初步身份认证失败后,用户服务中心收到登录请求,直接认证用户名和密码,若认证失败,用户服务中心将失败信息返回给api网关,api网关将登录信息返回给浏览器;若认证成功,基于用户id生成token,并将token缓存到redis中,并返回给api网关;api网关将token返回终端,之后终端所有的http header中都会携带token。
49.在本发明实施例中,初步身份认证成功后,如图3所示,用户服务中心从http header中找到token,并认证redis中是否存在该token,若redis中不存在,则身份认证失败,将页面重定向到登录页面。
50.步骤s4,身份认证通过后,api网关将访问请求转发至业务系统,基于所述访问请求响应具体的业务服务。
51.在本发明实施例中,若redis中存在token,则解析token获取用户id,从redis中已存储的用户信息中查找该用户id,若存在该id,则证明token是合法且有效的,将认证结果返回给api网关,如图3所示,api网关会将请求转发至业务系统,基于所述访问请求响应具体的业务服务。
52.如图2所示,本发明实施例提供的基于api网关的统一身份认证系统,包括:请求发送模块、初步身份认证模块、请求转发模块、进一步身份认证模块和服务响应模块,其中:
53.请求发送模块,用于用户通过终端浏览器访问任一除登录页外的应用页面时,终端发送访问请求;
54.第一身份认证模块,用于api网关拦截所述访问请求进行初步的身份认证;
55.请求转发模块,用于api网关初步身份认证后,转发进一步身份认证请求至用户服务中心;
56.第二身份认证模块,用于用户服务中心基于收到的身份认证请求,通过数据库查找用户信息进行进一步的身份认证;
57.服务响应模块,用于身份认证通过后,api网关将访问请求转发至业务系统,基于所述访问请求响应具体的业务服务。
58.上述各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
59.图4是根据本发明实施例提出的一种计算机设备的硬件结构示意图。如图4所示,该设备包括一个或多个处理器310以及存储器320,存储器320包括持久内存、易失内存和硬盘,图4中以一个处理器310为例。该设备还可以包括:输入装置330和输出装置340。
60.处理器310、存储器320、输入装置330和输出装置340可以通过总线或者其他方式连接,图4中以通过总线连接为例。
61.处理器310可以为中央处理器(central processing unit,cpu)。处理器310还可以为其他通用处理器、数字信号处理器(digital signal processor,dsp)、专用集成电路(application specific integrated circuit,asic)、现场可编程门阵列(field-programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等芯片,或者上述各类芯片的组合。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
62.存储器320作为一种非暂态计算机可读存储介质,包括持久内存、易失内存和硬盘,可用于存储非暂态软件程序、非暂态计算机可执行程序以及模块,如本技术实施例中的身份认证方法对应的程序指令/模块。处理器310通过运行存储在存储器320中的非暂态软件程序、指令以及模块,从而执行服务器的各种功能应用以及数据处理,即实现上述任意一种主题名称方法。
63.存储器320可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据、需要使用的数据等。此外,存储器320可以包括高速随机存取存储器,还可以包括非暂态存储器,例如至少一个磁盘存储器件、闪存器件、或其他非暂态固态存储器件。在一些实施例中,存储器320可选包括相对于处理器310远程设置的存储器,这些远程存储器可以通过网络连接至数据处理装置。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
64.输入装置330可接收输入的数字或字符信息,以及产生与用户设置以及功能控制有关的键信号输入。输出装置340可包括显示屏等显示设备。
65.一个或者多个模块存储在存储器320中,当被一个或者多个处理器310执行时,执行如图1所示的基于api网关的统一身份认证方法。
66.上述产品可执行本发明实施例所提供的方法,具备执行方法相应的功能模块和有益效果。未在本实施例中详尽描述的技术细节,具体可参见如图1所示的实施例中的相关描述。
67.本发明实施例还提供了一种非暂态计算机存储介质,计算机存储介质存储有计算机可执行指令,该计算机可执行指令可执行上述任意方法实施例中的身份认证方法。其中,存储介质可为磁碟、光盘、只读存储记忆体(read-only memory,rom)、随机存储记忆体(random access memory,ram)、快闪存储器(flash memory)、硬盘(hard disk drive,缩写:hdd)或固态硬盘(solid-state drive,ssd)等;存储介质还可以包括上述种类的存储器的组合。
68.显然,上述实施例仅仅是为清楚地说明所作的举例,而并非对实施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或变动。这里无需也无法对所有的实施方式予以穷举。而由此所引伸出的显而易见的变化或变动仍处于本发明创造的保护范围之中。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献