CN114124441B - 一种基于jwt的客户端认证方法及系统 - Google Patents

一种基于jwt的客户端认证方法及系统 Download PDF

Info

Publication number
CN114124441B
CN114124441B CN202111151577.9A CN202111151577A CN114124441B CN 114124441 B CN114124441 B CN 114124441B CN 202111151577 A CN202111151577 A CN 202111151577A CN 114124441 B CN114124441 B CN 114124441B
Authority
CN
China
Prior art keywords
jwt
client
gateway module
request
login
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.)
Active
Application number
CN202111151577.9A
Other languages
English (en)
Other versions
CN114124441A (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.)
Shanghai Ouye Jincheng Information Service Co ltd
Original Assignee
Shanghai Ouye Finance Information Service 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 Shanghai Ouye Finance Information Service Co ltd filed Critical Shanghai Ouye Finance Information Service Co ltd
Priority to CN202111151577.9A priority Critical patent/CN114124441B/zh
Publication of CN114124441A publication Critical patent/CN114124441A/zh
Application granted granted Critical
Publication of CN114124441B publication Critical patent/CN114124441B/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/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • H04L63/0435Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload wherein the sending and receiving network entities apply symmetric encryption, i.e. same key used for encryption and decryption
    • 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/083Network architectures or network communication protocols for network security for authentication of entities using passwords
    • 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

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

本发明涉及一种基于JWT的客户端认证方法及系统,该方法包括:用户权限中心模块接收到客户端发起的登录请求后将生成的JWT发送到安全网关模块;安全网关模块对JWT、指纹ID、客户端信息进行加密,将加密后的信息URJWT发送到客户端;当客户端向安全网关模块进行业务请求时,请求头中携带URJWT和指纹ID;安全网关模块对接收到的业务请求的请求头中携带的URJWT进行解密,当解密获得的指纹ID和客户端信息与业务请求中指纹ID和客户端信息相同时,将解密后JWT发送到应用网关模块;当解密获得的JWT与Redis中存储的JWT相同时,应用网关模块将业务请求发送到业务系统。本发明提高了客户端认证的安全性。

Description

一种基于JWT的客户端认证方法及系统
技术领域
本发明涉及互联网安全通信技术领域,特别是涉及一种基于JWT的客户端认证方法及系统。
背景技术
目前互联网比较主流的方式是用JWT来做无状态的服务沟通,通过该JWT可以传输用户信息,并且通过对称加密来保证JWT本身无法被篡改,由于JWT本体是由Base64算法编码的,有不可读性,但对于计算机系统来说是透明的,因为编码解码过程很简单,可以直接获取明文内容,故会导致一些信息会泄露到客户端。
发明内容
本发明的目的是提供一种基于JWT的客户端认证方法及系统,提高了客户端认证的安全性。
为实现上述目的,本发明提供了如下方案:
一种基于JWT的客户端认证方法,包括:
通过客户端发起的登录请求依次通过安全网关模块和应用网关模块后发送到用户权限中心模块;所述登录请求包括提交表单和客户端信息;所述提交表单的请求头中包括登录指纹ID;
通过所述用户权限中心模块验证所述提交表单,验证通过后,通过JWT库生成JWT,并将生成的所述JWT存储于Redis中,通过所述用户权限中心模块将生成的所述JWT通过所述应用网关模块发送到所述安全网关模块;
所述安全网关模块接收到所述JWT后,对所述JWT、所述登录指纹ID、所述客户端信息进行加密,将加密后的信息定义为URJWT,将所述URJWT发送到所述客户端;
所述客户端接收到所述URJWT后,将所述URJWT保存到会话中,当通过所述客户端向所述安全网关模块进行业务请求时,所述业务请求的请求头中携带所述URJWT和业务请求指纹ID;
当所述安全网关模块接收到所述业务请求时,对所述业务请求的请求头中携带的所述URJWT进行解密,将解密获得的登录指纹ID与所述业务请求指纹ID进行比对,将解密获得的客户端信息与所述业务请求中的客户端信息进行比对,当解密获得的登录指纹ID与所述业务请求指纹ID相同且解密获得的客户端信息与所述业务请求中的客户端信息相同时,将解密获得的JWT发送到应用网关模块;
所述应用网关模块接收到解密获得的JWT后,将解密获得的JWT与Redis中存储的JWT进行比较,当解密获得的JWT与Redis中存储的JWT相同时,将所述业务请求发送到业务系统,当前所述业务请求的请求头中携带解密获得的JWT;
当所述业务系统接收到所述业务请求时进行业务行为,并将业务行为的结果发送到所述客户端。
可选地,所述客户端信息包括客户端IP和客户端代理信息。
可选地,所述通过客户端发起的登录请求依次通过安全网关模块和应用网关模块后发送到用户权限中心模块,具体包括:
通过客户端将用户发起的登录请求提交到安全网关模块;所述登录请求包括URL地址;
通过所述安全网关模块将所述登录请求发送到应用网关模块;
通过所述应用网关模块对所述登录请求中的所述URL地址进行验证,若所述登录请求中的所述URL地址与所述应用网关模块配置的地址一致,则通过应用网关模块的地址验证;
通过所述应用网关模块将通过地址验证的所述登录请求中的提交表单发送到用户权限中心模块。
可选地,所述通过所述用户权限中心模块验证所述提交表单,具体包括:
通过所述用户权限中心模块验证所述提交表单中的用户名和用户密码与数据库中存储的用户名和用户密码是否一致,若一致,则通过验证。
可选地,所述登录指纹ID通过FingerPrintJS库生成。
可选地,所述安全网关模块接收到所述JWT后,对所述JWT、所述登录指纹ID、所述客户端信息进行加密,将加密后的信息定义为URJWT,将所述URJWT发送到所述客户端,具体包括:
所述安全网关模块接收到所述JWT后,对所述JWT、所述登录指纹ID、所述客户端信息进行DES算法加密,将加密后的信息定义为URJWT,将所述URJWT发送到所述客户端。
可选地,所述安全网关模块接收到所述JWT后,对所述JWT、所述登录指纹ID、所述客户端信息进行DES算法加密,将加密后的信息定义为URJWT,将所述URJWT发送到所述客户端,具体包括:
所述安全网关模块接收到所述JWT后,对所述JWT、所述登录指纹ID、所述客户端信息进行加盐及DES算法加密,将加盐加密后的信息定义为URJWT,将所述URJWT发送到所述客户端。
本发明还公开了一种基于JWT的客户端认证系统,包括客户端、安全网关模块、应用网关模块、用户权限中心模块和业务系统;
所述客户端用于发送登录请求和业务请求;所述客户端还用于在接收到所述URJWT后,将所述URJWT保存到会话中,当向所述安全网关模块进行业务请求时,所述业务请求的请求头中携带所述URJWT和业务请求指纹ID;所述登录请求包括提交表单和客户端信息;所述提交表单的请求头中包括登录指纹ID;
所述安全网关模块用于接收所述登录请求并将所述登录请求发送到所述应用网关模块;所述安全网关模块还用于接收所述应用网关模块发送的JWT,对所述JWT、所述登录指纹ID、所述客户端信息进行加密,将加密后的信息定义为URJWT,将所述URJWT发送到所述客户端;所述安全网关模块还用于在接收到所述业务请求时,对所述业务请求的请求头中携带的所述URJWT进行解密,将解密获得的登录指纹ID与所述业务请求指纹ID进行比对,将解密获得的客户端信息与所述业务请求中的客户端信息进行比对,当解密获得的登录指纹ID与所述业务请求指纹ID相同且解密获得的客户端信息与所述业务请求中的客户端信息相同时,将解密获得的JWT发送到应用网关模块;
所述应用网关模块用于接收所述登录请求并发送到所述用户权限中心模块;所述应用网关模块还用于接收所述用户权限中心模块发送的所述JWT并将所述JWT发送到所述安全网关模块;所述应用网关模块还用于在接收到解密获得的JWT后,将解密获得的JWT与Redis中存储的JWT进行比较,当解密获得的JWT与Redis中存储的JWT相同时,将所述业务请求发送到业务系统,当前所述业务请求的请求头中携带解密获得的JWT;
所述用户权限中心模块用于验证所述提交表单,验证通过后,通过JWT库生成JWT,并将生成的所述JWT存储于Redis中,将生成的所述JWT发送到所述应用网关模块;
所述业务系统用于接收到所述业务请求时进行业务行为,并将业务行为的结果发送到所述客户端。
可选地,所述客户端信息包括客户端IP和客户端代理信息。
可选地,所述登录指纹ID通过FingerPrintJS库生成。
根据本发明提供的具体实施例,本发明公开了以下技术效果:
本发明通过安全网关模块对JWT及客户端信息进行组合加解密,增强了客户端的安全性,而且本发明对JWT及客户端信息进行组合加解密的改进,不会影响业务系统的原代码,另外,客户端提交的登录请求中包括指纹ID,指纹ID代表着客户端的唯一性,且每次同一硬件系统生成是一样的值,解决了跨域和重复值的问题。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明一种基于JWT的客户端认证方法流程示意图;
图2为本发明一种基于JWT的客户端认证系统结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明的目的是提供一种基于JWT的客户端认证方法及系统,提高了客户端认证的安全性。
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
图1为本发明一种基于JWT的客户端认证方法流程示意图,如图1所示一种基于JWT的客户端认证方法,包括:
步骤101:通过客户端发起的登录请求依次通过安全网关模块和应用网关模块后发送到用户权限中心模块;登录请求包括提交表单和客户端信息;提交表单的请求头中包括登录指纹ID。
客户端信息包括客户端IP和客户端代理信息(UserAgent,UA),客户端代理信息包含浏览器版本、操作系统版本、浏览器引擎、浏览器插件、语言等信息,每个浏览器可能有略微不同。
登录指纹ID通过FingerPrintJS库生成。
其中,步骤101具体包括:
客户端接收用户发起的登录请求,登录请求中包括URL地址、用户填写的用户名密码信息,并将用户名密码信息作为提交表单,客户端将FingerPrintJS库生成的指纹ID放在登录请求的请求头中。
通过客户端将用户发起的登录请求提交到安全网关模块。
通过安全网关模块将登录请求发送到应用网关模块。
通过应用网关模块对登录请求中的URL地址进行验证,若登录请求中的URL地址与应用网关模块配置的地址一致,则通过应用网关模块的地址验证。
通过应用网关模块将通过地址验证的登录请求中的提交表单发送到用户权限中心模块。
步骤102:通过用户权限中心模块验证提交表单,验证通过后,通过JWT库生成JWT,并将生成的JWT存储于Redis中,通过用户权限中心模块将生成的JWT通过应用网关模块发送到安全网关模块。
其中JWT库为JWT官方java库。
存储于Redis中的JWT会在预设存储时间之后被删除,以保证JWT的有效性。
其中,步骤102中通过用户权限中心模块验证提交表单,具体包括:
通过用户权限中心模块验证提交表单中的用户名和用户密码与数据库中存储的用户名和用户密码是否一致,若一致,则通过验证。
步骤103:安全网关模块接收到JWT后,对JWT、登录指纹ID、客户端信息进行加密,将加密后的信息定义为URJWT,将URJWT替代JWT发送到客户端。
其中,步骤103具体包括:
安全网关模块接收到JWT后,对JWT、登录指纹ID、客户端信息进行DES算法加密,将加密后的信息定义为URJWT,将URJWT发送到客户端。
安全网关模块接收到JWT后,对JWT、登录指纹ID、客户端信息进行DES算法加密,将加密后的信息定义为URJWT,将URJWT发送到客户端,具体包括:
安全网关模块接收到JWT后,对JWT、登录指纹ID、客户端信息进行加盐及DES算法加密,将加盐加密后的信息定义为URJWT,将URJWT发送到客户端。
步骤104:客户端接收到URJWT后,将URJWT保存到会话中,当通过客户端向安全网关模块进行业务请求时,业务请求的请求头中携带URJWT和业务请求指纹ID。
步骤105:当安全网关模块接收到业务请求时,对业务请求的请求头中携带的URJWT进行DES算法解密,将解密获得的登录指纹ID与业务请求指纹ID进行比对,将解密获得的客户端信息与业务请求中的客户端信息进行比对,当解密获得的登录指纹ID与业务请求指纹ID相同且解密获得的客户端信息与业务请求中的客户端信息相同时,将解密获得的JWT发送到应用网关模块。
将解密获得的客户端信息与业务请求中的客户端信息进行比对,具体包括将解密获得的客户端IP与业务请求中的客户端IP进行比对、将解密获得的客户端代理信息与业务请求中的客户端代理信息进行比对。
步骤106:应用网关模块接收到解密获得的JWT后,将解密获得的JWT与Redis中存储的JWT进行比较,当解密获得的JWT与Redis中存储的JWT相同时,将业务请求发送到业务系统,当前业务请求的请求头中携带解密获得的JWT。
步骤107:当业务系统接收到业务请求时进行业务行为,并将业务行为的结果发送到客户端。
安全网关模块是所有请求经过的头一道服务,主要处理JWT的加密以及解密,用户权限中心模块返回的JWT会经过加密后的传输给客户端,而客户端的请求中的JWT会在安全网关模块解密后再传输给下游。
应用网关模块主要作用是转发和负载均衡功能,通过访问的请求URL来判断寻找哪个服务,服务可以在线用控制台配置,配置成功后的服务,可以通过应用网关模块转发,并且得到相应的返回结果。
用户权限中心模块负责颁发和验证JWT有效性的服务,该服务仅能通过应用网关转发来访问,当登录请求验证成功后,会将JWT设置有效时间存入Redis并同时返回给应用网关。后续的业务请求也会通过接口来判断JWT的有效性。
加密token在系统中全称为Unreadable JWT(简称URJWT),前提是需要通过安全网关模块进行转换,用户在浏览器中进行登录操作之后,会附带用户密码信息和指纹ID(登录指纹ID),指纹ID由客户端的FingerPrintJS库来生成,传输到用户中心之后,验证通过后返回的JWT会先经过安全网关模块,安全网关将原先的JWT和指纹ID一起通过加盐加密,盐值会通过服务端动态更新,加密之后是一段不可读且不可在客户端解密的URJWT,传回给客户端保存。
在业务请求中,请求头中会附带URJWT以及指纹ID(业务请求指纹ID),先经过安全网关模块,安全网关模块检测到URJWT,会对此进行解密操作,解密后会得到JWT和登录前的指纹ID,该指纹ID会和当前请求的指纹ID进行比对,而JWT会与用户权限中心模块中的Redis去查询比对,全部校验通过之后才能正常访问业务系统,而此时业务系统的请求头中已经是正常的JWT,可以读取到用户信息。
本发明采用了安全网关模块再次加密解密JWT的方式,对JWT加了一层不可读的保护,使得客户端即使能看到Token,也无法直接读取内容,但对服务端系统来说可以靠安全网关模块解密完成,所有下游系统都能获取到解密后的JWT正常使用。
在此基础上,正常市面上的JWT如果在客户端直接明文给予其他客户端,其实是可以正常使用的,但是本发明不希望这样的情况发生,所以JWT要附带一些用户客户端信息,SESSION、UA、IP等操作方式都有一定的不足,比如SESSION不支持跨域,两个域名下生成出来的SESSION会不通,UA太容易重复,IP就更容易出问题了,一个公司的内网有正向代理,那对于服务端系统来说IP都会是同一个。
所以在上述方式都尝试过之后,了解到了FingerPrintJS开源工具库,它有丰富的指纹资源列表,可以保证生成的ID代表着客户端的唯一性,且每次同一硬件系统生成是一样的值,这样就能解决跨域和重复值的问题。
图2为本发明一种基于JWT的客户端认证系统结构示意图。如图2所示一种基于JWT的客户端认证系统,包括客户端201、安全网关模块202、应用网关模块203、用户权限中心模块204和业务系统205。图2中公司业务系统即为业务系统205。
客户端201用于发送登录请求和业务请求;客户端201还用于在接收到URJWT后,将URJWT保存到会话中,当向安全网关模块202进行业务请求时,业务请求的请求头中携带URJWT和业务请求指纹ID;登录请求包括提交表单和客户端信息;提交表单的请求头中包括登录指纹ID。
安全网关模块202用于接收登录请求并将登录请求发送到应用网关模块203;安全网关模块202还用于接收应用网关模块203发送的JWT,对JWT、登录指纹ID、客户端信息进行加密,将加密后的信息定义为URJWT,将URJWT发送到客户端201;安全网关模块202还用于在接收到业务请求时,对业务请求的请求头中携带的URJWT进行解密,将解密获得的登录指纹ID与业务请求指纹ID进行比对,将解密获得的客户端信息与业务请求中的客户端信息进行比对,当解密获得的登录指纹ID与业务请求指纹ID相同且解密获得的客户端信息与业务请求中的客户端信息相同时,将解密获得的JWT发送到应用网关模块203。
应用网关模块203用于接收登录请求并发送到用户权限中心模块204;应用网关模块203还用于接收用户权限中心模块204发送的JWT并将JWT发送到安全网关模块202;应用网关模块203还用于在接收到解密获得的JWT后,将解密获得的JWT与Redis中存储的JWT进行比较,当解密获得的JWT与Redis中存储的JWT相同时,将业务请求发送到业务系统205,当前业务请求的请求头中携带解密获得的JWT。
用户权限中心模块204用于验证提交表单,验证通过后,通过JWT库生成JWT,并将生成的JWT存储于Redis中,将生成的JWT发送到应用网关模块203。
业务系统205用于接收到业务请求时进行业务行为,并将业务行为的结果发送到客户端201。
客户端信息包括客户端IP和客户端代理信息。
登录指纹ID通过FingerPrintJS库生成。
如图2所示,依赖于基于JWT的客户端认证系统的基于JWT的客户端认证方法包括:
Step1:客户端接收用户发起的登录请求,登录请求中包含URL地址,接收用户填写的用户名密码信息,并将信息作为提交表单,客户端将FingerPrintJS库生成的指纹ID放在表单请求头中,一起提交给安全网关模块。
Step2:安全网关模块接收到登录请求之后,放行给应用网关模块,应用网关模块判断URL地址是否与配置的地址一致,如果一致则将表单传输给用户权限中心模块,然后用户权限中心模块验证请求表单中所提交的用户名密码信息是否与数据库中的匹配。
Step3:用户权限中心模块验证用户密码信息成功后会通过JWT官方java库生成JWT,存于Redis中,返回登录成功的跳转地址和JWT给安全网关模块。
Step4:安全网关模块收到用户权限中心模块返回的JWT之后,会组合JWT、指纹ID、客户端IP、UA(客户端代理信息)一起进行DES算法加密操作,加密后的URJWT会替代JWT返回给客户端。
Step5:客户端收到安全网关模块返回的URJWT会保存在会话中,在后续的业务请求头上会携带URJWT和指纹ID。
Step6:安全网关模块在接收业务请求时,会对携带的URJWT进行DES算法解密操作,解密之后会得到一个原指纹ID、原客户端IP、原UA,来对比此次请求携带的指纹ID、客户端IP、UA如果相同才会放行,将解密之后的标准JWT转发给应用网关模块。
Step7:应用网关模块接收到请求之后,对请求头中的JWT与Redis中的JWT进行比较,判断其有效性,有效就会转发给目标业务系统。
Step8:业务系统收到请求之后进行业务行为,最终返回结果给客户端。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的系统而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处。综上所述,本说明书内容不应理解为对本发明的限制。

Claims (9)

1.一种基于JWT的客户端认证方法,其特征在于,包括:
通过客户端发起的登录请求依次通过安全网关模块和应用网关模块后发送到用户权限中心模块;所述登录请求包括提交表单和客户端信息;所述提交表单的请求头中包括登录指纹ID;
通过所述用户权限中心模块验证所述提交表单,验证通过后,通过JWT库生成JWT,并将生成的所述JWT存储于Redis中,通过所述用户权限中心模块将生成的所述JWT通过所述应用网关模块发送到所述安全网关模块;
所述安全网关模块接收到所述JWT后,对所述JWT、所述登录指纹ID、所述客户端信息进行加密,将加密后的信息定义为URJWT,将所述URJWT发送到所述客户端;
所述客户端接收到所述URJWT后,将所述URJWT保存到会话中,当通过所述客户端向所述安全网关模块进行业务请求时,所述业务请求的请求头中携带所述URJWT和业务请求指纹ID;
当所述安全网关模块接收到所述业务请求时,对所述业务请求的请求头中携带的所述URJWT进行解密,将解密获得的登录指纹ID与所述业务请求指纹ID进行比对,将解密获得的客户端信息与所述业务请求中的客户端信息进行比对,当解密获得的登录指纹ID与所述业务请求指纹ID相同且解密获得的客户端信息与所述业务请求中的客户端信息相同时,将解密获得的JWT发送到应用网关模块;
所述应用网关模块接收到解密获得的JWT后,将解密获得的JWT与Redis中存储的JWT进行比较,当解密获得的JWT与Redis中存储的JWT相同时,将所述业务请求发送到业务系统,当前所述业务请求的请求头中携带解密获得的JWT;
当所述业务系统接收到所述业务请求时进行业务行为,并将业务行为的结果发送到所述客户端;
所述通过客户端发起的登录请求依次通过安全网关模块和应用网关模块后发送到用户权限中心模块,具体包括:
通过客户端将用户发起的登录请求提交到安全网关模块;所述登录请求包括URL地址;
通过所述安全网关模块将所述登录请求发送到应用网关模块;
通过所述应用网关模块对所述登录请求中的所述URL地址进行验证,若所述登录请求中的所述URL地址与所述应用网关模块配置的地址一致,则通过应用网关模块的地址验证;
通过所述应用网关模块将通过地址验证的所述登录请求中的提交表单发送到用户权限中心模块。
2.根据权利要求1所述的基于JWT的客户端认证方法,其特征在于,所述客户端信息包括客户端IP和客户端代理信息。
3.根据权利要求1所述的基于JWT的客户端认证方法,其特征在于,所述通过所述用户权限中心模块验证所述提交表单,具体包括:
通过所述用户权限中心模块验证所述提交表单中的用户名和用户密码与数据库中存储的用户名和用户密码是否一致,若一致,则通过验证。
4.根据权利要求1所述的基于JWT的客户端认证方法,其特征在于,所述登录指纹ID通过FingerPrintJS库生成。
5.根据权利要求1所述的基于JWT的客户端认证方法,其特征在于,所述安全网关模块接收到所述JWT后,对所述JWT、所述登录指纹ID、所述客户端信息进行加密,将加密后的信息定义为URJWT,将所述URJWT发送到所述客户端,具体包括:
所述安全网关模块接收到所述JWT后,对所述JWT、所述登录指纹ID、所述客户端信息进行DES算法加密,将加密后的信息定义为URJWT,将所述URJWT发送到所述客户端。
6.根据权利要求5所述的基于JWT的客户端认证方法,其特征在于,所述安全网关模块接收到所述JWT后,对所述JWT、所述登录指纹ID、所述客户端信息进行DES算法加密,将加密后的信息定义为URJWT,将所述URJWT发送到所述客户端,具体包括:
所述安全网关模块接收到所述JWT后,对所述JWT、所述登录指纹ID、所述客户端信息进行加盐及DES算法加密,将加盐加密后的信息定义为URJWT,将所述URJWT发送到所述客户端。
7.一种基于JWT的客户端认证系统,其特征在于,包括客户端、安全网关模块、应用网关模块、用户权限中心模块和业务系统;
所述客户端用于发送登录请求和业务请求;所述登录请求包括URL地址;所述客户端还用于在接收到URJWT后,将所述URJWT保存到会话中,当向所述安全网关模块进行业务请求时,所述业务请求的请求头中携带所述URJWT和业务请求指纹ID;所述登录请求包括提交表单和客户端信息;所述提交表单的请求头中包括登录指纹ID;
所述安全网关模块用于接收所述登录请求并将所述登录请求发送到所述应用网关模块;所述安全网关模块还用于接收所述应用网关模块发送的JWT,对所述JWT、所述登录指纹ID、所述客户端信息进行加密,将加密后的信息定义为URJWT,将所述URJWT发送到所述客户端;所述安全网关模块还用于在接收到所述业务请求时,对所述业务请求的请求头中携带的所述URJWT进行解密,将解密获得的登录指纹ID与所述业务请求指纹ID进行比对,将解密获得的客户端信息与所述业务请求中的客户端信息进行比对,当解密获得的登录指纹ID与所述业务请求指纹ID相同且解密获得的客户端信息与所述业务请求中的客户端信息相同时,将解密获得的JWT发送到应用网关模块;
所述应用网关模块用于接收所述登录请求并发送到所述用户权限中心模块;所述应用网关模块还用于接收所述用户权限中心模块发送的所述JWT并将所述JWT发送到所述安全网关模块;所述应用网关模块还用于在接收到解密获得的JWT后,将解密获得的JWT与Redis中存储的JWT进行比较,当解密获得的JWT与Redis中存储的JWT相同时,将所述业务请求发送到业务系统,当前所述业务请求的请求头中携带解密获得的JWT;
所述用户权限中心模块用于验证所述提交表单,验证通过后,通过JWT库生成JWT,并将生成的所述JWT存储于Redis中,将生成的所述JWT发送到所述应用网关模块;
所述业务系统用于接收到所述业务请求时进行业务行为,并将业务行为的结果发送到所述客户端;
所述应用网关模块用于接收所述登录请求并发送到所述用户权限中心模块,具体包括:
通过所述应用网关模块对所述登录请求中的所述URL地址进行验证,若所述登录请求中的所述URL地址与所述应用网关模块配置的地址一致,则通过应用网关模块的地址验证;
通过所述应用网关模块将通过地址验证的所述登录请求中的提交表单发送到用户权限中心模块。
8.根据权利要求7所述的基于JWT的客户端认证系统,其特征在于,所述客户端信息包括客户端IP和客户端代理信息。
9.根据权利要求7所述的基于JWT的客户端认证系统,其特征在于,所述登录指纹ID通过FingerPrintJS库生成。
CN202111151577.9A 2021-09-29 2021-09-29 一种基于jwt的客户端认证方法及系统 Active CN114124441B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111151577.9A CN114124441B (zh) 2021-09-29 2021-09-29 一种基于jwt的客户端认证方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111151577.9A CN114124441B (zh) 2021-09-29 2021-09-29 一种基于jwt的客户端认证方法及系统

Publications (2)

Publication Number Publication Date
CN114124441A CN114124441A (zh) 2022-03-01
CN114124441B true CN114124441B (zh) 2022-11-15

Family

ID=80441679

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111151577.9A Active CN114124441B (zh) 2021-09-29 2021-09-29 一种基于jwt的客户端认证方法及系统

Country Status (1)

Country Link
CN (1) CN114124441B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114826612B (zh) * 2022-04-20 2024-01-30 微位(深圳)网络科技有限公司 数据交互方法、装置、设备及存储介质
CN114884736B (zh) * 2022-05-11 2024-04-09 山东鲁软数字科技有限公司 一种防爆破攻击的安全防护方法及装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107426181A (zh) * 2017-06-20 2017-12-01 竞技世界(北京)网络技术有限公司 恶意Web访问请求的拦截方法及装置
CN108965230A (zh) * 2018-05-09 2018-12-07 深圳市中信网安认证有限公司 一种安全通信方法、系统及终端设备
CN111431838A (zh) * 2019-01-09 2020-07-17 北京神州泰岳软件股份有限公司 一种集群中单点登录和注销的方法、装置及api网关
CN112600674A (zh) * 2020-12-04 2021-04-02 中国农业银行股份有限公司深圳市分行 一种前后端分离系统的用户安全认证方法、装置及存储介质

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10999272B2 (en) * 2018-03-30 2021-05-04 Lendingclub Corporation Authenticating and authorizing users with JWT and tokenization

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107426181A (zh) * 2017-06-20 2017-12-01 竞技世界(北京)网络技术有限公司 恶意Web访问请求的拦截方法及装置
CN108965230A (zh) * 2018-05-09 2018-12-07 深圳市中信网安认证有限公司 一种安全通信方法、系统及终端设备
CN111431838A (zh) * 2019-01-09 2020-07-17 北京神州泰岳软件股份有限公司 一种集群中单点登录和注销的方法、装置及api网关
CN112600674A (zh) * 2020-12-04 2021-04-02 中国农业银行股份有限公司深圳市分行 一种前后端分离系统的用户安全认证方法、装置及存储介质

Also Published As

Publication number Publication date
CN114124441A (zh) 2022-03-01

Similar Documents

Publication Publication Date Title
US8185942B2 (en) Client-server opaque token passing apparatus and method
US9800402B2 (en) Secure and delegated distribution of private keys via domain name service
CN107077541B (zh) 应用于动态自适应流媒体的部分url签名系统和方法
Franks et al. HTTP authentication: Basic and digest access authentication
KR101133829B1 (ko) 인증서 레지스트리, 인증서 레지스트리 시스템 및 방법
CN100581103C (zh) 安全地处理被用于基于web的资源访问的客户证书
Franks et al. RFC2617: HTTP authentication: basic and digest access authentication
KR100979576B1 (ko) 새로운 패스워드를 실현하기 위한 방법 및 컴퓨터 판독가능 매체
EP3149887B1 (en) Method and system for creating a certificate to authenticate a user identity
US8689339B2 (en) Method, system and apparatus for game data transmission
CN106685973B (zh) 记住登录信息的方法及装置、登录控制方法及装置
US7822974B2 (en) Implicit trust of authorship certification
US20130312067A1 (en) Device, method, and recording medium
CN114124441B (zh) 一种基于jwt的客户端认证方法及系统
US20030208681A1 (en) Enforcing file authorization access
CA2554847C (en) System and method for secure electronic data delivery
CN113067699B (zh) 基于量子密钥的数据共享方法、装置和计算机设备
CN106911684B (zh) 一种鉴权方法及系统
KR20070078051A (ko) Imx 세션 제어 및 인증
CN111770088A (zh) 数据鉴权方法、装置、电子设备和计算机可读存储介质
WO2013009290A1 (en) Policy based data management
CN105025019A (zh) 一种数据安全分享方法
CN107517194B (zh) 一种内容分发网络的回源认证方法和装置
CN110661817A (zh) 资源访问方法、装置及服务网关
CN102404337A (zh) 数据加密方法和装置

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
CP03 Change of name, title or address
CP03 Change of name, title or address

Address after: 200940 room 3005, No. 9, Lane 803, Shuangcheng Road, Baoshan District, Shanghai

Patentee after: Shanghai Ouye Jincheng Information Service Co.,Ltd.

Address before: Room 3005, No.9, Lane 803, Shuangcheng Road, Baoshan District, Shanghai 201900

Patentee before: SHANGHAI OUYE FINANCE INFORMATION SERVICE Co.,Ltd.