CN110120946A - 一种Web与微服务的统一认证系统及方法 - Google Patents
一种Web与微服务的统一认证系统及方法 Download PDFInfo
- Publication number
- CN110120946A CN110120946A CN201910354234.9A CN201910354234A CN110120946A CN 110120946 A CN110120946 A CN 110120946A CN 201910354234 A CN201910354234 A CN 201910354234A CN 110120946 A CN110120946 A CN 110120946A
- Authority
- CN
- China
- Prior art keywords
- server
- data
- authorization
- request
- gateway
- 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.)
- Granted
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/45—Network directories; Name-to-address mapping
- H04L61/4505—Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols
- H04L61/4511—Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols using domain name system [DNS]
-
- 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
-
- 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
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/60—Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
Abstract
本发明提出一种Web与微服务的统一认证系统及方法。本发明系统包括:客户端、Nginx服务器、网关服务器、授权服务器、微服务应用服务器、原Web系统应用服务器。本发明方法包括:Nginx对客户端微服务登录请求进行重定向;客户端授权请求经网关缓存客户端ID和重定向地址,转发授权服务后重定向;客户端登录请求返回登陆页提交登录信息,经授权服务认证生成令牌后重定向,缓存令牌和时间戳到网关;客户端微服务主页请求经网关鉴权转发微服务后台返回数据;Nginx对客户端原Web系统登录请求进行重定向;客户端授权请求经网关和授权服务认证后重定向;客户端原Web系统主页请求经网关鉴权转发Web后台返回数据。本发明提高了访问效率,缓解网关负载压力,并具有通用性。
Description
技术领域
本发明涉及计算机技术领域,具体涉及一种Web与微服务的统一认证系统及方法。
背景技术
传统的Web系统大部分采用单体架构(Monolithic Architecture,简称MA),将所有功能模块集中在一个系统。系统集中发布、部署后运行在同一进程,系统的需求更改需要通过统一更改统一部署来实现。传统Web系统发展到一定程度会变得相对“臃肿”,在系统开发、部署等方面显得有些僵硬,需要及时进行“止损”,同时考虑到不影响原系统的正常运行,需要在原Web系统上进行系统架构扩展。
微服务架构(Micro Service Architecture,简称MSA)是软件系统的一种新的架构风格。在微服务系统中,所有的模块功能不再像单体系统部署在一个包内,而是由多个微服务组成,每个微服务都能独立设计、开发、部署,在灵活性方面具有很大优势。
在系统架构过渡阶段,可以采用微服务系统对Web系统进行增补型扩展开发。但当微服务系统和原Web系统拥有各自的访问门户时,用户登录时不能一次获取所有系统的访问权限,影响了用户体验和访问效率,所以要对Web系统和微服务系统进行统一认证。
目前统一认证的CAS方案、Spring security OAuth2SSO方案、Kisso方案等均不能做到对后端的无侵入,且无法将鉴权服务集成在网关中。针对不同校验类型的旧有的Web系统,如有需要令牌校验的系统和不需要令牌校验的系统等,以上各方案均不具有通用性。针对Web系统和微服务系统的主域名不统一的情况,以上各方案也都不具有通用性。
如何实现对Web系统和微服务系统的统一认证,如何保证对Web系统后端的无侵入,使统一认证方法对不同类型的旧有Web系统均具有通用性,是在Web系统进行架构扩展时技术人员需要解决的问题。
发明内容
针对现有技术存在的问题,本发明提出了一种Web与微服务的统一认证系统及方法,在对旧有Web系统做基于微服务的扩展开发时,实现旧有Web系统和微服务系统的统一认证,保证对原Web系统的无侵入,对Web系统和微服务系统域名不同的情况,以及对旧有Web系统校验类型不同的情况均具有通用性。
本发明系统的技术方案为一种Web与微服务的统一认证系统,其特征在于,包括:用户客户端、Nginx服务器、网关服务器、授权服务器、微服务应用服务器、原Web系统应用服务器;
所述用户客户端与所述Nginx服务器通过无线通信方式连接,所述Nginx服务器与所述网关服务器通过导线连接,所述网关服务器分别与所述的授权服务器、微服务应用服务器、原Web系统应用服务器通过导线依次连接;
作为优选,所述Nginx服务器用来对域名的重定向到第三方域名下进行统一的登录、认证和授权,使得所述的微服务应用服务器、原Web系统应用服务器的域名使用无限制;
所述Nginx服务器中记录所述的授权服务器、微服务应用服务器、原Web系统应用服务器的域名;监听所述的微服务应用服务器、原Web系统应用服务器的客户端端口;
所述Nginx服务器对应浏览器服务请求进行匹配,匹配url的文件路径中带有登录的服务请求,并重定向到授权服务域名下的授权请求;对于浏览器其他的服务请求转发到所述网关服务器;
作为优选,所述网关服务器集成了对经所述Nginx服务器转发来的浏览器服务请求的过滤、鉴权和路由功能,所述网关服务器用于建立缓存信息表;
所述网关缓存信息表用客户端ID唯一标识客户端身份,缓存授权后令牌、重定向地址以及时间戳,用唯一标识客户端身份和缓存授权后令牌的比对实现对不同校验类型所述的原Web系统应用服务器的请求鉴权;
其中,唯一标识客户端身份定义为clientID,缓存授权后令牌定义为token,重定向地址定义为redirectUrl,时间戳定义为timestamp;
作为优选,所述授权服务器采用授权服务对用户登录进行认证授权,实现了认证授权功能和鉴权功能的分离;
作为优选,所述微服务应用服务器用于微服务应用的部署,所述微服务应用包括与具体业务相关的多个后台微服务实例;
作为优选,所述原Web系统应用服务器用于原Web系统应用服务端的部署,原Web系统属于前后端分离系统。
本发明方法的技术方案为一种Web与微服务的统一认证方法,包括以下步骤:
步骤1:所述用户客户端向所述Nginx服务器发起浏览器访问微服务登录请求数据,所述Nginx服务器根据浏览器访问服务请求数据进行域名重定向,得到浏览器链接数据,并传输至所述用户客户端;
步骤2:所述用户客户端向所述Nginx服务器发起浏览器访问授权请求数据,所述Nginx服务器转发给所述网关服务器,经过所述网关服务器转发给所述授权服务器,所述授权服务器根据浏览器访问服务请求数据进行重定向,得到浏览器链接数据,并传输至所述用户客户端;
步骤3:所述用户客户端向所述Nginx服务器发起浏览器访问授权登录请求数据,所述Nginx服务器转发给所述网关服务器,经过所述网关服务器转发给所述授权服务器,所述授权服务器根据浏览器访问服务请求返回登录页数据,并传输至所述用户客户端;
步骤4:所述用户客户端提交登陆信息,向所述Nginx服务器发起浏览器访问登录提交请求数据,所述Nginx服务器转发给所述网关服务器,经过所述网关服务器转发给所述授权服务器,所述授权服务器根据浏览器访问登录提交请求数据进行重定向,得到浏览器链接数据,并传输至所述用户客户端;
步骤5:所述用户客户端向所述Nginx服务器发起浏览器访问微服务系统主页请求数据,所述Nginx服务器转发给所述网关服务器,所述网关服务器鉴权通过后转发给微服务应用服务器,得到浏览器链接数据,并传输至所述用户客户端;
步骤6:所述用户客户端向所述Nginx服务器发起浏览器访问原Web系统服务请求数据,所述Nginx服务器根据浏览器访问服务请求数据进行域名重定向,得到浏览器链接数据,并传输至所述用户客户端;
步骤7:所述用户客户端向所述Nginx服务器发起浏览器访问授权请求数据,所述Nginx服务器转发给所述网关服务器,经过所述网关服务器转发给所述授权服务器,所述授权服务器根据浏览器访问服务请求数据进行重定向,得到浏览器链接数据,并传输至所述用户客户端;
步骤8:所述用户客户端向所述Nginx服务器发起浏览器访问原Web系统主页请求数据,所述Nginx服务器转发给所述网关服务器,所述网关服务器鉴权通过后转发给原Web系统应用服务器,得到浏览器链接数据,并传输至所述用户客户端;
作为优选,步骤1中所述浏览器访问服务请求数据由url原始数据得到为浏览器对微服务系统的登录请求的数据;
原始数据为:
url0={protocol0,hostname0,port0,path0,query0,frag0};
其中,protocol0为请求协议方案,hostname0为原始数据的主机地址,port0为原始数据的端口,path0为原始数据的网络资源在服务器中的指定路径,query0为原始数据的所带参数的字符串,frag0为原始数据的网页片段;
所述浏览器对微服务系统的登录请求的数据为:
url1={http,msas_hostname,port1,login1,query1,frag1};
其中,http为请求协议方案,msas_hostname为微服务登录请求数据的微服务系统域名,login1为微服务登录请求数据的登录方法的路径,port1为微服务登录请求数据的端口,query1为微服务登录请求数据的所带参数的字符串,frag1为微服务登录请求数据的网页片段;
步骤1中所述根据浏览器访问服务请求数据进行域名重定向具体过程为:
所述浏览器访问服务请求数据中的path匹配带有login,所述Nginx服务器将浏览器访问服务请求重定向到授权服务域名下的授权请求,重定向地址url2:
url2={http,msas_hostname,port2,home1,query2,frag2};
其中,http为请求协议方案,msas_hostname为微服务主页请求数据的微服务系统域名,home1为微服务主页请求数据的主页的路径,port2为微服务主页请求数据的端口且等同于port1,query2为微服务主页请求数据的所带参数的字符串,frag2为微服务主页请求数据的网页片段;
redirectUrl1=url2;
步骤1中所述浏览器链接数据为对授权服务的授权请求的数据即url3:
url3={http,auth_hostname,port3,authenticate,redirectUrl1,frag3};
其中,http为请求协议方案,auth_hostname为授权服务的域名,authenticate为授权请求数据的路径,redirectUrl1为授权请求数据的参数字符串的重定向地址,重定向地址具体为对微服务主页请求数据的url地址url2,port3为授权请求数据的端口,frag3为授权请求数据的网页片段;
作为优选,步骤2中所述浏览器访问服务请求数据即为:
url3={http,auth_hostname,port3,authenticate,redirectUrl1,frag3};
步骤2中所述Nginx服务器转发给所述网关服务器,用所述Nginx服务器在所述用户客户端的端口监听所有请求,将授权请求转发到所述网关服务器上;
步骤2中经过所述网关服务器转发给所述授权服务器,是当授权请求转发到网关服务器时,由于是所述用户客户端首次发起授权请求;
网关缓存信息表原始数据用集合表示为:
T0={clientID0,token0,redirectUrl0,timestamp0};
其中,clientID0为客户端ID,由网关根据客户端的请求获取客户端名字和IP地址生成,来唯一标识同一个客户端请求访问时的客户身份;token0为令牌,由授权服务器认证通过后生成;redirectUrl0为重定向地址,由初次发起认证请求时携带;timestamp0为时间戳,由在网关缓存token的同时生成,用来记录令牌的有效期;
网关缓存信息表中的clientID0、token0、redirectUrl0、timestamp0原始数据都为空,所述网关根据客户端的请求获取客户端名字和IP地址初次生成clientID1;
此时,网关缓存信息表数据集合为:
T1={clientID1,token0,redirectUrl1,timestamp0};
其中clientID1由客户端请求生成,redirectUrl1为授权请求数据的参数字符串的重定向地址,token0、timestamp0依然为原始数据即为空;
网关服务器将授权请求转发到所述授权服务器;
步骤2中所述授权服务器授权状态为未授权,根据浏览器访问服务请求数据进行域名重定向,重定向到授权服务的登录请求,即path改为授权服务下的登录路径/auth/login;
步骤2中所述浏览器链接数据为对授权服务的登录请求的数据即url4:
url4={http,auth_hostname,port4,login2,redirectUrl1,frag4};
其中,http为请求协议方案,auth_hostname为授权服务的域名,login2为授权登录请求数据的路径,redirectUrl1为授权登录请求数据的参数字符串的重定向地址,重定向地址具体为对微服务主页请求数据的url地址url2,port4为授权请求数据的端口且等同于port3,frag4为授权请求数据的网页片段;
作为优选,步骤3中所述浏览器授权登录请求数据即为url4:
url4={http,auth_hostname,port4,login2,redirectUrl1,frag4};
步骤3中所述Nginx服务器转发授权登录请求给所述网关服务器,用Nginx通过监听在客户端端口所有请求,将授权登录请求转发到网关服务器上;
步骤3中经过所述网关服务器转发给所述授权服务器,是将授权登录请求转发到授权服务器;
步骤3中所述授权服务器根据浏览器访问服务请求返回登录页数据,是对登陆页面的文件调用,返回给浏览器显示登陆界面;
作为优选,步骤4中所述浏览器登陆提交请求数据即为:
url5={http,auth_hostname,port5,submit,redirectUrl1&username&password,frag5};
其中,http为请求协议方案,auth_hostname为授权服务的域名,submit为登陆提交请求数据的路径,redirectUrl1为登陆提交请求数据的参数字符串的重定向地址,重定向地址具体为对微服务主页请求数据的url地址url2,username为用户提交的用户名,password为用户提交的密码,port5为登陆提交请求数据的端口且等同于port3,frag5为登陆提交请求数据的网页片段;
步骤4中所述Nginx服务器转发给所述网关服务器,用Nginx通过监听在客户端端口所有请求,将登录提交请求转发到网关服务器;
步骤4中经过所述网关服务器转发给所述授权服务器,是将授权服务的登录提交请求转发到授权服务器;
步骤4中所述授权服务器根据浏览器访问登录提交请求数据进行重定向,是通过登录信息认证方法对用户提交的信息进行认证,若登录认证失败则重定向回登录页重新进行步骤3;若登陆认证成功调用则在授权服务器生成令牌token1,重定向到登陆提交请求的redirectUrl1即微服务系统主页;
步骤4中所述浏览器链接数据为对微服务的主页访问请求的数据即url6:
url6={http,msas_hostname,port6,home1,token1,frag6};
其中,http为请求协议方案,msas_hostname为微服务系统的域名,home1为微服务的主页访问请求数据的路径,token1为请求数据的令牌,port6为微服务的主页访问请求数据的端口且等同于port1,frag5为微服务的主页访问请求数据的网页片段;
同时将令牌token及timestamp记录到网关的缓存信息表中;
此时,网关缓存信息表数据集合为:
T2={clientID1,token1,redirectUrl1,timestamp1};
其中clientID1由客户端初次发起的授权请求生成,redirectUrl1为微服务主页请求的重定向地址,token1为授权通过生成的令牌,timestamp0为存储token1时的时间戳;
作为优选,步骤5中所述浏览器访问微服务系统主页请求数据url6为:
url6={http,msas_hostname,port6,home1,token1,frag6};
步骤5中所述Nginx服务器转发给所述网关服务器,用Nginx通过监听在客户端端口所有请求,将微服务系统主页请求转发到网关服务器上;
步骤5中所述网关服务器鉴权通过后转发给微服务应用服务器,是将微服务系统主页请求生成的clientID2与网关缓存T2中的clientID1进行对比,将微服务系统主页请求数据url6的token1和网关缓存T2中的token1进行比对,如果两者均相同,且网关缓存T2中的timestamp1没过期,则网关鉴权通过,将请求路由到微服务系统后端服务;
步骤5中所述浏览器链接数据是微服务系统后端服务的主页内容,返回给浏览器显示。
作为优选,步骤6中所述浏览器访问原Web系统的登录请求数据url7:
url7={http,mas_hostname,port7,login3,query7,frag7};
其中,http为请求协议方案,mas_hostname为原Web系统的域名,login3为原Web系统登录请求数据的login登录方法的路径,port7为原Web系统登录请求数据的端口,query7为原Web系统登录请求数据的所带参数的字符串,frag7为原Web系统登录请求数据的网页片段;
步骤6中所述根据浏览器访问服务请求数据进行域名重定向具体过程为:
所述浏览器访问原Web系统登录请求数据中的path匹配带有login,所述Nginx服务器将浏览器访问服务请求重定向到授权服务域名下的授权请求,重定向地址url8:
url8={http,mas_hostname,port8,home2,query8,frag8};
其中,http为请求协议方案,msas_hostname为原Web系统的域名,home2为原Web系统主页请求数据的主页的路径,port8为原Web系统主页请求数据的端口且等同于port7,query8为原Web系统主页请求数据的所带参数的字符串,frag8为原Web系统主页请求数据的网页片段;
redirectUrl2=url8;
步骤6中所述浏览器链接数据为对授权服务的授权请求的数据即url9:
url9={http,auth_hostname,port9,authenticate,redirectUrl2,frag9};
其中,http为请求协议方案,auth_hostname为授权服务的域名,authenticate为授权请求数据的路径,redirectUrl2为授权请求数据的参数字符串的重定向地址,重定向地址具体为对原Web系统主页请求数据的url地址url8,port9为授权请求数据的端口且等同于port3,frag9为授权请求数据的网页片段;
作为优选,步骤7中所述浏览器访问服务请求数据为url9:
url9={http,auth_hostname,port9,authenticate,redirectUrl2,frag9};
步骤7中所述Nginx服务器转发给所述网关服务器,用Nginx通过监听在客户端端口所有请求,将授权请求转发到网关服务器上;
步骤7中经过所述网关服务器转发给所述授权服务器,是当授权请求转发到网关服务器时,是授权请求生成的clientID3与网关缓存T2中的clientID1进行比对,如果两者相同,则网关将授权请求转发到授权服务器;
步骤7中所述授权服务器根据浏览器访问服务请求数据进行域名重定向,同一个客户端发起授权请求在第一次发起时已被认证过,授权成功重定向到授权请求的redirectUrl2即原Web系统主页;
步骤7中所述浏览器链接数据为对原Web系统的主页访问请求数据url10:
url10={http,mas_hostname,port10,home2,token1,frag10};
其中,http为请求协议方案,mas_hostname为原Web系统的域名,home2为原Web系统的主页访问请求数据的路径,token1为请求数据的令牌,port10为原Web系统的主页访问请求数据的端口且等同于port7,frag10为原Web系统的主页访问请求数据的网页片段;
作为优选,步骤8中所述浏览器访问原Web系统主页请求数据url11为:
url11=url10={http,mas_hostname,port10,home2,token1,frag10};
步骤8中所述Nginx服务器转发给所述网关服务器,用Nginx通过监听在客户端端口所有请求,将微服务系统主页请求转发到网关服务器上;
步骤8中所述网关服务器鉴权通过后转发给原Web系统应用服务器,是当原Web系统不需要token校验时,网关将原Web系统主页请求生成的clientID3与网关缓存T2中的clientID1进行对比,鉴权通过后将请求路由到原Web系统后端服务;
当原Web系统需要token校验时,网关将原Web系统主页请求生成的clientID3与网关缓存T2中的clientID1进行对比,将原Web系统主页请求数据url11中令牌token1与网关缓存T2中的token1进行对比,如果相同,且网关缓存T2中的timestamp1没过期,则则网关鉴权通过,将请求路由到原Web系统后端服务。
步骤8中所述浏览器链接数据是原Web系统后端服务的主页内容,返回给浏览器显示。
与现有的统一认证方案相比,本发明的优势和意义为:
保证了对Web系统和微服务系统的统一认证,用户可以对系统进行统一访问,统一发起网络请求,提高了访问效率。
保证了原Web系统的后端无侵入;同时易于网关服务和认证服务的集群部署,缓解网关负载压力。
对Web系统和微服务系统的主域名不统一的情况具有通用性。
对不同校验类型的旧有Web系统均具有通用性。
附图说明
图1:为本发明系统拓扑结构图;
图2:为本发明方法的时序图;
图3:为本发明方法的流程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明系统的技术方案为一种Web与微服务的统一认证系统,其特征在于,包括:用户客户端、Nginx服务器、网关服务器、授权服务器、微服务应用服务器、原Web系统应用服务器;
本发明系统的拓扑结构图如图1所示;
所述用户客户端与所述Nginx服务器通过无线通信方式连接,所述Nginx服务器与所述网关服务器通过导线连接,所述网关服务器分别与所述的授权服务器、微服务应用服务器、原Web系统应用服务器通过导线依次连接;
具体地,所述Nginx服务器用于部署Nginx服务;
具体地,所述网关服务器用于部署网关服务Api Gateway;
具体地,所述授权服务器用于部署授权服务Auth Server;
具体地,所述微服务应用服务器用于部署MSAS微服务系统;
具体地,所述原Web系统应用服务器用于部署MAS原Web系统;
所述Nginx服务器用来对域名重定向到授权服务Auth Server域名下进行统一的登录、认证和授权,使得所述的MSAS微服务系统、MAS原Web系统的域名使用无限制;
所述Nginx服务中记录所述的授权服务Auth Server、MSAS微服务系统、MAS原Web系统的域名;监听所述的MSAS微服务系统、MAS原Web系统的客户端端口;
所述Nginx服务对应浏览器服务请求进行匹配,匹配url的文件路径中带有登录的服务请求,并重定向到Auth Server域名下的授权请求;对于浏览器其他的服务请求转发到所述网关服务Api Gateway;
具体地,所述网关服务Api Gateway集成了对经所述Nginx服务转发来的浏览器服务请求的过滤、鉴权和路由功能,所述网关服务Api Gateway用于建立缓存信息表;
所述网关缓存信息表用客户端ID唯一标识客户端身份,缓存授权后令牌、重定向地址以及时间戳,用唯一标识客户端身份和缓存授权后令牌的比对实现对不同校验类型所述的原Web系统应用服务器的请求鉴权;
其中,唯一标识客户端身份定义为clientID,缓存授权后令牌定义为token,重定向地址定义为redirectUrl,时间戳定义为timestamp;
具体地,所述授权服务Auth Server对用户登录进行认证授权,实现了认证授权功能和鉴权功能的分离;
具体地,所述MSAS微服务应用包括与具体业务相关的多个后台微服务实例;
具体地,所述MAS原Web系统应用包括原Web系统应用服务端后台实例;
图2为本发明实施例提供的一种Web与微服务的统一认证方法的时序图,
图3为本发明实施例提供的一种Web与微服务的统一认证方法的访问流程图;
本发明具体实施方式的技术方案为一种Web与微服务的统一认证方法,如图2所示,包括以下步骤:
步骤1:所述用户客户端向所述Nginx服务器发起浏览器访问MSAS微服务系统登录请求数据,所述Nginx服务器根据浏览器访问服务请求数据进行域名重定向,得到浏览器链接数据,并传输至所述用户客户端;
具体地,步骤1中所述浏览器访问服务请求数据由url原始数据得到为浏览器对微服务系统的登录请求的数据;
具体地,所述浏览器对MSAS微服务系统的登录请求的数据为:
url1={http,msas.com,*port,/msas/login,*query,*frag};
其中,http为请求协议方案,msas.com为MSAS微服务系统域名,/msas/login为微服务登录请求数据的登录方法的路径,*port表示请求数据的端口为空,*query表示请求数据的参数字符串为空,*frag表示请求数据的网页片段为空;
步骤1中所述根据浏览器访问服务请求数据进行域名重定向具体过程为:
所述浏览器访问服务请求数据中的path匹配带有login,所述Nginx服务器将浏览器访问服务请求重定向到授权服务域名下的授权请求,重定向地址url2:
url2={http,msas.com,*port,/msas/home,*query,*frag};
其中,http为请求协议方案,msas.com为MSAS微服务系统域名,/msas/home为微服务主页请求数据的主页的路径,*port表示请求数据的端口为空,*query表示请求数据的参数字符串为空,*frag表示请求数据的网页片段为空;
redirectUrl1=url2;
步骤1中所述浏览器链接数据为对授权服务Auth Server的授权请求的数据即url3:
url3={http,api.company.com,*port,/auth/authenticate,redirectUrl1,*frag};
其中,http为请求协议方案,api.company.com为授权服务的域名,/auth/authenticate为授权请求数据的路径,redirectUrl1为授权请求参数字符串的重定向地址,重定向地址具体为对微服务主页请求数据的url地址url2,*port表示请求数据的端口为空,*frag表示请求数据的网页片段为空;
步骤2:所述用户客户端向所述Nginx服务器发起浏览器访问授权请求数据,所述Nginx服务器转发给所述网关服务器,经过所述网关服务器转发给所述授权服务器,所述授权服务器根据浏览器访问服务请求数据进行重定向,得到浏览器链接数据,并传输至所述用户客户端;
具体地,步骤2中所述浏览器访问服务请求数据即为:
url3={http,api.company.com,*port,/auth/authenticate,redirectUrl1,*frag};
步骤2中所述Nginx服务器转发给所述网关服务器,用所述Nginx服务器在所述用户客户端的端口监听所有请求,将授权请求转发到所述网关服务器上;
步骤2中经过所述网关服务器转发给所述授权服务器,是当授权请求转发到网关服务器时,由于是所述用户客户端首次发起授权请求;
所述网关根据客户端的请求获取客户端名字和IP地址初次生成clientID1;
具体地,此时网关缓存信息表数据集合为:
T1={s6BhdRkqt3,*token,redirectUrl1,*timestamp};
其中s6BhdRkqt3即为clientID1,由客户端请求生成,redirectUrl1为授权请求数据的参数字符串的重定向地址即为url2,*token表示令牌为空,*timestamp表示时间戳为空;
网关服务器将授权请求转发到所述授权服务器;
步骤2中所述授权服务器授权状态为未授权,根据浏览器访问服务请求数据进行域名重定向,重定向到授权服务的登录请求,即path改为授权服务下的登录路径/auth/login;
步骤2中所述浏览器链接数据为对授权服务的登录请求的数据即url4:
url4={http,api.company.com,*port,/auth/login,redirectUrl1,*frag};
其中,http为请求协议方案,api.company.com为授权服务的域名,/auth/login为授权登录请求数据的路径,redirectUrl1为授权登录请求数据的参数字符串的重定向地址,重定向地址具体为对微服务主页请求数据的url地址即为url2,*port表示请求数据的端口为空,*frag表示请求数据的网页片段为空;
步骤3:所述用户客户端向所述Nginx服务器发起浏览器访问授权登录请求数据,所述Nginx服务器转发给所述网关服务器,经过所述网关服务器转发给所述授权服务器,所述授权服务器根据浏览器访问服务请求返回登录页数据,并传输至所述用户客户端;
具体地,步骤3中所述浏览器授权登录请求数据即为url4:
url4={http,api.company.com,*port,/auth/login,redirectUrl1,*frag};
步骤3中所述Nginx服务器转发授权登录请求给所述网关服务器,用Nginx通过监听在客户端端口所有请求,将授权登录请求转发到网关服务器上;
步骤3中经过所述网关服务器转发给所述授权服务器,是将授权登录请求转发到授权服务器;
步骤3中所述授权服务器根据浏览器访问服务请求返回登录页数据,是对登陆页面的文件调用,返回给浏览器显示登陆界面;
步骤4:所述用户客户端提交登陆信息,向所述Nginx服务器发起浏览器访问登录提交请求数据,所述Nginx服务器转发给所述网关服务器,经过所述网关服务器转发给所述授权服务器,所述授权服务器根据浏览器访问登录提交请求数据进行重定向,得到浏览器链接数据,并传输至所述用户客户端;
具体地,步骤4中所述浏览器登陆提交请求数据即为:
url5={http,api.company.com,*port,/auth/submit,redirectUrl1&username=admin&password=admin,*frag};
其中,http为请求协议方案,api.company.com为授权服务的域名,/auth/submit为登陆提交请求数据的路径,redirectUrl1为登陆提交请求数据的参数字符串的重定向地址,重定向地址具体为对微服务主页请求数据的url地址url2,username=admin为用户提交的用户名,password=admin为用户提交的密码,*port表示请求数据的端口为空,*frag表示请求数据的网页片段为空;
步骤4中所述Nginx服务器转发给所述网关服务器,用Nginx通过监听在客户端端口所有请求,将登录提交请求转发到网关服务器;
步骤4中经过所述网关服务器转发给所述授权服务器,是将授权服务的登录提交请求转发到授权服务器;
步骤4中所述授权服务器根据浏览器访问登录提交请求数据进行重定向,是通过登录信息认证方法对用户提交的信息进行认证,若登录认证失败则重定向回登录页重新进行步骤3;若登陆认证成功调用则在授权服务器生成令牌token1,重定向到登陆提交请求的redirectUrl1即微服务系统主页;
步骤4中所述浏览器链接数据为对微服务的主页访问请求的数据即url6:
url6={http,msas.com,*port,/msas/home,token=2YotnFzFEjr1zCsicmWpaA,*frag};
其中,http为请求协议方案,msas.com为微服务系统的域名,/msas/home为微服务的主页访问请求数据的路径,token=2YotnFzFEjr1zCsicmWpaA为请求数据的令牌,*port表示请求数据的端口为空,*frag表示请求数据的网页片段为空;
同时将令牌token及timestamp记录到网关的缓存信息表中;
此时,网关缓存信息表数据集合为:
T2={s6BhdRkqt3,2YotnFzFEjr1zCsicmWpaA,redirectUrl1,timestamp1};
其中s6BhdRkqt3为由客户端初次发起的授权请求生成的clientID1,
redirectUrl1为微服务主页请求的重定向地址,2YotnFzFEjr1zCsicmWpaA为授权通过生成的令牌token1,timestamp0为存储token1时的时间戳;
步骤5:所述用户客户端向所述Nginx服务器发起浏览器访问微服务系统主页请求数据,所述Nginx服务器转发给所述网关服务器,所述网关服务器鉴权通过后转发给微服务应用服务器,得到浏览器链接数据,并传输至所述用户客户端;
具体地,步骤5中所述浏览器访问微服务系统主页请求数据url6为:
url6={http,msas.com,*port,/msas/home,token=2YotnFzFEjr1zCsicmWpaA,*frag};
步骤5中所述Nginx服务器转发给所述网关服务器,用Nginx通过监听在客户端端口所有请求,将微服务系统主页请求转发到网关服务器上;
步骤5中所述网关服务器鉴权通过后转发给微服务应用服务器,是将微服务系统主页请求生成的clientID2与网关缓存T2中的clientID1进行对比,将微服务系统主页请求数据url6的token1和网关缓存T2中的token1进行比对,如果两者均相同,且网关缓存T2中的timestamp1没过期,则网关鉴权通过,将请求路由到MSAS微服务系统后端服务;
步骤5中所述浏览器链接数据是微服务系统后端服务的主页内容,返回给浏览器显示;
步骤6:所述用户客户端向所述Nginx服务器发起浏览器访问MAS原Web系统服务请求数据,所述Nginx服务器根据浏览器访问服务请求数据进行域名重定向,得到浏览器链接数据,并传输至所述用户客户端;
具体地,步骤6中所述浏览器访问MAS原Web系统的登录请求数据url7:
url7={http,mas.com,*port,/mas/login,*query,*frag};
其中,http为请求协议方案,mas.com为MAS原Web系统的域名,/mas/login为原Web系统登录请求数据的login登录方法的路径,*port表示请求数据的端口为空,*query表示请求数据的参数字符串为空,*frag表示请求数据的网页片段为空;
步骤6中所述根据浏览器访问服务请求数据进行域名重定向具体过程为:
所述浏览器访问原Web系统登录请求数据中的path匹配带有login,所述Nginx服务器将浏览器访问服务请求重定向到授权服务域名下的授权请求,重定向地址url8:
url8={http,mas.com,*port,/mas/home,*query,*frag};
其中,http为请求协议方案,mas.com为MAS原Web系统的域名,/mas/home为原Web系统主页请求数据的主页的路径,*port表示请求数据的端口为空,*query表示请求数据的参数字符串为空,*frag表示请求数据的网页片段为空;
redirectUrl2=url8;
步骤6中所述浏览器链接数据为对授权服务的授权请求的数据即url9:
url9={http,api.company.com,*port,/auth/authenticate,redirectUrl2,*frag};
其中,http为请求协议方案,api.company.com为授权服务的域名,/auth/authenticate为授权请求数据的路径,redirectUrl2为授权请求数据的参数字符串的重定向地址,重定向地址具体为对原Web系统主页请求数据的url地址即为url8,*port表示请求数据的端口为空,*frag表示请求数据的网页片段为空;
步骤7:所述用户客户端向所述Nginx服务器发起浏览器访问授权请求数据,所述Nginx服务器转发给所述网关服务器,经过所述网关服务器转发给所述授权服务器,所述授权服务器根据浏览器访问服务请求数据进行重定向,得到浏览器链接数据,并传输至所述用户客户端;
具体地,步骤7中所述浏览器访问服务请求数据为url9:
url9={http,api.company.com,*port,/auth/authenticate,redirectUrl2,*frag};
步骤7中所述Nginx服务器转发给所述网关服务器,用Nginx通过监听在客户端端口所有请求,将授权请求转发到网关服务器上;
步骤7中经过所述网关服务器转发给所述授权服务器,是当授权请求转发到网关服务器时,是授权请求生成的clientID3与网关缓存T2中的clientID1进行比对,如果两者相同,则网关将授权请求转发到授权服务器;
步骤7中所述授权服务器根据浏览器访问服务请求数据进行域名重定向,同一个客户端发起授权请求在第一次发起时已被认证过,授权成功重定向到授权请求的redirectUrl2即原Web系统主页。
步骤7中所述浏览器链接数据为对原Web系统的主页访问请求数据url10:
url10={http,mas.com,*port,/mas/home,token=2YotnFzFEjr1zCsicmWpaA,*frag};
其中,http为请求协议方案,mas.com为原Web系统的域名,/mas/home为原Web系统的主页访问请求数据的路径,2YotnFzFEjr1zCsicmWpaA为请求数据的令牌token,*port表示请求数据的端口为空,*frag表示请求数据的网页片段为空;
步骤8:所述用户客户端向所述Nginx服务器发起浏览器访问原Web系统主页请求数据,所述Nginx服务器转发给所述网关服务器,所述网关服务器鉴权通过后转发给原Web系统应用服务器,得到浏览器链接数据,并传输至所述用户客户端;
具体地,步骤8中所述浏览器访问微服务系统主页请求数据url11为:
url11=url10={http,mas.com,*port,/mas/home,token=2YotnFzFEjr1zCsicmWpaA,*frag};
步骤8中所述Nginx服务器转发给所述网关服务器,用Nginx通过监听在客户端端口所有请求,将微服务系统主页请求转发到网关服务器上;
步骤8中所述网关服务器鉴权通过后转发给原Web系统应用服务器,是当原Web系统不需要token校验时,网关将原Web系统主页请求生成的clientID3与网关缓存T2中的clientID1进行对比,鉴权通过后将请求路由到原Web系统后端服务;
当原Web系统需要token校验时,网关将原Web系统主页请求生成的clientID3与网关缓存T2中的clientID1进行对比,将原Web系统主页请求数据url11中令牌token1与网关缓存T2中的token1进行对比,如果相同,且网关缓存T2中的timestamp1没过期,则网关鉴权通过,将请求路由到原Web系统后端服务。
步骤8中所述浏览器链接数据是MAS原Web系统后端服务的主页内容,返回给浏览器显示。
尽管本文较多地使用了客户端、Nginx服务器、网关服务器、授权服务器、微服务应用服务器、原Web系统应用服务器等术语,但并不排除使用其他术语的可能性。使用这些术语仅仅是为了更方便的描述本发明的本质,把它们解释成任何一种附加的限制都是与本发明精神相违背的。
应当理解的是,上述针对较佳实施例的描述较为详细,并不能因此而认为是对本发明专利保护范围的限制,本领域的普通技术人员在本发明的启示下,在不脱离本发明权利要求所保护的范围情况下,还可以做出替换或变形,均落入本发明的保护范围之内,本发明的请求保护范围应以所附权利要求为准。
Claims (10)
1.一种Web与微服务的统一认证系统,其特征在于,用户客户端、Nginx服务器、网关服务器、授权服务器、微服务应用服务器、原Web系统应用服务器;
所述用户客户端与所述Nginx服务器通过无线通信方式连接,所述Nginx服务器与所述网关服务器通过导线连接,所述网关服务器分别与所述的授权服务器、微服务应用服务器、原Web系统应用服务器通过导线依次连接;
所述Nginx服务器用来对域名的重定向到第三方域名下进行统一的登录、认证和授权,使得所述的微服务应用服务器、原Web系统应用服务器的域名使用无限制;
所述Nginx服务器中记录所述的授权服务器、微服务应用服务器、原Web系统应用服务器的域名;监听所述的微服务应用服务器、原Web系统应用服务器的客户端端口;
所述Nginx服务器对应浏览器服务请求进行匹配,匹配url的文件路径中带有登录的服务请求,并重定向到授权服务域名下的授权请求;对于浏览器其他的服务请求转发到所述网关服务器;
所述网关服务器集成了对经所述Nginx服务器转发来的浏览器服务请求的过滤、鉴权和路由功能,所述网关服务器用于建立缓存信息表;
所述网关缓存信息表用客户端ID唯一标识客户端身份,缓存授权后令牌、重定向地址以及时间戳,用唯一标识客户端身份和缓存授权后令牌的比对实现对不同校验类型所述的原Web系统应用服务器的请求鉴权;
其中,唯一标识客户端身份定义为clientID,缓存授权后令牌定义为token,重定向地址定义为redirectUrl,时间戳定义为timestamp;
所述授权服务器采用授权服务对用户登录进行认证授权,实现了认证授权功能和鉴权功能的分离;
所述微服务应用服务器用于微服务应用的部署,所述微服务应用包括与具体业务相关的多个后台微服务实例;
所述原Web系统应用服务器用于原Web系统应用服务端的部署,原Web系统属于前后端分离系统。
2.一种利用权利要求1所述的Web与微服务的统一认证系统进行Web与微服务的统一认证方法,其特征在于,包括以下步骤:
步骤1:所述用户客户端向所述Nginx服务器发起浏览器访问微服务登录请求数据,所述Nginx服务器根据浏览器访问服务请求数据进行域名重定向,得到浏览器链接数据,并传输至所述用户客户端;
步骤2:所述用户客户端向所述Nginx服务器发起浏览器访问授权请求数据,所述Nginx服务器转发给所述网关服务器,经过所述网关服务器转发给所述授权服务器,所述授权服务器根据浏览器访问服务请求数据进行重定向,得到浏览器链接数据,并传输至所述用户客户端;
步骤3:所述用户客户端向所述Nginx服务器发起浏览器访问授权登录请求数据,所述Nginx服务器转发给所述网关服务器,经过所述网关服务器转发给所述授权服务器,所述授权服务器根据浏览器访问服务请求返回登录页数据,并传输至所述用户客户端;
步骤4:所述用户客户端提交登陆信息,向所述Nginx服务器发起浏览器访问登录提交请求数据,所述Nginx服务器转发给所述网关服务器,经过所述网关服务器转发给所述授权服务器,所述授权服务器根据浏览器访问登录提交请求数据进行重定向,得到浏览器链接数据,并传输至所述用户客户端;
步骤5:所述用户客户端向所述Nginx服务器发起浏览器访问微服务系统主页请求数据,所述Nginx服务器转发给所述网关服务器,所述网关服务器鉴权通过后转发给微服务应用服务器,得到浏览器链接数据,并传输至所述用户客户端;
步骤6:所述用户客户端向所述Nginx服务器发起浏览器访问原Web系统服务请求数据,所述Nginx服务器根据浏览器访问服务请求数据进行域名重定向,得到浏览器链接数据,并传输至所述用户客户端;
步骤7:所述用户客户端向所述Nginx服务器发起浏览器访问授权请求数据,所述Nginx服务器转发给所述网关服务器,经过所述网关服务器转发给所述授权服务器,所述授权服务器根据浏览器访问服务请求数据进行重定向,得到浏览器链接数据,并传输至所述用户客户端;
步骤8:所述用户客户端向所述Nginx服务器发起浏览器访问原Web系统主页请求数据,所述Nginx服务器转发给所述网关服务器,所述网关服务器鉴权通过后转发给原Web系统应用服务器,得到浏览器链接数据,并传输至所述用户客户端。
3.根据权利要求2所述的Web与微服务的统一认证方法,其特征在于,步骤1中所述浏览器访问服务请求数据由url原始数据得到为浏览器对微服务系统的登录请求的数据;
原始数据为:
url0={protocol0,hostname0,port0,path0,query0,frag0};
其中,protocol0为请求协议方案,hostname0为原始数据的主机地址,port0为原始数据的端口,path0为原始数据的网络资源在服务器中的指定路径,query0为原始数据的所带参数的字符串,frag0为原始数据的网页片段;
所述浏览器对微服务系统的登录请求的数据为:
url1={http,msas_hostname,port1,login1,query1,frag1};
其中,http为请求协议方案,msas_hostname为微服务登录请求数据的微服务系统域名,login1为微服务登录请求数据的登录方法的路径,port1为微服务登录请求数据的端口,query1为微服务登录请求数据的所带参数的字符串,frag1为微服务登录请求数据的网页片段;
步骤1中所述根据浏览器访问服务请求数据进行域名重定向具体过程为:
所述浏览器访问服务请求数据中的path匹配带有login,所述Nginx服务器将浏览器访问服务请求重定向到授权服务域名下的授权请求,重定向地址url2:
url2={http,msas_hostname,port2,home1,query2,frag2};
其中,http为请求协议方案,msas_hostname为微服务主页请求数据的微服务系统域名,home1为微服务主页请求数据的主页的路径,port2为微服务主页请求数据的端口且等同于port1,query2为微服务主页请求数据的所带参数的字符串,frag2为微服务主页请求数据的网页片段;
redirectUrl1=url2;
步骤1中所述浏览器链接数据为对授权服务的授权请求的数据即url3:
url3={http,auth_hostname,port3,authenticate,redirectUrl1,frag3};
其中,http为请求协议方案,auth_hostname为授权服务的域名,authenticate为授权请求数据的路径,redirectUrl1为授权请求数据的参数字符串的重定向地址,重定向地址具体为对微服务主页请求数据的url地址url2,port3为授权请求数据的端口,frag3为授权请求数据的网页片段。
4.根据权利要求2所述的Web与微服务的统一认证方法,其特征在于,步骤2中所述浏览器访问服务请求数据即为:
url3={http,auth_hostname,port3,authenticate,redirectUrl1,frag3};
步骤2中所述Nginx服务器转发给所述网关服务器,用所述Nginx服务器在所述用户客户端的端口监听所有请求,将授权请求转发到所述网关服务器上;
步骤2中经过所述网关服务器转发给所述授权服务器,是当授权请求转发到网关服务器时,由于是所述用户客户端首次发起授权请求;
网关缓存信息表原始数据用集合表示为:
T0={clientID0,token0,redirectUrl0,timestamp0};
其中,clientID0为客户端ID,由网关根据客户端的请求获取客户端名字和IP地址生成,来唯一标识同一个客户端请求访问时的客户身份;token0为令牌,由授权服务器认证通过后生成;redirectUrl0为重定向地址,由初次发起认证请求时携带;timestamp0为时间戳,由在网关缓存token的同时生成,用来记录令牌的有效期;
网关缓存信息表中的clientID0、token0、redirectUrl0、timestamp0原始数据都为空,所述网关根据客户端的请求获取客户端名字和IP地址初次生成clientID1;
此时,网关缓存信息表数据集合为:
T1={clientID1,token0,redirectUrl1,timestamp0};
其中clientID1由客户端请求生成,redirectUrl1为授权请求数据的参数字符串的重定向地址,token0、timestamp0依然为原始数据即为空;
网关服务器将授权请求转发到所述授权服务器;
步骤2中所述授权服务器授权状态为未授权,根据浏览器访问服务请求数据进行域名重定向,重定向到授权服务的登录请求,即path改为授权服务下的登录路径/auth/login;
步骤2中所述浏览器链接数据为对授权服务的登录请求的数据即url4:
url4={http,auth_hostname,port4,login2,redirectUrl1,frag4};
其中,http为请求协议方案,auth_hostname为授权服务的域名,login2为授权登录请求数据的路径,redirectUrl1为授权登录请求数据的参数字符串的重定向地址,重定向地址具体为对微服务主页请求数据的url地址url2,port4为授权请求数据的端口且等同于port3,frag4为授权请求数据的网页片段。
5.根据权利要求2所述的Web与微服务的统一认证方法,其特征在于,步骤3中所述浏览器授权登录请求数据即为url4:
url4={http,auth_hostname,port4,login2,redirectUrl1,frag4};
步骤3中所述Nginx服务器转发授权登录请求给所述网关服务器,用Nginx通过监听在客户端端口所有请求,将授权登录请求转发到网关服务器上;
步骤3中经过所述网关服务器转发给所述授权服务器,是将授权登录请求转发到授权服务器;
步骤3中所述授权服务器根据浏览器访问服务请求返回登录页数据,是对登陆页面的文件调用,返回给浏览器显示登陆界面。
6.根据权利要求2所述的Web与微服务的统一认证方法,其特征在于,步骤4中所述浏览器登陆提交请求数据即为:
url5={http,auth_hostname,port5,submit,redirectUrl1&username&password,frag5};
其中,http为请求协议方案,auth_hostname为授权服务的域名,submit为登陆提交请求数据的路径,redirectUrl1为登陆提交请求数据的参数字符串的重定向地址,重定向地址具体为对微服务主页请求数据的url地址url2,username为用户提交的用户名,password为用户提交的密码,port5为登陆提交请求数据的端口且等同于port3,frag5为登陆提交请求数据的网页片段;
步骤4中所述Nginx服务器转发给所述网关服务器,用Nginx通过监听在客户端端口所有请求,将登录提交请求转发到网关服务器;
步骤4中经过所述网关服务器转发给所述授权服务器,是将授权服务的登录提交请求转发到授权服务器;
步骤4中所述授权服务器根据浏览器访问登录提交请求数据进行重定向,是通过登录信息认证方法对用户提交的信息进行认证,若登录认证失败则重定向回登录页重新进行步骤3;若登陆认证成功调用则在授权服务器生成令牌token1,重定向到登陆提交请求的redirectUrl1即微服务系统主页;
步骤4中所述浏览器链接数据为对微服务的主页访问请求的数据即url6:
url6={http,msas_hostname,port6,home1,token1,frag6};
其中,http为请求协议方案,msas_hostname为微服务系统的域名,home1为微服务的主页访问请求数据的路径,token1为请求数据的令牌,port6为微服务的主页访问请求数据的端口且等同于port1,frag5为微服务的主页访问请求数据的网页片段;
同时将令牌token及timestamp记录到网关的缓存信息表中;
此时,网关缓存信息表数据集合为:
T2={clientID1,token1,redirectUrl1,timestamp1};
其中clientID1由客户端初次发起的授权请求生成,redirectUrl1为微服务主页请求的重定向地址,token1为授权通过生成的令牌,timestamp0为存储token1时的时间戳。
7.根据权利要求2所述的Web与微服务的统一认证方法,其特征在于,步骤5中所述浏览器访问微服务系统主页请求数据url6为:
url6={http,msas_hostname,port6,home1,token1,frag6};
步骤5中所述Nginx服务器转发给所述网关服务器,用Nginx通过监听在客户端端口所有请求,将微服务系统主页请求转发到网关服务器上;
步骤5中所述网关服务器鉴权通过后转发给微服务应用服务器,是将微服务系统主页请求生成的clientID2与网关缓存T2中的clientID1进行对比,将微服务系统主页请求数据url6的token1和网关缓存T2中的token1进行比对,如果两者均相同,且网关缓存T2中的timestamp1没过期,则网关鉴权通过,将请求路由到微服务系统后端服务;
步骤5中所述浏览器链接数据是微服务系统后端服务的主页内容,返回给浏览器显示。
8.根据权利要求2所述的Web与微服务的统一认证方法,其特征在于,步骤6中所述浏览器访问原Web系统的登录请求数据url7:
url7={http,mas_hostname,port7,login3,query7,frag7};
其中,http为请求协议方案,mas_hostname为原Web系统的域名,login3为原Web系统登录请求数据的login登录方法的路径,port7为原Web系统登录请求数据的端口,query7为原Web系统登录请求数据的所带参数的字符串,frag7为原Web系统登录请求数据的网页片段;
步骤6中所述根据浏览器访问服务请求数据进行域名重定向具体过程为:
所述浏览器访问原Web系统登录请求数据中的path匹配带有login,所述Nginx服务器将浏览器访问服务请求重定向到授权服务域名下的授权请求,重定向地址url8:
url8={http,mas_hostname,port8,home2,query8,frag8};
其中,http为请求协议方案,msas_hostname为原Web系统的域名,home2为原Web系统主页请求数据的主页的路径,port8为原Web系统主页请求数据的端口且等同于port7,query8为原Web系统主页请求数据的所带参数的字符串,frag8为原Web系统主页请求数据的网页片段;
redirectUrl2=url8;
步骤6中所述浏览器链接数据为对授权服务的授权请求的数据即url9:
url9={http,auth_hostname,port9,authenticate,redirectUrl2,frag9};
其中,http为请求协议方案,auth_hostname为授权服务的域名,authenticate为授权请求数据的路径,redirectUrl2为授权请求数据的参数字符串的重定向地址,重定向地址具体为对原Web系统主页请求数据的url地址url8,port9为授权请求数据的端口且等同于port3,frag9为授权请求数据的网页片段。
9.根据权利要求2所述的Web与微服务的统一认证方法,其特征在于,步骤7中所述浏览器访问服务请求数据为url9:
url9={http,auth_hostname,port9,authenticate,redirectUrl2,frag9};
步骤7中所述Nginx服务器转发给所述网关服务器,用Nginx通过监听在客户端端口所有请求,将授权请求转发到网关服务器上;
步骤7中经过所述网关服务器转发给所述授权服务器,是当授权请求转发到网关服务器时,是授权请求生成的clientID3与网关缓存T2中的clientID1进行比对,如果两者相同,则网关将授权请求转发到授权服务器;
步骤7中所述授权服务器根据浏览器访问服务请求数据进行域名重定向,同一个客户端发起授权请求在第一次发起时已被认证过,授权成功重定向到授权请求的redirectUrl2即原Web系统主页;
步骤7中所述浏览器链接数据为对原Web系统的主页访问请求数据url10:
url10={http,mas_hostname,port10,home2,token1,frag10};
其中,http为请求协议方案,mas_hostname为原Web系统的域名,home2为原Web系统的主页访问请求数据的路径,token1为请求数据的令牌,port10为原Web系统的主页访问请求数据的端口且等同于port7,frag10为原Web系统的主页访问请求数据的网页片段。
10.根据权利要求2所述的Web与微服务的统一认证方法,其特征在于,步骤8中所述浏览器访问原Web系统主页请求数据url11为:
url11=url10={http,mas_hostname,port10,home2,token1,frag10};
步骤8中所述Nginx服务器转发给所述网关服务器,用Nginx通过监听在客户端端口所有请求,将微服务系统主页请求转发到网关服务器上;
步骤8中所述网关服务器鉴权通过后转发给原Web系统应用服务器,是当原Web系统不需要token校验时,网关将原Web系统主页请求生成的clientID3与网关缓存T2中的clientID1进行对比,鉴权通过后将请求路由到原Web系统后端服务;
当原Web系统需要token校验时,网关将原Web系统主页请求生成的clientID3与网关缓存T2中的clientID1进行对比,将原Web系统主页请求数据url11中令牌token1与网关缓存T2中的token1进行对比,如果相同,且网关缓存T2中的timestamp1没过期,则则网关鉴权通过,将请求路由到原Web系统后端服务;
步骤8中所述浏览器链接数据是原Web系统后端服务的主页内容,返回给浏览器显示。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910354234.9A CN110120946B (zh) | 2019-04-29 | 2019-04-29 | 一种Web与微服务的统一认证系统及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910354234.9A CN110120946B (zh) | 2019-04-29 | 2019-04-29 | 一种Web与微服务的统一认证系统及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110120946A true CN110120946A (zh) | 2019-08-13 |
CN110120946B CN110120946B (zh) | 2021-07-20 |
Family
ID=67521659
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910354234.9A Active CN110120946B (zh) | 2019-04-29 | 2019-04-29 | 一种Web与微服务的统一认证系统及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110120946B (zh) |
Cited By (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110519379A (zh) * | 2019-08-29 | 2019-11-29 | 泰康保险集团股份有限公司 | 基于微服务的请求处理方法及设备 |
CN110719285A (zh) * | 2019-10-11 | 2020-01-21 | 永诚恒易网络科技股份有限公司 | 一种基于http协议的token的封装方法 |
CN111200596A (zh) * | 2019-12-25 | 2020-05-26 | 曙光信息产业(北京)有限公司 | 基于Web技术的文件服务系统及其设计方法 |
CN111209578A (zh) * | 2019-12-31 | 2020-05-29 | 网联清算有限公司 | 应用服务访问方法和装置 |
CN111447189A (zh) * | 2020-03-20 | 2020-07-24 | 杭州数梦工场科技有限公司 | 一种数据访问方法、装置、电子设备及存储介质 |
CN111510461A (zh) * | 2020-04-26 | 2020-08-07 | 成都安恒信息技术有限公司 | 一种web应用集中发布权限管理系统及方法 |
CN111917837A (zh) * | 2020-07-13 | 2020-11-10 | 西安即刻易用网络科技有限公司 | 一种Web微应用程序发布系统及其实现方法 |
CN112055024A (zh) * | 2020-09-09 | 2020-12-08 | 深圳市欢太科技有限公司 | 权限校验方法及装置、存储介质和电子设备 |
CN112073443A (zh) * | 2020-11-12 | 2020-12-11 | 飞天诚信科技股份有限公司 | 一种基于浏览器访问认证设备的方法及系统 |
CN112261047A (zh) * | 2020-10-22 | 2021-01-22 | 上海擎感智能科技有限公司 | 网关访问方法、移动终端及计算机存储介质 |
CN112311783A (zh) * | 2020-10-24 | 2021-02-02 | 尺度财金(北京)智能科技有限公司 | 一种认证反向代理方法及系统 |
CN112559010A (zh) * | 2020-12-22 | 2021-03-26 | 福州数据技术研究院有限公司 | 一种基于微服务的多应用系统数据隔离实现方法和系统 |
CN112565059A (zh) * | 2020-12-03 | 2021-03-26 | 城云科技(中国)有限公司 | 基于即时通讯私有云架构的消息传输方法和系统 |
CN112615849A (zh) * | 2020-12-15 | 2021-04-06 | 平安科技(深圳)有限公司 | 微服务访问方法、装置、设备及存储介质 |
CN112783049A (zh) * | 2020-12-31 | 2021-05-11 | 西安邮电大学 | 一种基于微服务的灯联网远程控制系统 |
CN112866761A (zh) * | 2020-12-31 | 2021-05-28 | 武汉兴图新科电子股份有限公司 | 应用于云视频融合平台的分布式系统用户统一认证技术 |
CN113285951A (zh) * | 2021-05-24 | 2021-08-20 | 挂号网(杭州)科技有限公司 | 请求转发方法、装置、设备及存储介质 |
CN113422686A (zh) * | 2021-06-24 | 2021-09-21 | 平安国际智慧城市科技股份有限公司 | 网关层鉴权方法、系统、电子设备及存储介质 |
CN113572779A (zh) * | 2021-07-28 | 2021-10-29 | 重庆允成互联网科技有限公司 | 一种网关鉴权系统、方法、计算机设备及存储介质 |
CN114244548A (zh) * | 2021-04-12 | 2022-03-25 | 无锡江南计算技术研究所 | 一种面向云ide的动态调度和用户认证方法 |
CN115190064A (zh) * | 2022-09-14 | 2022-10-14 | 北京创新乐知网络技术有限公司 | 客户端动态路由的实现方法、装置、系统和存储介质 |
CN115801472A (zh) * | 2023-02-10 | 2023-03-14 | 武汉市幸运坐标信息技术有限公司 | 一种基于鉴权网关的权限管理方法及系统 |
CN116074125A (zh) * | 2023-03-27 | 2023-05-05 | 成都运荔枝科技有限公司 | 一种端到端的密码中台零信任安全网关系统 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170329957A1 (en) * | 2016-05-11 | 2017-11-16 | Oracle International Corporation | Identity cloud service authorization model with dynamic roles and scopes |
CN107770192A (zh) * | 2017-11-13 | 2018-03-06 | 郑州云海信息技术有限公司 | 在多系统中身份认证的方法和计算机可读存储介质 |
CN107872525A (zh) * | 2017-11-09 | 2018-04-03 | 杭州东方通信软件技术有限公司 | 一种微服务调用架构 |
CN108512748A (zh) * | 2018-03-21 | 2018-09-07 | 上海艾融软件股份有限公司 | 一种微服务网关的实现方法 |
CN108901022A (zh) * | 2018-06-28 | 2018-11-27 | 深圳云之家网络有限公司 | 一种微服务统一鉴权方法及网关 |
CN109194604A (zh) * | 2018-06-05 | 2019-01-11 | 平安科技(深圳)有限公司 | 接口自动化方法、系统、计算机设备和存储介质 |
CN109284089A (zh) * | 2018-08-30 | 2019-01-29 | 上海艾融软件股份有限公司 | 一种基于微服务技术的电商平台的实现系统及方法 |
-
2019
- 2019-04-29 CN CN201910354234.9A patent/CN110120946B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170329957A1 (en) * | 2016-05-11 | 2017-11-16 | Oracle International Corporation | Identity cloud service authorization model with dynamic roles and scopes |
CN107872525A (zh) * | 2017-11-09 | 2018-04-03 | 杭州东方通信软件技术有限公司 | 一种微服务调用架构 |
CN107770192A (zh) * | 2017-11-13 | 2018-03-06 | 郑州云海信息技术有限公司 | 在多系统中身份认证的方法和计算机可读存储介质 |
CN108512748A (zh) * | 2018-03-21 | 2018-09-07 | 上海艾融软件股份有限公司 | 一种微服务网关的实现方法 |
CN109194604A (zh) * | 2018-06-05 | 2019-01-11 | 平安科技(深圳)有限公司 | 接口自动化方法、系统、计算机设备和存储介质 |
CN108901022A (zh) * | 2018-06-28 | 2018-11-27 | 深圳云之家网络有限公司 | 一种微服务统一鉴权方法及网关 |
CN109284089A (zh) * | 2018-08-30 | 2019-01-29 | 上海艾融软件股份有限公司 | 一种基于微服务技术的电商平台的实现系统及方法 |
Non-Patent Citations (1)
Title |
---|
陶承: "基于微服务架构的铁路招标采购管理系统研究及设计", 《铁路计算机应用》 * |
Cited By (35)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110519379A (zh) * | 2019-08-29 | 2019-11-29 | 泰康保险集团股份有限公司 | 基于微服务的请求处理方法及设备 |
CN110719285A (zh) * | 2019-10-11 | 2020-01-21 | 永诚恒易网络科技股份有限公司 | 一种基于http协议的token的封装方法 |
CN111200596A (zh) * | 2019-12-25 | 2020-05-26 | 曙光信息产业(北京)有限公司 | 基于Web技术的文件服务系统及其设计方法 |
CN111209578A (zh) * | 2019-12-31 | 2020-05-29 | 网联清算有限公司 | 应用服务访问方法和装置 |
CN111447189A (zh) * | 2020-03-20 | 2020-07-24 | 杭州数梦工场科技有限公司 | 一种数据访问方法、装置、电子设备及存储介质 |
CN111510461B (zh) * | 2020-04-26 | 2022-02-22 | 成都安恒信息技术有限公司 | 一种web应用集中发布权限管理系统及方法 |
CN111510461A (zh) * | 2020-04-26 | 2020-08-07 | 成都安恒信息技术有限公司 | 一种web应用集中发布权限管理系统及方法 |
CN111917837A (zh) * | 2020-07-13 | 2020-11-10 | 西安即刻易用网络科技有限公司 | 一种Web微应用程序发布系统及其实现方法 |
CN112055024A (zh) * | 2020-09-09 | 2020-12-08 | 深圳市欢太科技有限公司 | 权限校验方法及装置、存储介质和电子设备 |
CN112055024B (zh) * | 2020-09-09 | 2023-08-22 | 深圳市欢太科技有限公司 | 权限校验方法及装置、存储介质和电子设备 |
CN112261047B (zh) * | 2020-10-22 | 2023-11-03 | 上海擎感智能科技有限公司 | 网关访问方法、移动终端及计算机存储介质 |
CN112261047A (zh) * | 2020-10-22 | 2021-01-22 | 上海擎感智能科技有限公司 | 网关访问方法、移动终端及计算机存储介质 |
CN112311783A (zh) * | 2020-10-24 | 2021-02-02 | 尺度财金(北京)智能科技有限公司 | 一种认证反向代理方法及系统 |
CN112311783B (zh) * | 2020-10-24 | 2023-02-28 | 尺度财金(北京)智能科技有限公司 | 一种认证反向代理方法及系统 |
CN112073443B (zh) * | 2020-11-12 | 2021-03-16 | 飞天诚信科技股份有限公司 | 一种基于浏览器访问认证设备的方法及系统 |
CN112073443A (zh) * | 2020-11-12 | 2020-12-11 | 飞天诚信科技股份有限公司 | 一种基于浏览器访问认证设备的方法及系统 |
CN112565059B (zh) * | 2020-12-03 | 2022-06-28 | 城云科技(中国)有限公司 | 基于即时通讯私有云架构的消息传输方法和系统 |
CN112565059A (zh) * | 2020-12-03 | 2021-03-26 | 城云科技(中国)有限公司 | 基于即时通讯私有云架构的消息传输方法和系统 |
CN112615849B (zh) * | 2020-12-15 | 2022-04-26 | 平安科技(深圳)有限公司 | 微服务访问方法、装置、设备及存储介质 |
CN112615849A (zh) * | 2020-12-15 | 2021-04-06 | 平安科技(深圳)有限公司 | 微服务访问方法、装置、设备及存储介质 |
CN112559010B (zh) * | 2020-12-22 | 2022-06-21 | 福州数据技术研究院有限公司 | 一种基于微服务的多应用系统数据隔离实现方法和系统 |
CN112559010A (zh) * | 2020-12-22 | 2021-03-26 | 福州数据技术研究院有限公司 | 一种基于微服务的多应用系统数据隔离实现方法和系统 |
CN112866761A (zh) * | 2020-12-31 | 2021-05-28 | 武汉兴图新科电子股份有限公司 | 应用于云视频融合平台的分布式系统用户统一认证技术 |
CN112783049A (zh) * | 2020-12-31 | 2021-05-11 | 西安邮电大学 | 一种基于微服务的灯联网远程控制系统 |
CN114244548A (zh) * | 2021-04-12 | 2022-03-25 | 无锡江南计算技术研究所 | 一种面向云ide的动态调度和用户认证方法 |
CN114244548B (zh) * | 2021-04-12 | 2023-10-13 | 无锡江南计算技术研究所 | 一种面向云ide的动态调度和用户认证方法 |
CN113285951A (zh) * | 2021-05-24 | 2021-08-20 | 挂号网(杭州)科技有限公司 | 请求转发方法、装置、设备及存储介质 |
CN113422686A (zh) * | 2021-06-24 | 2021-09-21 | 平安国际智慧城市科技股份有限公司 | 网关层鉴权方法、系统、电子设备及存储介质 |
CN113572779A (zh) * | 2021-07-28 | 2021-10-29 | 重庆允成互联网科技有限公司 | 一种网关鉴权系统、方法、计算机设备及存储介质 |
CN115190064A (zh) * | 2022-09-14 | 2022-10-14 | 北京创新乐知网络技术有限公司 | 客户端动态路由的实现方法、装置、系统和存储介质 |
CN115190064B (zh) * | 2022-09-14 | 2023-02-10 | 北京创新乐知网络技术有限公司 | 客户端动态路由的实现方法、装置、系统和存储介质 |
CN115801472B (zh) * | 2023-02-10 | 2023-05-09 | 武汉市幸运坐标信息技术有限公司 | 一种基于鉴权网关的权限管理方法及系统 |
CN115801472A (zh) * | 2023-02-10 | 2023-03-14 | 武汉市幸运坐标信息技术有限公司 | 一种基于鉴权网关的权限管理方法及系统 |
CN116074125B (zh) * | 2023-03-27 | 2023-05-30 | 成都运荔枝科技有限公司 | 一种端到端的密码中台零信任安全网关系统 |
CN116074125A (zh) * | 2023-03-27 | 2023-05-05 | 成都运荔枝科技有限公司 | 一种端到端的密码中台零信任安全网关系统 |
Also Published As
Publication number | Publication date |
---|---|
CN110120946B (zh) | 2021-07-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110120946A (zh) | 一种Web与微服务的统一认证系统及方法 | |
JP4782986B2 (ja) | パブリックキー暗号法を用いたインターネット上でのシングルサインオン | |
US8990911B2 (en) | System and method for single sign-on to resources across a network | |
US8006289B2 (en) | Method and system for extending authentication methods | |
US8572712B2 (en) | Device independent authentication system and method | |
US9900305B2 (en) | Internet server access control and monitoring systems | |
US5708780A (en) | Internet server access control and monitoring systems | |
US7356694B2 (en) | Security session authentication system and method | |
US20170006042A1 (en) | Graduated authentication in an identity management system | |
CN109309683A (zh) | 基于token的客户端身份验证的方法及系统 | |
US8484711B1 (en) | System and method for providing access to a software application | |
US20060218629A1 (en) | System and method of tracking single sign-on sessions | |
CN108293053A (zh) | 经由浏览器对客户端应用进行单点登录验证 | |
CN106612246A (zh) | 一种模拟身份的统一认证方法 | |
CN110177120A (zh) | 一种单点登录的方法、装置及计算机可读存储介质 | |
CN103220261B (zh) | 一种开放鉴权应用程序接口代理的方法、装置及系统 | |
JP2015506135A (ja) | 認証コンテンツのコンテンツ消費者のほうへの移動 | |
CN105592180B (zh) | 一种Portal认证的方法和装置 | |
US10601809B2 (en) | System and method for providing a certificate by way of a browser extension | |
CN112468481A (zh) | 一种基于CAS的单页和多页web应用身份集成认证方法 | |
CN110753045A (zh) | 不同域之间单点登录的方法 | |
CN110401641A (zh) | 用户认证方法、装置、电子设备 | |
CN109962892A (zh) | 一种登录应用的认证方法及客户端、服务器 | |
KR20200002680A (ko) | 멀티 도메인 서비스들을 위한 단일 인증 방법 그리고 이를 구현한 시스템 | |
CN105959278B (zh) | 一种调用vpn的方法、设备和系统 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |