CN110933092A - 一种基于jwt的单点登录实现方法及装置 - Google Patents

一种基于jwt的单点登录实现方法及装置 Download PDF

Info

Publication number
CN110933092A
CN110933092A CN201911223781.XA CN201911223781A CN110933092A CN 110933092 A CN110933092 A CN 110933092A CN 201911223781 A CN201911223781 A CN 201911223781A CN 110933092 A CN110933092 A CN 110933092A
Authority
CN
China
Prior art keywords
session
original system
jwt
single sign
token
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
Application number
CN201911223781.XA
Other languages
English (en)
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.)
Yinqing Technology Co Ltd
Original Assignee
Yinqing Technology 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 Yinqing Technology Co Ltd filed Critical Yinqing Technology Co Ltd
Priority to CN201911223781.XA priority Critical patent/CN110933092A/zh
Publication of CN110933092A publication Critical patent/CN110933092A/zh
Pending legal-status Critical Current

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/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/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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/321Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving a third party or a trusted authority
    • H04L9/3213Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving a third party or a trusted authority using tickets or tokens, e.g. Kerberos

Landscapes

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

Abstract

本发明提供了一种基于JWT的单点登录实现方法及装置,包括:根据用户登录信息生成JWT令牌,JWT令牌中包含ID;在JWT令牌验签通过后,获取与JWT令牌存在对应关系的原系统会话;利用原系统会话进行单点登录。本申请将现有技术中的验签环节进行扩展,采用了JWT令牌这种技术将验签环节扩展成一个集成JWT验签登录环节,实现了无需搭建统一的验证中心即可实现单点登录的功能。

Description

一种基于JWT的单点登录实现方法及装置
技术领域
本申请属于系统登录技术领域,具体地讲,涉及一种基于JWT的单点登录实现方法及装置。
背景技术
在企业内部,由于多年积累,集成了多个独立且不同技术栈的信息服务系统,因此“烟囱效应”现象特别严重。并且各个业务系统之间相对独立,使得企业用户不得不在多个系统间频繁登录操作。这个时候对原有信息系统进行整体改造建立统一的认证中心来实现单点登录,不仅涉及范围广,且改造成本高昂。
Json Web Token(简称JWT令牌),是一种基于Json为了在网络应用间传递声明的开放标准,该Token设计紧凑、无状态且安全,适用于分布式站点,在多个应用资源服务器中获取资源。目前JWT标准已经被众多开发语言(例如.NET,Ruby,Java,Python,PHP等)支持,被广泛使用于业界产品。
发明内容
本申请提供了一种基于JWT的单点登录实现方法,以至少解决现有技术中多个不同系统之间需要多次登录无法实现登录账号及密码统一并进行单点登录问题。
根据本申请的一个方面,提供了一种基于JWT的单点登录实现方法,包括:
根据用户登录信息生成JWT令牌,JWT令牌中包含ID和有效信息;
在JWT令牌验签通过后,获取与JWT令牌存在对应关系的原系统会话;
利用原系统会话进行单点登录。
在一实施例中,获取与JWT令牌存在对应关系的原系统会话,包括:
查询与JWT令牌存在对应关系的原系统会话是否存在;
如果存在,调用原系统会话访问业务API实现单点登录。
在一实施例中,如果与JWT令牌存在对应关系的原系统会话不存在,创建原系统会话,调用原系统会话访问业务API实现单点登录。
在一实施例中,创建原系统会话,包括:
检测JWT令牌的信息中的ID是否存在;
如果存在,使用ID登录系统生成原系统会话;
缓存JWT令牌与原系统会话的对应关系。
在一实施例中,本基于JWT的单点登录实现方法还包括:
验证ID和密码,验证通过后根据ID和密码登录原系统生成原系统对话以及用户登录信息。
根据本申请的另一个方面,提供了一种基于JWT的单点登录实现装置,包括:
令牌生成单元,用于根据用户登录信息生成JWT令牌,JWT令牌中包含ID和有效信息;
会话恢复单元,用于在JWT令牌验签通过后,获取与JWT令牌存在对应关系的原系统会话;
单点登录单元,用于利用原系统会话进行单点登录。
在一实施例中,会话恢复单元包括:
会话查询模块,用于查询与JWT令牌存在对应关系的原系统会话是否存在;
调用原会话模块,用于如果存在,调用原系统会话访问业务API实现单点登录。
在一实施例中,本申请提供的单点登录实现装置还包括:
会话创建模块,用于如果与JWT令牌存在对应关系的原系统会话不存在,创建原系统会话,调用原系统会话访问业务API实现单点登录。
在一实施例中,会话创建模块包括:
ID检测模块,用于检测JWT令牌的信息中的ID是否存在;
会话生成模块,用于如果存在,使用ID登录系统生成原系统会话;
缓存模块,用于缓存JWT令牌与原系统会话的对应关系。
在一实施例中,还包括:
初始验证单元,用于验证ID和密码,验证通过后根据ID和密码登录原系统生成原系统对话以及用户登录信息。
本申请提供的单点登录方法避免了为各个独立系统建立统一认证中心的步骤,在有限的开发时间和资金成本下,在不添加硬件,不配置和维护Redis、Memcache等共享会话服务,不添加认证中心的情况下实现单点登录功能。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请中JWT令牌的结构示意图。
图2为本申请提供的一种基于JWT令牌的单点登录实现方法的流程图。
图3为本申请实施例中获取与JWT令牌存在对应关系的原系统会话的流程图。
图4为本申请实施例中创建原系统会话的流程图。
图5为本申请中令牌验签环节改造(拓展)前的示意图。
图6为本申请中令牌验签环节改造(拓展)后的示意图。
图7为本申请提供的一种基于JWT令牌的单点登录实现装置的框图。
图8为本申请实施例中会话恢复单元的框图。
图9为本申请实施例中会话创建模块的框图。
图10为本申请实施例中提供的一种电子设备的具体实施方式。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在现有技术中,各个独立的信息服务系统之间无法实现单点登录,使得用户不得不在多个系统间频繁登陆操作,不仅造成了资源浪费并且容易忘记多系统的登录账户密码,目前实现单点登录的方法主要由两种:1、共享session;2、建设统一的认证中心。但是这两种单点登录方法都具有一定的缺点。基于此,本申请提供了一种实现单点登录的方法。在介绍该种方法之前,先介绍本申请中提供的此种方法的工作原理:
本申请提供的单点登录方法是基于Json Web Token(简称JWT令牌)来实现的一种方法。JWT令牌是一种基于Json为了在网络应用间传递声明的开放标准,该令牌设计紧凑、无状态且安全,具有适用于分布式站点、从多个应用资源服务器获取资源的特点。
如图1所示,一个JWT令牌的结构由头部(header)、载荷(payload)和签名(signature)三部分组成,头部放置有关于签名算法的json格式信息,载荷部分用于存放一些非敏感的json格式数据信息(或者声明),比如邮箱地址、有效期等;签名部分是使用密钥的加密算法,将头部和载荷两部分拼接的结果进行加密的字符串。编码后的头部、载荷以及签名通过“.”来拼接在一起完成JWT令牌。通过HTTP请求头或者URL参数传输的JWT令牌天然支持跨域请求服务,实现企业内部服务网络之间的业务请求、授权、认证和资源访问。令牌的鉴权机制类似于HTTP协议也是无状态的,它不需要在服务端去保留用户的认证信息或者会话信息,这就意味着基于令牌认证机制的应用不需要去考虑用户在哪一台服务器登录了,这就为在企业内部多个信息系统之间不增加服务器、不增加额外服务和维护成本的方式下,实现一次登录,多个业务系统允许访问的单点登录成为可能。
如图2所示,本申请提供了一种基于JWT令牌的单点登录实现方法,包括如下步骤:
S201:根据用户登录信息生成JWT令牌,JWT令牌中包含ID和有效信息。
用户使用ID和密码登录系统服务端,服务端获取了ID和密码后,通过ID和密码完成原系统登录,生成会话(称为原系统会话)。服务端用ID生成一个JWT令牌返回给用户,并同时将有效信息(JWT令牌的有效期)装入JWT令牌的载荷中。
S202:在JWT令牌验签通过后,获取与JWT令牌存在对应关系的原系统会话。
本申请拓展了现有技术中原系统中的密码验签环节,形成一个公共通用的验签环节,此验签环节集成在各个系统中,并且各个系统拥有相同的密钥。这种拓展的优势在于:多个系统使用相同的对称加密密钥,使得业务系统A颁发的令牌可以在业务系统B中验签通过,也就是说,这个令牌只要在有效期内,其在各个业务系统间就是通用并且有效的,从而可以达到一次登录便使得持有相同密钥的多个业务系统均可以访问的效果。同时,验签也可以避免令牌被篡改或仿造的风险。在本申请中的各个系统均可以颁发令牌,也可以验签令牌。在一具体实施例中,多个系统可以包括业务系统A、B、C等一系列系统,如果用户希望在微信(A)和微博(B)实现单点登录,那么通过整改微信和微博的验签环节使其拥有相同的对称加密密钥,这样就可以使微信系统办法的令牌可以在微博系统中验签通过。
通过S201中在登录A系统后生成的JWT令牌来登录B系统,B系统对该JWT令牌进行验签,首先检验JWT令牌中的签名,签名检验通过后,检验该JWT令牌是否在有效期内,验签通过后,B系统根据JWT令牌获取之前在B系统中登录的原系统会话。
在一具体实施例中,令牌的密钥和有效期都静态配置在验签登录环节的文件中,验签登录环节具体的实现方式可以是一个过滤器或拦截器,也可以是一个工具包。
S203:利用原系统会话进行单点登录。
在验签通过并获得B系统的原系统会话后,通过原系统会话方式来使用业务系统中用户角色权限体系,实现与原业务系统鉴权逻辑完美搭配且无侵入,调用业务系统API(应用程序调用接口)来实现登录本系统B。
在一实施例中,如图3所示,获取与JWT令牌存在对应关系的原系统会话,包括:
S301:查询与JWT令牌存在对应关系的原系统会话是否存在。
获取到JWT令牌并在JWT令牌验签成功之后,在系统缓存中查询是否存在JWT令牌与原系统会话的对应关系。
在一具体实施例中,B系统获取到了JWT令牌,并且JWT令牌通过了B系统的验签,B系统在缓存中查询是否存在JWT令牌与B系统的原系统会话的对应关系。JWT令牌的载荷中存有用户数据信息和有效期,用户数据信息中包含有唯一身份标识符——ID,比如登录ID、Email等。当令牌过期时,则需要重新登录某个系统获取新的JWT令牌。
S302:如果存在,调用原系统会话访问业务API实现单点登录。
如果S301中的原系统会话存在,则使用JWT令牌对应的会话来访问业务系统。
在一具体实施例中,如果该JWT令牌中,存在有与原系统B的会话,那么系统B调用原系统会话来访问业务系统。
在一实施例中,如图4所示,如果与JWT令牌存在对应关系的原系统会话不存在,创建原系统会话,调用原系统会话访问业务API实现单点登录。
在一实施例中,创建原系统会话,包括:
S401:检测JWT令牌的信息中的ID是否存在。
在一具体实施例中,系统B通过解码的方式检测存储与JWT令牌的载荷部分的用户数据信息中,是否包含唯一身份标识符ID,并且检测这个ID是否可用。
S402:如果存在,使用ID登录系统生成原系统会话。
在一具体实施例中,如果系统B通过解码JWT令牌后发现其中包含有唯一身份标识符ID那么就根据该JWT令牌来登录系统B,并且创建JWT令牌与B系统的初始会话作为原系统会话。
S403:缓存JWT令牌与原系统会话的对应关系。
在一具体实施例中,在S402中创建完成与B系统的原系统会话后,将JWT令牌与该原系统会话的对应关系保存在缓存中。
在一实施例中,本基于JWT的单点登录实现方法还包括:
验证ID和密码,验证通过后根据ID和密码登录原系统生成原系统会话以及用户登录信息。
在一具体实施例中,在JWT令牌的生成环节,用户使用ID和密码登录原系统A,如果登录成功,服务端根据ID和密码生成JWT令牌返回给客户端,并缓存JWT令牌与原系统会话的对应关系;如果登录失败,则将登录失败的信息返回给用户,流程结束。
图5和图6分别为本申请中令牌验签环节改造(拓展)前与改造后的示意图。
如图5所示,在令牌验签环节改造前,企业用户需要登录业务系统A和业务系统B,企业用户需要先通过ID和密码登录业务系统A,业务系统A将ID和密码发送至数据库A中进行验证,数据库A返回验证结果给业务系统A,业务系统A再返回Cookie给企业用户,企业用户将携带有该Cookie的信息再次发送给业务系统A,业务系统A从数据库A中执行业务查询,数据库A返回数据给业务系统A,业务系统A再将结果返回给企业用户;
完成业务系统A的登录后企业用户再以同样的方式执行对业务系统B的登录过程,当企业内部有多个系统的时候,依次分别执行各个业务系统的登录极其浪费时间并且记忆多个业务系统的ID以及密码容易造成遗忘或混淆。
如图6所示,为本申请中令牌验签环节改造后,集成了JWT验签登录模块,业务系统A和业务系统B的密钥相同。企业用户首先利用ID和密码登录业务系统A,业务系统A将该ID及密码发送至数据库A进行验证,数据库A返回验证结果给业务系统A,业务系统A根据ID生成JWT令牌后返回给企业用户,企业用户将携带有JWT令牌的信息发送给集成的JWT验签登录模块,JWT验签登录模块登录业务系统B,完成JWT验签、查询JWT和会话关系、获取ID、登录或访问等多项步骤实现业务查询。
本申请通过对各个系统中的令牌验签环节进行改造集成了JWT验签登录模块,实现了利用JWT令牌在某个系统中输入一次ID和密码即可登录所有系统的功能。
接下来举一个实际中具体的场景来解释本申请中提供的单点登录方法的具体过程:
在某公司企业内部有多个建设于不同时期的、应对不同业务需求的信息服务系统,比如员工报工系统、员工生活服务平台、线上办公流程审批系统、员工办公辅助系统等。每个员工入职后都会分配得到一个公司内部唯一身份标识(ID),每个业务系统的建设都会根据这个唯一身份标识处理登录请求,验证创建会话服务,且各系统具有独立的一套认证、权限分配来限定用户角色的使用范围。可见需要在一个令牌中携带这个唯一身份标识符和必要的令牌有效期就可以分辨员工是否具有权限访问业务系统、该ID具有何种角色和可以访问多长时间。
根据这个流程,创建一个验签登录模块,且这个模块内置统一的JWT验签密钥,摆放于原业务系统的创建会话服务模块之前,员工每个工作日上班时,因为当日本地存储JWT令牌失效或没有JWT令牌,所以使用ID和密码登录员工办公辅助系统,访问该系统的同时产生通用JWT令牌,此JWT令牌放置在客户端本地存储中,每次请求会放置的HTTP请求头或请求参数中。
比如,当员工登录员工报工系统时,输入ID和密码,报工系统创建一个会话,并生成一个JWT令牌返回给员工,这个JWT令牌中包含有ID和此令牌的有效期。员工持有JWT令牌想要登录员工生活服务平台,生活服务平台首先对JWT令牌进行验签,检查该令牌的签名是否由本系统颁发,然后再检查该令牌是否在有效期内,如果不在有效期内需要员工重新进行登录。验签通过后,生活服务平台查询是否存在以前登录本平台的会话记录,如果存在则直接调用登录,如果是员工第一次登录生活服务平台,那缓存中则不存在先前的会话记录,这时本平台使用JWT令牌有效载荷中的ID创建一个会话,并将该会话缓存,然后登录本平台。
基于同一发明构思,本申请还提供了一种基于JWT令牌的单点登录实现的装置,可以用于实现上述实施例中所描述的方法,如下面实施例所描述。由于该基于JWT令牌的单点登录实现的装置解决问题的原理与识别方法相似,因此基于JWT令牌的单点登录实现装置的实施可以参见基于JWT令牌的单点登录实现方法的实施,重复之处不再赘述。基于JWT令牌的单点登录实现装置的实施例可以参见基于JWT令牌的单点登录实现方法的实施例,重复之处不再赘述。以下所使用的术语“单元”或者“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的系统较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
如图7所示,一种基于JWT的单点登录实现装置,包括:
令牌生成单元701,用于根据用户登录信息生成JWT令牌,JWT令牌中包含ID和有效信息;
会话恢复单元702,用于在JWT令牌验签通过后,获取与JWT令牌存在对应关系的原系统会话;
单点登录单元703,用于利用原系统会话进行单点登录。
在一实施例中,如图8所示,会话恢复单元702包括:
会话查询模块801,用于查询与JWT令牌存在对应关系的原系统会话是否存在;
调用原会话模块802,用于如果存在,调用原系统会话访问业务API实现单点登录。
在一实施例中,本申请提供的单点登录实现装置还包括:
会话创建模块,用于如果与JWT令牌存在对应关系的原系统会话不存在,创建原系统会话,调用原系统会话访问业务API实现单点登录。
在一实施例中,如图9所示,会话创建模块包括:
ID检测模块901,用于检测JWT令牌的信息中的ID是否存在以及该ID是否可以通行;
会话生成模块902,用于如果存在,使用ID登录系统生成原系统会话;
缓存模块903,用于缓存JWT令牌与原系统会话的对应关系。
在一实施例中,还包括:
初始验证单元,用于验证ID和密码,验证通过后根据ID和密码登录原系统生成原系统对话以及用户登录信息。
本发明中应用了具体实施例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
本申请的实施例还提供能够实现上述实施例中的方法中全部步骤的一种电子设备的具体实施方式,参见图10,所述电子设备具体包括如下内容:
处理器(processor)1001、内存1002、通信接口(Communications Interface)1003、总线1004和非易失性存储器1005;
其中,所述处理器1001、内存1002、通信接口1003通过所述总线1004完成相互间的通信;
所述处理器1001用于调用所述内存1002和非易失性存储器1005中的计算机程序,所述处理器执行所述计算机程序时实现上述实施例中的方法中的全部步骤,例如,所述处理器执行所述计算机程序时实现下述步骤:
S201:根据用户登录信息生成JWT令牌,JWT令牌中包含ID和有效信息。
S202:在JWT令牌验签通过后,获取与JWT令牌存在对应关系的原系统会话。
S203:利用原系统会话进行单点登录。
本申请的实施例还提供能够实现上述实施例中的方法中全部步骤的一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述实施例中的方法的全部步骤,例如,所述处理器执行所述计算机程序时实现下述步骤:
S201:根据用户登录信息生成JWT令牌,JWT令牌中包含ID。
S202:在JWT令牌验签通过后,获取与JWT令牌存在对应关系的原系统会话。
S203:利用原系统会话进行单点登录。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于硬件+程序类实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。虽然本说明书实施例提供了如实施例或流程图所述的方法操作步骤,但基于常规或者无创造性的手段可以包括更多或者更少的操作步骤。实施例中列举的步骤顺序仅仅为众多步骤执行顺序中的一种方式,不代表唯一的执行顺序。在实际中的装置或终端产品执行时,可以按照实施例或者附图所示的方法顺序执行或者并行执行(例如并行处理器或者多线程处理的环境,甚至为分布式数据处理环境)。术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、产品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、产品或者设备所固有的要素。在没有更多限制的情况下,并不排除在包括所述要素的过程、方法、产品或者设备中还存在另外的相同或等同要素。为了描述的方便,描述以上装置时以功能分为各种模块分别描述。当然,在实施本说明书实施例时可以把各模块的功能在同一个或多个软件和/或硬件中实现,也可以将实现同一功能的模块由多个子模块或子单元的组合实现等。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
本领域技术人员应明白,本说明书的实施例可提供为方法、系统或计算机程序产品。因此,本说明书实施例可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本说明书实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本说明书实施例的至少一个实施例或示例中。
在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。以上所述仅为本说明书实施例的实施例而已,并不用于限制本说明书实施例。对于本领域技术人员来说,本说明书实施例可以有各种更改和变化。凡在本说明书实施例的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本说明书实施例的权利要求范围之内。

Claims (12)

1.一种单点登录实现方法,其特征在于,包括:
根据用户登录信息生成JWT令牌,所述JWT令牌中包含ID和有效信息;
在所述JWT令牌验签通过后,获取与所述JWT令牌存在对应关系的原系统会话;
利用所述原系统会话进行单点登录。
2.根据权利要求1所述的单点登录实现方法,其特征在于,所述获取与所述JWT令牌存在对应关系的原系统会话,包括:
查询与所述JWT令牌存在对应关系的原系统会话是否存在;
如果存在,调用所述原系统会话访问业务API实现单点登录。
3.根据权利要求2所述的单点登录实现方法,其特征在于,如果与所述JWT令牌存在对应关系的原系统会话不存在,创建所述原系统会话,调用所述原系统会话访问业务API实现单点登录。
4.根据权利要求3所述的单点登录实现方法,其特征在于,所述创建所述原系统会话,包括:
检测所述JWT令牌的信息中的所述ID是否存在;
如果存在,使用所述ID登录系统生成所述原系统会话;
缓存所述JWT令牌与所述原系统会话的对应关系。
5.根据权利要求1所述的单点登录实现方法,其特征在于,还包括:
验证所述ID和密码,验证通过后根据所述ID和所述密码登录原系统生成原系统对话以及所述用户登录信息。
6.一种单点登录实现装置,其特征在于,包括:
令牌生成单元,用于根据用户登录信息生成JWT令牌,所述JWT令牌中包含ID和有效信息;
会话恢复单元,用于在所述JWT令牌验签通过后,获取与所述JWT令牌存在对应关系的原系统会话;
单点登录单元,用于利用所述原系统会话进行单点登录。
7.根据权利要求6所述的单点登录实现装置,其特征在于,所述会话恢复单元包括:
会话查询模块,用于查询与所述JWT令牌存在对应关系的原系统会话是否存在;
调用原会话模块,用于如果存在,调用所述原系统会话访问业务API实现单点登录。
8.根据权利要求7所述的单点登录实现装置,其特征在于,还包括:
会话创建模块,用于如果与所述JWT令牌存在对应关系的原系统会话不存在,创建所述原系统会话,调用所述原系统会话访问业务API实现单点登录。
9.根据权利要求8所述的单点登录实现装置,其特征在于,所述会话创建模块包括:
ID检测模块,用于检测所述JWT令牌的信息中的所述ID是否存在;
会话生成模块,用于如果存在,使用所述ID登录系统生成所述原系统会话;
缓存模块,用于缓存所述JWT令牌与所述原系统会话的对应关系。
10.根据权利要求6所述的单点登录实现装置,其特征在于,还包括:
初始验证单元,用于验证所述ID和密码,验证通过后根据所述ID和所述密码登录原系统生成原系统对话以及所述用户登录信息。
11.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现权利要求1至5中任一项所述单点登录实现方法。
12.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现权利要求1至5中任一项所述单点登录实现方法。
CN201911223781.XA 2019-12-03 2019-12-03 一种基于jwt的单点登录实现方法及装置 Pending CN110933092A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911223781.XA CN110933092A (zh) 2019-12-03 2019-12-03 一种基于jwt的单点登录实现方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911223781.XA CN110933092A (zh) 2019-12-03 2019-12-03 一种基于jwt的单点登录实现方法及装置

Publications (1)

Publication Number Publication Date
CN110933092A true CN110933092A (zh) 2020-03-27

Family

ID=69857683

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911223781.XA Pending CN110933092A (zh) 2019-12-03 2019-12-03 一种基于jwt的单点登录实现方法及装置

Country Status (1)

Country Link
CN (1) CN110933092A (zh)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111800440A (zh) * 2020-09-08 2020-10-20 平安国际智慧城市科技股份有限公司 多策略访问控制登录方法、装置、计算机设备及存储介质
CN111814130A (zh) * 2020-07-06 2020-10-23 新华智云科技有限公司 单点登录方法及系统
CN112035822A (zh) * 2020-08-25 2020-12-04 北京锐安科技有限公司 多应用单点登录方法、装置、设备及存储介质
CN112153012A (zh) * 2020-09-01 2020-12-29 珠海市卓轩科技有限公司 多端触点接入方法、装置及存储介质
CN112800410A (zh) * 2021-02-02 2021-05-14 北京明略昭辉科技有限公司 一种多产品登录管理方法、装置、设备及存储介质
CN112861092A (zh) * 2021-03-10 2021-05-28 上海昊沧系统控制技术有限责任公司 基于jwt认证应用实现单终端登录限制的方法及系统
CN113553569A (zh) * 2021-07-06 2021-10-26 猪八戒股份有限公司 基于代理服务器的海波龙系统单点登录方法、系统及终端
CN113708938A (zh) * 2021-10-28 2021-11-26 湖南新云网科技有限公司 一种令牌获取方法、令牌获取装置及终端设备
CN113746882A (zh) * 2020-05-28 2021-12-03 支付宝实验室(新加坡)有限公司 一种用户会话信息存储方法、装置及电子设备

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150150109A1 (en) * 2013-11-27 2015-05-28 Adobe Systems Incorporated Authenticated access to a protected resource using an encoded and signed token
CN107347068A (zh) * 2017-07-10 2017-11-14 恒生电子股份有限公司 单点登录方法及系统、电子设备
CN109104432A (zh) * 2018-09-26 2018-12-28 深圳竹云科技有限公司 一种基于jwt协议的信息传递安全方法
US20190007409A1 (en) * 2017-06-30 2019-01-03 Open Text Corporation Hybrid authentication systems and methods
CN109802935A (zh) * 2018-11-22 2019-05-24 成都飞机工业(集团)有限责任公司 一种混合模式的企业内网单点登录方法
CN109936579A (zh) * 2019-03-21 2019-06-25 广东瑞恩科技有限公司 单点登录方法、装置、设备及计算机可读存储介质

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150150109A1 (en) * 2013-11-27 2015-05-28 Adobe Systems Incorporated Authenticated access to a protected resource using an encoded and signed token
US20190007409A1 (en) * 2017-06-30 2019-01-03 Open Text Corporation Hybrid authentication systems and methods
CN107347068A (zh) * 2017-07-10 2017-11-14 恒生电子股份有限公司 单点登录方法及系统、电子设备
CN109104432A (zh) * 2018-09-26 2018-12-28 深圳竹云科技有限公司 一种基于jwt协议的信息传递安全方法
CN109802935A (zh) * 2018-11-22 2019-05-24 成都飞机工业(集团)有限责任公司 一种混合模式的企业内网单点登录方法
CN109936579A (zh) * 2019-03-21 2019-06-25 广东瑞恩科技有限公司 单点登录方法、装置、设备及计算机可读存储介质

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
WEIXIN_42873937: "使用JWT实现单点登录(完全跨域方案)", 《HTTPS://BLOG.CSDN.NET/WEIXIN_42873937/ARTICLE/DETAILS/82460997》 *
子回(JOHN WU): "八幅漫画理解使用JSON Web Token设计单点登录系统", 《HTTP://BLOG.LEAPOAHEAD.COM/2015/09/07/USER-AUTHENTICATION-WITH-JWT/》 *

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113746882A (zh) * 2020-05-28 2021-12-03 支付宝实验室(新加坡)有限公司 一种用户会话信息存储方法、装置及电子设备
CN111814130A (zh) * 2020-07-06 2020-10-23 新华智云科技有限公司 单点登录方法及系统
CN111814130B (zh) * 2020-07-06 2024-03-26 新华智云科技有限公司 单点登录方法及系统
CN112035822A (zh) * 2020-08-25 2020-12-04 北京锐安科技有限公司 多应用单点登录方法、装置、设备及存储介质
CN112035822B (zh) * 2020-08-25 2024-08-06 北京锐安科技有限公司 多应用单点登录方法、装置、设备及存储介质
CN112153012A (zh) * 2020-09-01 2020-12-29 珠海市卓轩科技有限公司 多端触点接入方法、装置及存储介质
CN112153012B (zh) * 2020-09-01 2021-07-06 珠海市卓轩科技有限公司 多端触点接入方法、装置及存储介质
CN111800440B (zh) * 2020-09-08 2020-12-18 平安国际智慧城市科技股份有限公司 多策略访问控制登录方法、装置、计算机设备及存储介质
CN111800440A (zh) * 2020-09-08 2020-10-20 平安国际智慧城市科技股份有限公司 多策略访问控制登录方法、装置、计算机设备及存储介质
CN112800410A (zh) * 2021-02-02 2021-05-14 北京明略昭辉科技有限公司 一种多产品登录管理方法、装置、设备及存储介质
CN112861092A (zh) * 2021-03-10 2021-05-28 上海昊沧系统控制技术有限责任公司 基于jwt认证应用实现单终端登录限制的方法及系统
CN113553569B (zh) * 2021-07-06 2022-12-09 猪八戒股份有限公司 基于代理服务器的海波龙系统单点登录方法、系统及终端
CN113553569A (zh) * 2021-07-06 2021-10-26 猪八戒股份有限公司 基于代理服务器的海波龙系统单点登录方法、系统及终端
CN113708938A (zh) * 2021-10-28 2021-11-26 湖南新云网科技有限公司 一种令牌获取方法、令牌获取装置及终端设备

