CN115484045A - 一种基于api网关的统一身份认证方法及系统 - Google Patents
一种基于api网关的统一身份认证方法及系统 Download PDFInfo
- Publication number
- CN115484045A CN115484045A CN202210891292.7A CN202210891292A CN115484045A CN 115484045 A CN115484045 A CN 115484045A CN 202210891292 A CN202210891292 A CN 202210891292A CN 115484045 A CN115484045 A CN 115484045A
- Authority
- CN
- China
- Prior art keywords
- identity authentication
- api gateway
- user
- token
- request
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
- H04L63/0815—Network architectures or network communication protocols for network security for authentication of entities providing single-sign-on or federations
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
- H04L63/0807—Network architectures or network communication protocols for network security for authentication of entities using tickets, e.g. Kerberos
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/22—Parsing or analysis of headers
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Telephonic Communication Services (AREA)
Abstract
本发明提供一种基于API网关的统一身份认证方法及系统,其特征在于,包括:用户通过终端访问任一除登录页外的应用页面时,终端发送访问请求;API网关拦截所述访问请求进行初步的身份认证,API网关初步身份认证后,转发进一步身份认证请求至用户服务中心;用户服务中心基于收到的身份认证请求,通过数据库查找用户信息进行进一步的身份认证;所述用户服务中心,作为单独的一个微服务,提供用户管理接口和身份认证接口,不依赖于任何第三方软件;身份认证通过后,API网关将访问请求转发至业务系统,基于所述访问请求响应具体的业务服务。通过对身份进行分层认证,减少了与用户服务中心的交互,提高了应用性能。
Description
技术领域
本发明涉及单点登录技术领域,具体涉及一种基于API网关的统一身份认证方法及系统。
背景技术
随着企业发展,公司的软件应用数量增多,每个应用都有自己的登录认证功能和用户体系,用户需要在每个应用中都注册账户,用户登录操作频繁,体验感差,于是统一身份认证的需求应运而生。用户通过在一个统一的登录页面进行登录,就能访问公司其他产品的功能页,极大程度地简化了操作,提升了体验。
在现有技术中,CAS是经典的统一身份认证方案,但CAS方案只提供认证服务,不包含用户管理功能,每个应用都有自己的用户管理体系,增加了系统的复杂性和不稳定性;用户认证工作全部有CAS Server负责,每个请求都需要转发至CAS Server进行身份认证,增加了系统间调用,降低了应用性能。
发明内容
因此,本发明为了解决系统调用频繁导致性能下降以及不具备用户管理功能等问题,从而提供一种基于API网关的统一身份认证方法及系统。
第一方面,本发明提供的基于API网关的统一身份认证方法,包括:
用户通过终端访问任一除登录页外的应用页面时,终端发送访问请求;
API网关拦截所述访问请求进行初步的身份认证,API网关初步身份认证后,转发进一步身份认证请求至用户服务中心;
用户服务中心基于收到的身份认证请求,通过数据库查找用户信息进行进一步的身份认证;所述用户服务中心,作为单独的一个微服务,提供用户管理接口和身份认证接口,不依赖于任何第三方软件;
身份认证通过后,API网关将访问请求转发至业务系统,基于所述访问请求响应具体的业务服务。
在一实施例中,数据库,包括redis,用于存储token和用户信息;用户信息,包括:用户名、密码和用户ID。
在一实施例中,API拦截所述访问请求进行初步的身份认证,包括:
API网关解析访问请求中的HTTP Header,得到解析结果,并在解析结果中获取token信息,来进行初步的身份认证;
在一实施例中,若API网关在解析过程中未获取token或获取到token后对token解析失败,则认定为未登录;
将页面重定向到登录页面,用户发起登录请求,API网关向用户服务中心发起登录请求。
在一实施例中,用户服务中心收到登录请求,直接认证用户名和密码,若认证失败,用户服务中心将失败信息返回给API网关,API网关将登录信息返回给浏览器;若认证成功,基于用户ID生成token,并将token缓存到redis中,并返回给API网关。
在一实施例中,API网关将token返回终端,之后终端所有的HTTPHeader中都会携带token。
在一实施例中,API获取到token并解析成功,API网关继续向用户服务中心发起进一步的身份认证请求。
在一实施例中,用户服务中心从HTTP Header中找到token,并认证redis中是否存在该token,若redis中不存在,则身份认证失败,将页面重定向到登录页面。
在一实施例中,若redis中存在token,则解析token获取用户ID,从redis中已存储的用户信息中查找该用户ID,若存在该ID,则证明token是合法且有效的,将认证结果返回给API网关,API网关会将请求转发至业务系统,基于所述访问请求响应具体的业务服务。
第二方面,本发明还提供了一种基于API网关的统一身份认证系统,包括:请求发送模块、初步身份认证模块、请求转发模块、进一步身份认证模块和服务响应模块,其中:
请求发送模块,用于用户通过终端浏览器访问任一除登录页外的应用页面时,终端发送访问请求;
第一身份认证模块,用于API网关拦截所述访问请求进行初步的身份认证;
请求转发模块,用于API网关初步身份认证后,转发进一步身份认证请求至用户服务中心;
第二身份认证模块,用于用户服务中心基于收到的身份认证请求,通过数据库查找用户信息进行进一步的身份认证;
服务响应模块,用于身份认证通过后,API网关将访问请求转发至业务系统,基于所述访问请求响应具体的业务服务。
第三方面,本发明还提供了一种计算机设备,包括:存储器和处理器,所述存储器和所述处理器之间互相通信连接,所述存储器存储有计算机指令,所述处理器通过执行所述计算机指令,从而执行所述的基于API网关的统一身份认证方法。
第四方面,本发明还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使所述计算机执行所述的基于API网关的统一身份认证方法。
本发明技术方案,具有如下优点:
本发明提供的基于API网关的统一身份认证方法及系统,实现了单点登录以及用户管理功能,通过API网关对所有请求进行拦截,进行初步的身份认证,初步身份认证后再向用户服务中心发起进一步的身份认证请求,可以减少不同服务间的交互,提高了应用性能,用户服务中心提供公共的用户管理功能,可方便与其他微服务进行集成,便于后期进行功能扩展,具有较强的可维护性和功能扩展性;而且方案中提到的用户服务中心和API网关并不特指具体的某个软件,开发者可自行进行服务的开发或API网关产品的选型,实际落地可以非常灵活。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提出的一种基于API网关的统一身份认证方法流程图。
图2是本发明实施例提出的基于API网关的统一身份认证系统的一个示例的结构示意图。
图3是本发明实施例提出的基于API网关的统一身份认证系统的技术架构图。
图4是本发明实施例提出的一种计算机设备的硬件结构示意图。
具体实施方式
下面将结合附图对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
目前现有技术中,CAS是经典的统一身份认证方案,但CAS方案只提供认证服务,不包含用户管理功能,每个应用都有自己的用户管理体系,增加了系统的复杂性和不稳定性;用户认证工作全部有CAS Server负责,每个请求都需要转发至CAS Server进行身份认证,增加了系统间调用,降低了应用性能。
为解决上述问题,本发明实施例中提供一种基于API网关的统一身份认证方法及系统,用于计算机设备中。下述方法实施例中,均以执行主体是计算机设备为例来进行说明。
如图1所示,基于API网关的统一身份认证方法包括如下步骤S1至S4:
步骤S1,用户通过终端访问任一除登录页外的应用页面时,终端发送访问请求。
在本发明实施例中,终端发送的访问请求为HTTP请求。
步骤S2,API网关拦截所述访问请求进行初步的身份认证,API网关初步身份认证后,转发进一步身份认证请求至用户服务中心。
在本发明实施例中,API拦截所述访问请求进行初步的身份认证,包括:
API网关解析访问请求中的HTTP Header,得到解析结果,如图3所示,在解析结果中获取token信息,来进行初步的身份认证;
所述身份认证是基于JWT(JSON Web Token)进行身份认证,JWT生成token,通过获取token来进行初步认证。上述发明实施例使用Apisix作为API网关,也可以使用OpenResty、Kong等主流的API网关,它们都支持自定义lua脚本插件,可实现初步的身份认证逻辑。
在本发明实施例中,若API网关在解析过程中未获取token或获取到token后对token解析失败,则认定为未登录;如图3所示,认定为未登录,将页面重定向到登录页面,用户发起登录请求,API网关向用户服务中心发起登录请求。
在本发明实施例中,若API获取到token并解析成功,API网关继续向用户服务中心发起进一步的身份认证请求。
步骤S3,用户服务中心基于收到的身份认证请求,通过数据库查找用户信息进行进一步的身份认证。
在本发明实施例中,数据库,包括redis,用于存储token和用户信息;用户信息,包括:用户名、密码和用户ID;初步身份认证失败后,用户服务中心收到登录请求,直接认证用户名和密码,若认证失败,用户服务中心将失败信息返回给API网关,API网关将登录信息返回给浏览器;若认证成功,基于用户ID生成token,并将token缓存到redis中,并返回给API网关;API网关将token返回终端,之后终端所有的HTTP Header中都会携带token。
在本发明实施例中,初步身份认证成功后,如图3所示,用户服务中心从HTTPHeader中找到token,并认证redis中是否存在该token,若redis中不存在,则身份认证失败,将页面重定向到登录页面。
步骤S4,身份认证通过后,API网关将访问请求转发至业务系统,基于所述访问请求响应具体的业务服务。
在本发明实施例中,若redis中存在token,则解析token获取用户ID,从redis中已存储的用户信息中查找该用户ID,若存在该ID,则证明token是合法且有效的,将认证结果返回给API网关,如图3所示,API网关会将请求转发至业务系统,基于所述访问请求响应具体的业务服务。
如图2所示,本发明实施例提供的基于API网关的统一身份认证系统,包括:请求发送模块、初步身份认证模块、请求转发模块、进一步身份认证模块和服务响应模块,其中:
请求发送模块,用于用户通过终端浏览器访问任一除登录页外的应用页面时,终端发送访问请求;
第一身份认证模块,用于API网关拦截所述访问请求进行初步的身份认证;
请求转发模块,用于API网关初步身份认证后,转发进一步身份认证请求至用户服务中心;
第二身份认证模块,用于用户服务中心基于收到的身份认证请求,通过数据库查找用户信息进行进一步的身份认证;
服务响应模块,用于身份认证通过后,API网关将访问请求转发至业务系统,基于所述访问请求响应具体的业务服务。
上述各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
图4是根据本发明实施例提出的一种计算机设备的硬件结构示意图。如图4所示,该设备包括一个或多个处理器310以及存储器320,存储器320包括持久内存、易失内存和硬盘,图4中以一个处理器310为例。该设备还可以包括:输入装置330和输出装置340。
处理器310、存储器320、输入装置330和输出装置340可以通过总线或者其他方式连接,图4中以通过总线连接为例。
处理器310可以为中央处理器(Central Processing Unit,CPU)。处理器310还可以为其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等芯片,或者上述各类芯片的组合。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
存储器320作为一种非暂态计算机可读存储介质,包括持久内存、易失内存和硬盘,可用于存储非暂态软件程序、非暂态计算机可执行程序以及模块,如本申请实施例中的身份认证方法对应的程序指令/模块。处理器310通过运行存储在存储器320中的非暂态软件程序、指令以及模块,从而执行服务器的各种功能应用以及数据处理,即实现上述任意一种主题名称方法。
存储器320可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据、需要使用的数据等。此外,存储器320可以包括高速随机存取存储器,还可以包括非暂态存储器,例如至少一个磁盘存储器件、闪存器件、或其他非暂态固态存储器件。在一些实施例中,存储器320可选包括相对于处理器310远程设置的存储器,这些远程存储器可以通过网络连接至数据处理装置。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
输入装置330可接收输入的数字或字符信息,以及产生与用户设置以及功能控制有关的键信号输入。输出装置340可包括显示屏等显示设备。
一个或者多个模块存储在存储器320中,当被一个或者多个处理器310执行时,执行如图1所示的基于API网关的统一身份认证方法。
上述产品可执行本发明实施例所提供的方法,具备执行方法相应的功能模块和有益效果。未在本实施例中详尽描述的技术细节,具体可参见如图1所示的实施例中的相关描述。
本发明实施例还提供了一种非暂态计算机存储介质,计算机存储介质存储有计算机可执行指令,该计算机可执行指令可执行上述任意方法实施例中的身份认证方法。其中,存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)、随机存储记忆体(Random Access Memory,RAM)、快闪存储器(Flash Memory)、硬盘(Hard Disk Drive,缩写:HDD)或固态硬盘(Solid-State Drive,SSD)等;存储介质还可以包括上述种类的存储器的组合。
显然,上述实施例仅仅是为清楚地说明所作的举例,而并非对实施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或变动。这里无需也无法对所有的实施方式予以穷举。而由此所引伸出的显而易见的变化或变动仍处于本发明创造的保护范围之中。
Claims (12)
1.一种基于API网关的统一身份认证方法,其特征在于,包括:
用户通过终端访问任一除登录页外的应用页面时,终端发送访问请求;
API网关拦截所述访问请求进行初步的身份认证,API网关初步身份认证后,转发进一步身份认证请求至用户服务中心;
用户服务中心基于收到的身份认证请求,通过数据库查找用户信息进行进一步的身份认证;所述用户服务中心作为单独的微服务,提供用户管理接口和身份认证接口,不依赖于任何第三方软件;
身份认证通过后,API网关将访问请求转发至业务系统,基于所述访问请求响应具体的业务服务。
2.根据权利要求1所述的一种基于API网关的统一身份认证方法,其特征在于,所述数据库,包括redis,用于存储token和用户信息,所述用户信息,包括:用户名、密码和用户ID。
3.根据权利要求2所述的一种基于API网关的统一身份认证方法,其特征在于,所述API拦截所述访问请求进行初步的身份认证的过程,包括:
API网关解析访问请求中的HTTP Header,得到解析结果,并在解析结果中获取token信息,来进行初步的身份认证。
4.根据权利要求3所述的一种基于API网关的统一身份认证方法,其特征在于,若API网关在解析过程中未获取token或获取到token后对token解析失败,则认定为未登录;
将页面重定向到登录页面,用户发起登录请求,API网关向用户服务中心发起登录请求。
5.根据权利要求4所述的一种基于API网关的统一身份认证方法,其特征在于,用户服务中心收到登录请求,直接认证用户名和密码,若认证失败,用户服务中心将失败信息返回给API网关,API网关将登录信息返回给浏览器;若认证成功,基于用户ID生成token,并将token缓存到redis中,并返回给API网关。
6.根据权利要求5所述的一种基于API网关的统一身份认证方法,其特征在于,API网关将token返回终端,之后终端所有的HTTP Header中都会携带token。
7.根据权利要求3所述的一种基于API网关的统一身份认证方法,其特征在于,API获取到token并解析成功,API网关继续向用户服务中心发起进一步的身份认证请求。
8.根据权利要求7所述的一种基于API网关的统一身份认证方法,其特征在于,用户服务中心从HTTP Header中找到token,并认证redis中是否存在该token,若redis中不存在,则身份认证失败,将页面重定向到登录页面。
9.根据权利要求8所述的一种基于API网关的统一身份认证方法,其特征在于,若redis中存在token,则解析token获取用户ID,从redis中已存储的用户信息中查找该用户ID,若存在该ID,则证明token是合法且有效的,将认证结果返回给API网关,API网关会将请求转发至业务系统,基于所述访问请求响应具体的业务服务。
10.一种基于API网关的统一身份认证系统,其特征在于,包括:请求发送模块、第一身份认证模块、请求转发模块、第二身份认证模块和服务响应模块,其中:
请求发送模块,用于用户通过终端浏览器访问任一除登录页外的应用页面时,终端发送访问请求;
第一身份认证模块,用于API网关拦截所述访问请求进行初步的身份认证;
请求转发模块,用于API网关初步身份认证后,转发进一步身份认证请求至用户服务中心;
第二身份认证模块,用于用户服务中心基于收到的身份认证请求,通过数据库查找用户信息进行进一步的身份认证;
服务响应模块,用于身份认证通过后,API网关将访问请求转发至业务系统,基于所述访问请求响应具体的业务服务。
11.一种计算机设备,其特征在于,包括:存储器和处理器,所述存储器和所述处理器之间互相通信连接,所述存储器存储有计算机指令,所述处理器通过执行所述计算机指令,从而执行如权利要求1-9任一项所述的基于API网关的统一身份认证方法。
12.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使所述计算机执行如权利要求1-9任一项所述的基于API网关的统一身份认证方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210891292.7A CN115484045A (zh) | 2022-07-27 | 2022-07-27 | 一种基于api网关的统一身份认证方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210891292.7A CN115484045A (zh) | 2022-07-27 | 2022-07-27 | 一种基于api网关的统一身份认证方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115484045A true CN115484045A (zh) | 2022-12-16 |
Family
ID=84421040
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210891292.7A Pending CN115484045A (zh) | 2022-07-27 | 2022-07-27 | 一种基于api网关的统一身份认证方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115484045A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116743702A (zh) * | 2023-08-16 | 2023-09-12 | 湖南映客互娱网络信息有限公司 | 一种SaaS系统的统一域名访问方法、装置及设备 |
-
2022
- 2022-07-27 CN CN202210891292.7A patent/CN115484045A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116743702A (zh) * | 2023-08-16 | 2023-09-12 | 湖南映客互娱网络信息有限公司 | 一种SaaS系统的统一域名访问方法、装置及设备 |
CN116743702B (zh) * | 2023-08-16 | 2024-02-27 | 湖南映客互娱网络信息有限公司 | 一种SaaS系统的统一域名访问方法、装置及设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109067914B (zh) | Web服务的代理方法、装置、设备及存储介质 | |
US9401910B2 (en) | Establishing and maintaining an improved single sign-on (SSO) facility | |
US9479496B2 (en) | Communication terminal and secure log-in method acquiring password from server using user ID and sensor data | |
US9900367B2 (en) | Context transfer from web page to application | |
US8966572B2 (en) | Dynamic identity context propagation | |
US20170325089A1 (en) | Method and system of user authentication and end to end encryption using device synchronization | |
CN110958237A (zh) | 一种权限校验的方法和装置 | |
US20180063140A1 (en) | Configuration based client for oauth authorization with arbitrary services and applications | |
US20220210155A1 (en) | Secure identity provider authentication for native application to access web service | |
US11882159B2 (en) | Executing code injected into an intercepted application response message to eliminate accumulation of stale computing sessions | |
CN109040072B (zh) | 一种客户端授权登录网页的方法、系统、服务器及存储介质 | |
WO2022036833A1 (zh) | cookie管理方法、中间节点及WebVPN系统 | |
US20240275787A1 (en) | Application access control method and apparatus, and computer device and storage medium | |
CN115189897A (zh) | 零信任网络的访问处理方法、装置、电子设备及存储介质 | |
CN111444495A (zh) | 一种基于容器实现单点登录的系统及方法 | |
CN115484045A (zh) | 一种基于api网关的统一身份认证方法及系统 | |
CN111935092B (zh) | 一种基于第三方应用的信息交互方法、装置和电子设备 | |
CN110177096B (zh) | 客户端认证方法、装置、介质和计算设备 | |
CN109698832B (zh) | 快速提供Portal认证、快速弹出Portal认证页面的方法及相关设备 | |
WO2023170653A1 (en) | System and method for providing multi factor authorization to rdp services through a zero trust cloud environment | |
US11445003B1 (en) | Systems and methods for autonomous program detection | |
CN115664761A (zh) | 单点登录方法、装置、电子设备及可读存储介质 | |
EP3502925A1 (en) | Computer system and method for extracting dynamic content from websites | |
CN112929453A (zh) | 一种共享session数据的方法和装置 | |
US12032647B2 (en) | Tenant network for rewriting of code included in a web page |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |