CN110995702A - 一种基于分布式微服务的用户认证方法 - Google Patents

一种基于分布式微服务的用户认证方法 Download PDF

Info

Publication number
CN110995702A
CN110995702A CN201911215713.9A CN201911215713A CN110995702A CN 110995702 A CN110995702 A CN 110995702A CN 201911215713 A CN201911215713 A CN 201911215713A CN 110995702 A CN110995702 A CN 110995702A
Authority
CN
China
Prior art keywords
token
jwt
identification information
user identification
user
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
Application number
CN201911215713.9A
Other languages
English (en)
Other versions
CN110995702B (zh
Inventor
夏玮
范渊
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
DBAPPSecurity Co Ltd
Original Assignee
DBAPPSecurity Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by DBAPPSecurity Co Ltd filed Critical DBAPPSecurity Co Ltd
Priority to CN201911215713.9A priority Critical patent/CN110995702B/zh
Publication of CN110995702A publication Critical patent/CN110995702A/zh
Application granted granted Critical
Publication of CN110995702B publication Critical patent/CN110995702B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0807Network architectures or network communication protocols for network security for authentication of entities using tickets, e.g. Kerberos
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0815Network architectures or network communication protocols for network security for authentication of entities providing single-sign-on or federations
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0876Network architectures or network communication protocols for network security for authentication of entities based on the identity of the terminal or configuration, e.g. MAC address, hardware or software configuration or device fingerprint
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • H04L63/108Network architectures or network communication protocols for network security for controlling access to devices or network resources when the policy decisions are valid for a limited amount of time
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1441Countermeasures against malicious traffic
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Power Engineering (AREA)
  • Computer And Data Communications (AREA)

Abstract

本申请公开了一种基于分布式微服务的用户认证方法、装置、服务端及可读存储介质,方案包括:利用API网关获取客户端侧发出的携带有JWT的业务请求;从JWT中提取token和用户标识信息,并判断本地是否记录有二者之间的映射关系;若是,则延迟该token的失效时间并利用API网关响应业务请求,否则拒绝业务请求。可见,该方案中所有业务请求通过API网关控制,使用户认证统一入口。在用户认证过程中,使用token和用户标识信息之间的映射关系记录JWT有效性,且利用token实现对JWT有效期的管理,提升用户认证方案的灵活性。此外,利用JWT本身的无状态的特性,该方法能够减少服务端存储压力并防止CSRF攻击。

Description

一种基于分布式微服务的用户认证方法
技术领域
本申请涉及计算机安全领域,特别涉及一种基于分布式微服务的用户认证方法、装置、服务端及可读存储介质。
背景技术
目前,Internet服务的用户认证方案主要有以下两种:
一种是传统的Session+cookie方式,客户端向服务器发送登录名和登录密码,服务器验证通过后将对应的相关信息保存到当前会话中,并向客户端返回Session,Session信息都会写入到客户端的Cookie中,后面的请求都会从Cookie中读取Session发送给服务器,服务器在收到Session后通过对比保存的数据来确认客户端身份。
这种用户认证方案,存在以下缺点:一、鉴权数据(Cookie中的session)是由浏览器自动携带发送到服务端的,因此容易受到CSRF攻击;二、需要服务端保留Session信息,维护和同步登录的状态,在大量用户突发涌入的场景下,对Session的存储和处理将会消耗大量资源,给服务器造成较大压力;三、移动终端一般不支持cookie,因此无法应用于移动应用场景。
另一种是使用JWT技术,客户端向服务器发送登录认证信息,服务端验证通过会生成带有签名的JSON对象并发生给客户端,客户端将JSON对象持久化保存,并在以后的请求中将JSON对象连同请求内容一起发送给服务器,服务器收到请求后通过JSON对象来确认客户端身份。
这种用户认证方案,利用JWT无状态的特性,可以有效防止CSRF攻击,同时也解决了状态同步的问题。但也存在以下缺点:一、因为JWT是无状态的,服务端无法让token失效;二、JWT一旦发布其有效期即固定,无法续签;三、由于服务端无法使token失效,所以多用户可以使用同一账号登录,无法实现单一登录。
在系统使用分布式微服务架构后,所有服务需要同步认证信息,限制接口请求的访问。上述Cookie+Session认证方式显然不适合分布式应用和多端应用,虽然JWT适用于分布式系统和移动端,但是因为JWT是无状态的,所以它的有效期完全由其本身决定,服务端无法让JWT失效,因此也无法保证用户单一登录,此外TWT无法续签让JWT应用场景不适合长期身份认证。
可见,传统的基于JWT的用户认证方案中,由于JWT无状态的特性,服务端无法使JWT失效也无法完成JWT的续签,如何克服上述缺点,是亟待本领域技术人员解决的问题。
发明内容
本申请的目的是提供一种基于分布式微服务的用户认证方法、装置、服务端及可读存储介质,用以解决传统的基于JWT的用户认证方案中服务端无法使JWT失效也无法完成JWT的续签的问题。其具体方案如下:
第一方面,本申请提供了一种基于分布式微服务的用户认证方法,应用于服务端,包括:
利用API网关获取客户端侧发出的携带有JWT的业务请求;
从所述JWT中提取token和用户标识信息,并判断本地是否记录有所述token和所述用户标识信息之间的映射关系;其中,本地用于记录预先分配的token和用户标识信息之间的映射关系以及各个token的失效时间,还用于在达到失效时间时删除token和用户标识信息之间的映射关系;
若是,则延迟所述token的失效时间以实现所述JWT的续签,并利用所述API网关响应所述业务请求,否则判定所述JWT已经失效并拒绝所述业务请求。
优选的,在所述利用API网关获取客户端侧发出的携带有JWT的业务请求之前,还包括:
利用API网关获取客户端侧发出的登录请求,所述登录请求包括用户标识信息;
为所述用户标识信息分配token,记录所述token的失效时间,并记录所述token与所述用户标识信息之间的映射关系;
生成包括所述用户标识信息和所述token的JWT,并将所述JWT发送至所述客户端。
优选的,所述为所述用户标识信息分配token,包括:
判断本地是否记录有所述用户标识信息与token之间的映射关系;
若是,则清除所述用户标识信息与token之间的映射关系,并为所述用户标识信息分配新的token;
若不是,则为所述用户标识信息分配token。
优选的,在所述将所述JWT发送至所述客户端之后,包括:
所述客户端响应用户操作以生成相应的业务请求,其中所述业务请求的头部包括所述JWT。
优选的,所述生成包括所述用户标识信息和所述token的JWT,并将所述JWT发送至所述客户端,包括:
将所述用户标识信息和所述token作为载荷,生成相应的JWT;将所述JWT放入响应数据包的头部,并将所述响应数据包发送至所述客户端。
优选的,所述延迟所述token的失效时间,包括:
根据预设延迟时长,延迟所述token的失效时间。
优选的,在所述从所述JWT中提取token和用户标识信息之后,还包括:
若所述API网关获取到所述客户端侧发出的登出请求,或检测到本地用户对所述用户标识信息的禁用操作,则删除所述token和所述用户标识信息之间的映射关系。
第二方面,本申请提供了一种基于分布式微服务的用户认证装置,应用于服务端,包括:
业务请求获取模块:利用API网关获取客户端侧发出的携带有JWT的业务请求;
映射关系鉴别模块:用于从所述JWT中提取token和用户标识信息,并判断本地是否记录有所述token和所述用户标识信息之间的映射关系;其中,本地用于记录预先分配的token和用户标识信息之间的映射关系以及各个token的失效时间,还用于在达到失效时间时删除token和用户标识信息之间的映射关系;
用户认证结果模块:用于在判断结果为是时,延迟所述token的失效时间以实现所述JWT的续签,并利用所述API网关响应所述业务请求;在判断结果为否时,判定所述JWT已经失效并拒绝所述业务请求。
第三方面,本申请提供了一种基于分布式微服务的服务端,包括:API网关、用户管理服务、token管理服务;
所述API网关用于获取客户端侧发出的携带有JWT的业务请求;
所述用户管理服务用于从所述JWT中提取token和用户标识信息;
所述token管理服务用于判断本地是否记录有所述token和所述用户标识信息之间的映射关系;其中,所述token管理服务记录有预先分配的token和用户标识信息之间的映射关系以及各个token的失效时间,用于在达到失效时间时删除token和用户标识信息之间的映射关系;
在判断结果为是时,所述token管理服务延迟所述token的失效时间以实现所述JWT的续签,所述API网关响应所述业务请求;
在判断结果为否时,所述token管理服务判定所述JWT已经失效,所述API网关拒绝所述业务请求。
第四方面,本申请提供了一种可读存储介质,所述可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时用于实现如上所述的一种基于分布式微服务的用户认证方法的步骤。
本申请所提供的一种基于分布式微服务的用户认证方法,应用于服务端,包括:利用API网关获取客户端侧发出的携带有JWT的业务请求;从JWT中提取token和用户标识信息,并判断本地是否记录有该token和该用户标识信息之间的映射关系;其中,本地用于记录预先分配的token和用户标识信息之间的映射关系以及各个token的失效时间,还用于在达到失效时间时删除token和用户标识信息之间的映射关系;若判定结果为是,则延迟该token的失效时间以实现JWT的续签,并利用API网关响应业务请求,否则判定JWT已经失效并拒绝业务请求。
可见,该方法中所有业务请求通过API网关控制,使用户认证统一入口。在用户认证过程中,使用token和用户标识信息之间的映射关系记录JWT有效性,在业务请求时通过JWT实现验证,且利用token实现对JWT有效期的管理,达到续签的目的,提升用户认证方案的灵活性。此外,利用JWT本身的无状态的特性,该方法能够减少服务端存储压力并防止CSRF攻击。
此外,本申请还提供了一种基于分布式微服务的用户认证装置、服务端及可读存储介质,其技术效果与上述方法的技术效果相对应,这里不再赘述。
附图说明
为了更清楚的说明本申请实施例或现有技术的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请所提供的一种基于分布式微服务的用户认证方法实施例一的实现流程图;
图2为本申请所提供的一种基于分布式微服务的用户认证方法实施例二的实现流程图;
图3为本申请所提供的一种基于分布式微服务的系统示意图;
图4为本申请所提供的一种基于分布式微服务的用户登录过程示意图;
图5为本申请所提供的一种基于分布式微服务的用户利用JWT进行业务请求的过程示意图;
图6为本申请所提供的一种基于分布式微服务的用户认证装置实施例的功能框图。
具体实施方式
本申请的核心是提供一种基于分布式微服务的用户认证方法、装置、服务端及可读存储介质,使用API网关统一了分布式微服务的认证入口,利用token和用户标识信息之间的映射关系记录JWT的有效性,并通过token实现对JWT有效期的管理。
为了使本技术领域的人员更好地理解本申请方案,下面结合附图和具体实施方式对本申请作进一步的详细说明。显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
下面对本申请提供的一种基于分布式微服务的用户认证方法实施例一进行介绍,参见图1,实施例一应用于服务端,包括:
S101、利用API网关获取客户端侧发出的携带有JWT的业务请求;
S102、从所述JWT中提取token和用户标识信息,并判断本地是否记录有所述token和所述用户标识信息之间的映射关系;若是,则跳转至S103,否则跳转至S104;
其中,本地用于记录预先分配的token和用户标识信息之间的映射关系以及各个token的失效时间,还用于在达到失效时间时删除token和用户标识信息之间的映射关系;
S103、延迟所述token的失效时间以实现所述JWT的续签,并利用所述API网关响应所述业务请求;
S104、判定所述JWT已经失效并拒绝所述业务请求。
本实施例用于实现分布式微服务场景下的用户认证(Authentication),所谓用户认证就是让用户登录,并且在接下来的一段时间内让用户访问网站时可以使用其账户,而不需要再次登录的机制。所谓分布式微服务,是一种架构风格,一般情况下大型复杂软件系统包括多个微服务,系统中的各个微服务可被独立部署,各个微服务之间是松耦合的。每个微服务仅关注于完成一件任务并很好地完成该任务,换言之,每个微服务代表着一个小的业务能力。
如上所述,分布式微服务中包括多个服务,本实施例利用API网关拦截客户端向每个服务发出的请求,并对发出请求的客户端进行认证,从而实现统一认证入口的目的。其中,API网关是系统的唯一入口,所有的客户端都通过统一的网关接入微服务,用于在网关层处理所有的非业务功能。
本实施例主要基于JWT实现用户认证。JWT全称Json Web Token,即跨域认证规范,是一种用于通信双方之间传递安全信息的简洁的、URL安全的表述性声明规范,经常用于跨域身份验证。
具体的,本实施例主要描述了客户端在登录并获取到服务端生成的JWT之后,利用JWT向服务端发出业务请求以及服务端一侧对该业务请求的响应过程。特别的是,本实施例的JWT中包括token和用户标识信息,且服务端一侧记录有该token和该用户标识信息之间的映射关系,还记录有该token的失效时间。作为一种具体的实施方式,可以是在客户端登录时,服务端为客户端生成或分配token,记录该token的失效时间,并记录token和用户标识信息之间的映射关系,同时生成包括该token和用户标识信息的JWT,以发送给客户端。
本实施例中,服务端不仅用于记录token的失效时间,还能够在达到失效时间时,主动删除该token与用户标识信息之间的映射关系,即实现在服务端一侧无效相应的JWT,从而实现对JWT的有效期管理。
基于以上,当API网关拦截到客户端侧发出的业务请求之后,服务端能够从中获取JWT,并从JWT中提取出token和用户标识信息;进而判断本地是否记录有该token和该用户标识信息之间的映射关系,由于服务端具备自动清除失效的token与用户标识信息之间的映射关系的功能,因此,本地记录有该映射关系则表明JWT有效。最终,根据判断结果决定是否响应客户端的业务请求。
本实施例所提供一种基于分布式微服务的用户认证方法,应用于服务端,该方法中所有业务请求通过API网关控制,使用户认证统一入口。在用户认证过程中,使用token和用户标识信息之间的映射关系记录JWT有效性,在业务请求时通过JWT实现验证,且利用token实现对JWT有效期的管理,达到续签的目的,提升用户认证方案的灵活性。此外,利用JWT本身的无状态的特性,该方法能够减少服务端存储压力并防止CSRF攻击。
下面开始详细介绍本申请提供的实施例二,实施例二基于前述实施例一实现,并在实施例一的基础上进行了一定程度上的拓展。
参见图2,实施例二具体包括:
S201、利用API网关获取客户端侧发出的登录请求,所述登录请求包括用户标识信息;
S202、为所述用户标识信息分配token,记录所述token的失效时间,并记录所述token与所述用户标识信息之间的映射关系;
具体的,服务端不仅可以记录token与用户标识信息之间的映射关系,还可以对其进行维护管理,即在达到失效时间时删除失效token和相应的用户标识信息之间的映射关系。
作为一种优选的实施方式,首先判断本地是否记录有所述用户标识信息与token之间的映射关系;若是,则清除所述用户标识信息与token之间的映射关系,并为所述用户标识信息分配新的token;若不是,则直接为所述用户标识信息分配token。也就是说,在检测到用户登录时,首先判断在此之前是否有其他用户利用同一账号登录,若有,则无效为之前用户分配的token,通过这种方式,可以保证用户单一登录,防止重放攻击。
S203、生成包括所述用户标识信息和所述token的JWT,并将所述JWT发送至所述客户端;
JWT主要包括以下三部分:头部、载荷与签名。其中,荷载用于放置一些基本信息,同时还可以放置一些自定义信息。具体的,本实施例将所述用户标识信息和所述token放入到JWT的载荷,生成相应的JWT;然后,将所述JWT放入响应数据包的头部,并将所述响应数据包发送至所述客户端。
值得一提的是,客户端接收到服务端发送的JWT之后,可以将其存储在Cookie或local Storage中,此后,客户端将在与服务端的交互中都会携带JWT。不同的是,如果将JWT存储在Cookie中,就可以自动发送,但是无法实现跨域。因此,本实施例的客户端将JWT放入业务请求的头部,即HTTP请求的Header Authorization字段中。具体的,客户端响应用户操作以生成相应的业务请求,其中所述业务请求的头部包括所述JWT。基于此,本实施例可以实现跨域认证状态同步。
最后,为了减少盗用和窃取,不建议使用HTTP协议来传输代码,因此,作为一种优选的实施方式,本实施例使用加密的HTTPS协议传输JWT。
S204、利用API网关获取客户端侧发出的携带有JWT的业务请求;
S205、从所述JWT中提取token和用户标识信息,并判断本地是否记录有所述token和所述用户标识信息之间的映射关系;若是,则跳转至S206,否则跳转至S207;
S206、延迟所述token的失效时间以实现所述JWT的续签,并利用所述API网关响应所述业务请求;
S207、判定所述JWT已经失效并拒绝所述业务请求。
以上在达到token失效时间时删除该token与用户标识信息之间的映射关系,从而无效相应的JWT是一种被动无效JWT的方式。除此之外,本实施例的服务端还可以主动无效JWT。具体的,若所述API网关获取到所述客户端侧发出的登出请求,或检测到本地用户对所述用户标识信息的禁用操作,则删除所述token和所述用户标识信息之间的映射关系,以实现无效相应的JWT。
可见,本实施例提供的一种基于分布式微服务的用户认证方法,应用于服务端,该方法使用API网关统一了微服务的认证入口,使微服务的认证中心化抽象化,避免多服务多认证;使用JWT+token管理的方式,在用户登录时,使用token和用户标识信息之间的映射关系记录JWT有效性,并清除之前为同一账号分配的token,实现了用户单一登录;在业务请求时,使用JWT进行用户认证,利用JWT本身的特性减少服务端存储压力,无需同步令牌也有效避免CSRF攻击;利用token管理JWT有效期,清除失效的token,避免了JWT无状态造成无法续签、无法实时注销的缺点。
下面根据上述基于分布式微服务的用户认证方法实施例,对实际分布式微服务场景下的用户认证过程进行描述。
如图3所示,分布式微服务包括:API网关、用户管理服务、token管理服务和其他业务模块。
其中,用户管理服务提供“用户认证”内部接口、“登录”开放接口和“登出”开放接口;
token管理服务提供“创建Token”内部接口、“查询验证token”内部接口和“销毁token”内部接口;
API网关提供“用户认证”中间键,统一对系统所有服务调用的API请求做认证,值得一提的是,内部接口和对外开放接口可在API网关通过策略被过滤,无需走认证流程。
用户登录过程如图4所示,包括以下步骤:
步骤41、用户使用登录凭证访问和登录系统;
步骤42、登录请求经过API网关,API网关判断其为开放接口,无需认证,放行进入用户管理服务登录校验逻辑;
步骤43、验证用户的登陆凭证是否有效,无效返回401未认证数据包,有效则向token管理服务申请token;其中,申请Token是一个内部请求,需要过API网关,无需认证;
步骤44、token管理服务生成一个唯一的token,与用户ID建立映射关系并记录token失效时间,最终将token与用户ID发送至用户管理服务;
具体的,生成token前,需要通过用户ID查询是否存在对应的token记录,若存在则需要清除映射记录,这样可以实现用户单一登录,防止重放攻击。作为一种优选的实施方式,将token与用户的映射关系写入分布式缓存中,从而提高查询效率。
步骤45、用户管理服务获取到的token和用户ID放入到JWT的载荷中,得到JWT并将其放入响应数据包头部(Response Headers)中,返回给客户端;
步骤46、客户端接收到JWT后,将JWT缓存用于后续需认证请求。
用户利用JWT进行业务请求的过程如图5所示,包括以下步骤:
步骤51、客户端发送业务请求,在请求头部Request Headers中携带JWT;
步骤52、业务请求过API网关,API网关判定业务请求需要认证,进入认证中间件,请求用户管理服务的“用户管理”认证接口;
步骤53、用户管理服务解析JWT信息,从荷载中获取token和用户ID;若未获取到token,判定为无效令牌,返回401未认证数据包;否则,将token和用户ID发送至token管理服务;
步骤54、token管理服务验证token的有效性并延长失效时间;
具体的,token管理服务通过token和用户ID查询是否有对应记录若有,则判断查询记录是否已过期,即是否达到token的失效时间;若未达到,则刷新记录的失效时间,完成JWT续签。值得一提的是,token管理服务可以定时清理已过期的token记录,减少了验证token时查询数据量,提高步骤54的校验效率。
步骤55、若完成认证,则响应业务请求;否则返回401未认证数据包。
除此之外,token管理服务还用于:若用户常时间没有业务操作,JWT没有续签,token过了有效期则被定时任务清理,完成JWT被动注销;若检测到用户登出操作或者管理员禁用用户操作,则销毁token的内部接口,完成JWT主动注销。
下面对本申请实施例提供的一种基于分布式微服务的用户认证装置进行介绍,下文描述的一种基于分布式微服务的用户认证装置与上文描述的一种基于分布式微服务的用户认证方法可相互对应参照。
该认证装置应用于服务端,如图6所示,包括:
业务请求获取模块601:利用API网关获取客户端侧发出的携带有JWT的业务请求;
映射关系鉴别模块602:用于从所述JWT中提取token和用户标识信息,并判断本地是否记录有所述token和所述用户标识信息之间的映射关系;其中,本地用于记录预先分配的token和用户标识信息之间的映射关系以及各个token的失效时间,还用于在达到失效时间时删除token和用户标识信息之间的映射关系;
用户认证结果模块603:用于在判断结果为是时,延迟所述token的失效时间以实现所述JWT的续签,并利用所述API网关响应所述业务请求;在判断结果为否时,判定所述JWT已经失效并拒绝所述业务请求。
本实施例的基于分布式微服务的用户认证装置用于实现前述的基于分布式微服务的用户认证方法,因此该装置中的具体实施方式可见前文中的基于分布式微服务的用户认证方法的实施例部分,例如,业务请求获取模块601、映射关系鉴别模块602、用户认证结果模块603,分别用于实现上述基于分布式微服务的用户认证方法中步骤S101,S102,S103和S104。所以,其具体实施方式可以参照相应的各个部分实施例的描述,在此不再展开介绍。
另外,由于本实施例的基于分布式微服务的用户认证装置用于实现前述的基于分布式微服务的用户认证方法,因此其作用与上述方法的作用相对应,这里不再赘述。
此外,本申请还提供了一种基于分布式微服务的服务端,包括:API网关、用户管理服务、token管理服务;
所述API网关用于获取客户端侧发出的携带有JWT的业务请求;
所述用户管理服务用于从所述JWT中提取token和用户标识信息;
所述token管理服务用于判断本地是否记录有所述token和所述用户标识信息之间的映射关系;其中,所述token管理服务记录有预先分配的token和用户标识信息之间的映射关系以及各个token的失效时间,用于在达到失效时间时删除token和用户标识信息之间的映射关系;
在判断结果为是时,所述token管理服务延迟所述token的失效时间以实现所述JWT的续签,所述API网关响应所述业务请求;
在判断结果为否时,所述token管理服务判定所述JWT已经失效,所述API网关拒绝所述业务请求。
最后,本申请提供了一种可读存储介质,所述可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时用于实现如上所述的一种基于分布式微服务的用户认证方法的步骤。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
以上对本申请所提供的方案进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。

Claims (10)

1.一种基于分布式微服务的用户认证方法,其特征在于,应用于服务端,包括:
利用API网关获取客户端侧发出的携带有JWT的业务请求;
从所述JWT中提取token和用户标识信息,并判断本地是否记录有所述token和所述用户标识信息之间的映射关系;其中,本地用于记录预先分配的token和用户标识信息之间的映射关系以及各个token的失效时间,还用于在达到失效时间时删除token和用户标识信息之间的映射关系;
若是,则延迟所述token的失效时间以实现所述JWT的续签,并利用所述API网关响应所述业务请求,否则判定所述JWT已经失效并拒绝所述业务请求。
2.如权利要求1所述的方法,其特征在于,在所述利用API网关获取客户端侧发出的携带有JWT的业务请求之前,还包括:
利用API网关获取客户端侧发出的登录请求,所述登录请求包括用户标识信息;
为所述用户标识信息分配token,记录所述token的失效时间,并记录所述token与所述用户标识信息之间的映射关系;
生成包括所述用户标识信息和所述token的JWT,并将所述JWT发送至所述客户端。
3.如权利要求2所述的方法,其特征在于,所述为所述用户标识信息分配token,包括:
判断本地是否记录有所述用户标识信息与token之间的映射关系;
若是,则清除所述用户标识信息与token之间的映射关系,并为所述用户标识信息分配新的token;
若不是,则为所述用户标识信息分配token。
4.如权利要求2所述的方法,其特征在于,在所述将所述JWT发送至所述客户端之后,包括:
所述客户端响应用户操作以生成相应的业务请求,其中所述业务请求的头部包括所述JWT。
5.如权利要求2所述的方法,其特征在于,所述生成包括所述用户标识信息和所述token的JWT,并将所述JWT发送至所述客户端,包括:
将所述用户标识信息和所述token作为载荷,生成相应的JWT;将所述JWT放入响应数据包的头部,并将所述响应数据包发送至所述客户端。
6.如权利要求1所述的方法,其特征在于,所述延迟所述token的失效时间,包括:
根据预设延迟时长,延迟所述token的失效时间。
7.如权利要求1-6任意一项所述的方法,其特征在于,在所述从所述JWT中提取token和用户标识信息之后,还包括:
若所述API网关获取到所述客户端侧发出的登出请求,或检测到本地用户对所述用户标识信息的禁用操作,则删除所述token和所述用户标识信息之间的映射关系。
8.一种基于分布式微服务的用户认证装置,其特征在于,应用于服务端,包括:
业务请求获取模块:利用API网关获取客户端侧发出的携带有JWT的业务请求;
映射关系鉴别模块:用于从所述JWT中提取token和用户标识信息,并判断本地是否记录有所述token和所述用户标识信息之间的映射关系;其中,本地用于记录预先分配的token和用户标识信息之间的映射关系以及各个token的失效时间,还用于在达到失效时间时删除token和用户标识信息之间的映射关系;
用户认证结果模块:用于在判断结果为是时,延迟所述token的失效时间以实现所述JWT的续签,并利用所述API网关响应所述业务请求;在判断结果为否时,判定所述JWT已经失效并拒绝所述业务请求。
9.一种基于分布式微服务的服务端,其特征在于,包括:API网关、用户管理服务、token管理服务;
所述API网关用于获取客户端侧发出的携带有JWT的业务请求;
所述用户管理服务用于从所述JWT中提取token和用户标识信息;
所述token管理服务用于判断本地是否记录有所述token和所述用户标识信息之间的映射关系;其中,所述token管理服务记录有预先分配的token和用户标识信息之间的映射关系以及各个token的失效时间,用于在达到失效时间时删除token和用户标识信息之间的映射关系;
在判断结果为是时,所述token管理服务延迟所述token的失效时间以实现所述JWT的续签,所述API网关响应所述业务请求;
在判断结果为否时,所述token管理服务判定所述JWT已经失效,所述API网关拒绝所述业务请求。
10.一种可读存储介质,其特征在于,所述可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时用于实现如权利要求1-7任意一项所述的一种基于分布式微服务的用户认证方法的步骤。
CN201911215713.9A 2019-12-02 2019-12-02 一种基于分布式微服务的用户认证方法 Active CN110995702B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911215713.9A CN110995702B (zh) 2019-12-02 2019-12-02 一种基于分布式微服务的用户认证方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911215713.9A CN110995702B (zh) 2019-12-02 2019-12-02 一种基于分布式微服务的用户认证方法

Publications (2)

Publication Number Publication Date
CN110995702A true CN110995702A (zh) 2020-04-10
CN110995702B CN110995702B (zh) 2021-09-21

Family

ID=70089375

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911215713.9A Active CN110995702B (zh) 2019-12-02 2019-12-02 一种基于分布式微服务的用户认证方法

Country Status (1)

Country Link
CN (1) CN110995702B (zh)

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111585973A (zh) * 2020-04-16 2020-08-25 北京明略软件系统有限公司 一种管理访问的方法和装置
CN111917767A (zh) * 2020-07-29 2020-11-10 苏州浪潮智能科技有限公司 一种客户端的请求认证方法、装置、设备及存储介质
CN112291221A (zh) * 2020-10-22 2021-01-29 北京神州数字科技有限公司 微服务间服务访问认证方法及系统
CN112333272A (zh) * 2020-11-06 2021-02-05 杭州安恒信息技术股份有限公司 一种微服务数据访问方法、装置、设备及可读存储介质
CN112637155A (zh) * 2020-12-14 2021-04-09 杭州当虹科技股份有限公司 一种基于jwt扩展的用户认证系统
CN112995157A (zh) * 2021-02-07 2021-06-18 中原银行股份有限公司 一种分布式缓存平台客户端接入认证体系
CN113810468A (zh) * 2021-08-13 2021-12-17 济南浪潮数据技术有限公司 K8s架构下网关分发请求的方法、系统、设备和存储介质
CN114338682A (zh) * 2021-12-24 2022-04-12 北京字节跳动网络技术有限公司 流量身份标识传递方法、装置、电子设备及存储介质
CN114465895A (zh) * 2022-03-03 2022-05-10 上海微盟企业发展有限公司 一种基于微服务的请求分发方法、装置、设备及存储介质
CN114666160A (zh) * 2022-04-26 2022-06-24 济南超级计算技术研究院 一种基于jwt的多系统安全统一认证系统及方法
CN114785578A (zh) * 2022-04-13 2022-07-22 福建天晴数码有限公司 一种rpc服务权限管理的方法及系统
CN114900448A (zh) * 2022-05-30 2022-08-12 上海亿通国际股份有限公司 一种微服务网关流量管理方法、装置和电子设备

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101387963A (zh) * 2008-10-31 2009-03-18 金蝶软件(中国)有限公司 一种优化系统集成的方法及系统
US20170295159A1 (en) * 2016-04-06 2017-10-12 Bank Of America Corporation Authenticating Clients Using Tokens
CN109309683A (zh) * 2018-10-30 2019-02-05 泰华智慧产业集团股份有限公司 基于token的客户端身份验证的方法及系统
CN109450865A (zh) * 2018-10-18 2019-03-08 弘成科技发展有限公司 基于jwt验证的api用户认证方法
CN109587251A (zh) * 2018-12-07 2019-04-05 用友网络科技股份有限公司 会话访问方法以及服务器

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101387963A (zh) * 2008-10-31 2009-03-18 金蝶软件(中国)有限公司 一种优化系统集成的方法及系统
US20170295159A1 (en) * 2016-04-06 2017-10-12 Bank Of America Corporation Authenticating Clients Using Tokens
CN109450865A (zh) * 2018-10-18 2019-03-08 弘成科技发展有限公司 基于jwt验证的api用户认证方法
CN109309683A (zh) * 2018-10-30 2019-02-05 泰华智慧产业集团股份有限公司 基于token的客户端身份验证的方法及系统
CN109587251A (zh) * 2018-12-07 2019-04-05 用友网络科技股份有限公司 会话访问方法以及服务器

Cited By (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111585973A (zh) * 2020-04-16 2020-08-25 北京明略软件系统有限公司 一种管理访问的方法和装置
CN111917767A (zh) * 2020-07-29 2020-11-10 苏州浪潮智能科技有限公司 一种客户端的请求认证方法、装置、设备及存储介质
CN111917767B (zh) * 2020-07-29 2022-06-07 苏州浪潮智能科技有限公司 一种客户端的请求认证方法、装置、设备及存储介质
CN112291221A (zh) * 2020-10-22 2021-01-29 北京神州数字科技有限公司 微服务间服务访问认证方法及系统
CN112333272B (zh) * 2020-11-06 2023-05-26 杭州安恒信息技术股份有限公司 一种微服务数据访问方法、装置、设备及可读存储介质
CN112333272A (zh) * 2020-11-06 2021-02-05 杭州安恒信息技术股份有限公司 一种微服务数据访问方法、装置、设备及可读存储介质
CN112637155A (zh) * 2020-12-14 2021-04-09 杭州当虹科技股份有限公司 一种基于jwt扩展的用户认证系统
CN112995157A (zh) * 2021-02-07 2021-06-18 中原银行股份有限公司 一种分布式缓存平台客户端接入认证体系
CN112995157B (zh) * 2021-02-07 2022-05-13 中原银行股份有限公司 一种分布式缓存平台客户端接入认证体系
CN113810468A (zh) * 2021-08-13 2021-12-17 济南浪潮数据技术有限公司 K8s架构下网关分发请求的方法、系统、设备和存储介质
CN114338682A (zh) * 2021-12-24 2022-04-12 北京字节跳动网络技术有限公司 流量身份标识传递方法、装置、电子设备及存储介质
CN114465895A (zh) * 2022-03-03 2022-05-10 上海微盟企业发展有限公司 一种基于微服务的请求分发方法、装置、设备及存储介质
CN114785578A (zh) * 2022-04-13 2022-07-22 福建天晴数码有限公司 一种rpc服务权限管理的方法及系统
CN114785578B (zh) * 2022-04-13 2023-09-29 福建天晴数码有限公司 一种rpc服务权限管理的方法及系统
CN114666160A (zh) * 2022-04-26 2022-06-24 济南超级计算技术研究院 一种基于jwt的多系统安全统一认证系统及方法
CN114900448A (zh) * 2022-05-30 2022-08-12 上海亿通国际股份有限公司 一种微服务网关流量管理方法、装置和电子设备

Also Published As

Publication number Publication date
CN110995702B (zh) 2021-09-21

Similar Documents

Publication Publication Date Title
CN110995702B (zh) 一种基于分布式微服务的用户认证方法
JP7301150B2 (ja) ブロックチェーンネットワークにおけるデータ処理方法、装置、プログラム及びコンピュータ装置
CN110086822B (zh) 面向微服务架构的统一身份认证策略的实现方法及系统
CN109327481B (zh) 一种基于区块链的全网统一在线认证方法及系统
WO2018036314A1 (zh) 一种单点登录认证方法及装置、存储介质
US10326730B2 (en) Verification of server name in a proxy device for connection requests made using domain names
CN102201915B (zh) 一种基于单点登录的终端认证方法和装置
US20190306148A1 (en) Method for oauth service through blockchain network, and terminal and server using the same
US8336087B2 (en) Robust digest authentication method
CN110856174B (zh) 一种接入认证系统、方法、装置、计算机设备和存储介质
WO2022247751A1 (zh) 远程访问应用的方法、系统、装置、设备及存储介质
WO2018205997A1 (zh) 一种用于连接无线接入点的方法与设备
CN109104432B (zh) 一种基于jwt协议的信息传递安全方法
WO2020083288A1 (zh) Dns服务器的安全防御方法及装置、通信设备及存储介质
US9635024B2 (en) Methods for facilitating improved user authentication using persistent data and devices thereof
CN114902612A (zh) 基于边缘网络的帐户保护服务
Mohamed et al. Adaptive security architectural model for protecting identity federation in service oriented computing
CN108076077A (zh) 一种会话控制方法及装置
CN112468442A (zh) 双因子认证方法、装置、计算机设备及存储介质
CN109936515B (zh) 接入配置方法、信息提供方法及装置
CN108667761B (zh) 一种利用安全套接字层会话保护单点登录的方法
EP2568684A1 (en) Method, device, system, client node, peer node and convergent point for preventing node from forging identity
CN110602111A (zh) 一种基于长连接的接口防刷方法及系统
US10931662B1 (en) Methods for ephemeral authentication screening and devices thereof
CN112671708B (zh) 认证方法及系统、portal服务器、安全策略服务器

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