Similar Documents

Publication Publication Date Title
CN110933092A (zh) 一种基于jwt的单点登录实现方法及装置
Paniagua et al. Industrial frameworks for internet of things: A survey
US10891383B2 (en) Validating computer resource usage
CN105007280B (zh) 一种应用登录方法和装置
CN111698250B (zh) 访问请求处理方法、装置、电子设备及计算机存储介质
CN114679293A (zh) 基于零信任安全的访问控制方法、设备及存储介质
US20150033285A1 (en) Non-intrusive method and apparatus for automatically dispatching security rules in cloud environment
CN111786969B (zh) 单点登录方法、装置及系统
JP6572750B2 (ja) 認証制御プログラム、認証制御装置、及び認証制御方法
CN110032842B (zh) 同时支持单点登录及第三方登录的方法和系统
CN112491776B (zh) 安全认证方法及相关设备
US11165768B2 (en) Technique for connecting to a service
Sharma et al. Identity and access management-a comprehensive study
CN111444500A (zh) 鉴权方法、装置、设备及可读存储介质
CN106559405B (zh) 一种Portal认证方法和设备
CN105991614A (zh) 一种开放授权、资源访问的方法及装置、服务器
CN111800426A (zh) 应用程序中原生代码接口的访问方法、装置、设备及介质
CN116032627A (zh) 一种基于微服务架构的统一认证授权方法及装置
CN113761509B (zh) iframe验证登录方法及装置
Wu et al. Design and implementation of cloud API access control based on OAuth
CN109802927B (zh) 一种安全服务提供方法及装置
CN108243164B (zh) 一种电子政务云计算跨域访问控制方法和系统
US11012431B2 (en) Secure sharing of peering connection parameters between cloud providers and network providers
JP2017152877A (ja) 電子鍵再登録システム、電子鍵再登録方法およびプログラム
Yousefnezhad et al. Authentication and access control for open messaging interface standard

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
RJ01 Rejection of invention patent application after publication

Application publication date: 20200327

RJ01 Rejection of invention patent application after publication