CN112511316B - 单点登录接入方法、装置、计算机设备及可读存储介质 - Google Patents
单点登录接入方法、装置、计算机设备及可读存储介质 Download PDFInfo
- Publication number
- CN112511316B CN112511316B CN202011424231.7A CN202011424231A CN112511316B CN 112511316 B CN112511316 B CN 112511316B CN 202011424231 A CN202011424231 A CN 202011424231A CN 112511316 B CN112511316 B CN 112511316B
- Authority
- CN
- China
- Prior art keywords
- token
- cache
- verification
- information
- service
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic 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/321—Cryptographic 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/3213—Cryptographic 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
- H04L63/0807—Network architectures or network communication protocols for network security for authentication of entities using tickets, e.g. Kerberos
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
- H04L63/0815—Network architectures or network communication protocols for network security for authentication of entities providing single-sign-on or federations
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/50—Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate
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)
- Storage Device Security (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明提供一种单点登录接入方法,包括:接收用户的访问请求,访问请求携带用户令牌token;先对token进行本地验证,若验证通过,返回token有效信息,否则对token进行服务缓存验证,判断token是否有效,若有效,则返回token有效信息;否则返回异常信息。本发明中建立多级token验证,本地验证为对Token的第一道验证防线,用于对token的有效性进行验证,当其验证失败时,可降级到服务端进行服务缓存验证,不必立即访问数据库,不需要查询用户信息,加大用户服务的稳定性及安全性。另外,本发明通过多级token验证,可接入多场景业务,丰富Token对端上业务场景的把控,减少Token校验与对接端的耦合,保证能支撑多种业务场景,满足多业务线、多端登录等场景业务组合的需求。
Description
技术领域
本发明涉及一种单点登录接入方法、装置、计算机设备及计算机可读存储介质。
背景技术
目前,由于企业的应用***中存在诸多子***,而这些子***又分别部署在不同的服务器中,为了节省登录时间,大多企业使用单点登录的方式访问所有相互信任的应用***。
企业级单点登录***已经广泛地应用到多平台的业务***中,并且逐渐形成相应的代理包,业务***引入代理包到项目工程或者运行时环境,即可快速对接企业级单点登录***。这种直接导入代理包的方式主要针对前后端未分离开发模式下的业务***,但随着信息技术的发展,为了兼容更多种类的前端,目前很多业务***都是前后端分离的,前后端分离的业务***无法直接通过导入代理包来对接企业级单点登录***。因此,对于前后端分离的业务***,主要是通过服务调用的方式对接企业级单点登录***,一般是应用token标记访问,token为用户用于身份认证的身份令牌。
如图1所示,现有技术Token是基于DB(数据库)生成和存储的,仅能实现用户对Token的一对一登录态维护,简单控制整个用户生命周期,存在以下缺点:
1、Token存于用户信息的数据库中,其访问需要查询用户信息,加大了用户服务的不稳定性及安全性;
2、Token存于DB依赖于字段的长度,并且随着业务场景的复杂,无法满足多业务线、多端登录等场景业务组合的需求;
3、Token验证服务繁忙,验证压力大,同时只有一级验证方式,未设有降级验证机制,以便在token失效时进行降级验证,无需立即查库增加DB访问压力;
4、另外,并且随着Token变更,众多业务端无法同步更新。
发明内容
为了解决上述问题,本发明的目的是提供一种单点登录接入方法、装置、计算机设备及计算机可读存储介质,该方法打通多业务线产品的登录、互踢和拉黑等及时性问题,实现跨业务线Token验证,能快速接入新产品、新业务,并能提供高性能和高可用的服务。
基于此,本发明提供了一种单点登录接入方法,所述单点登录接入方法包括:
接收用户的访问请求,所述访问请求携带了用户的令牌token;
对所述令牌token进行验证,所述验证包括且顺序依次为初级缓存验证、一级服务缓存验证和二级服务缓存验证,所述token通过任何其中一级验证,则返回token有效信息;否则,返回token失效信息。
在本发明中,建立多级token验证,初级缓存验证为对Token的第一道验证防线,用于对所述token的有效性进行验证,当其验证不通过时,可降级到服务端进行服务缓存验证,不必立即访问DB数据库,不需要查询用户信息,增强了用户服务的稳定性及安全性。另外,本发明提供的单点登录接入方法通过多级token验证,可接入多场景业务,丰富Token对端上业务场景的把控,减少Token校验与对接端的耦合,保证能支撑多种业务场景,满足多业务线、多端登录等场景业务组合的需求。
其中,所述对所述令牌token进行验证,包括:
初级缓存验证,验证所述token是否缓存在初级缓存中,若存在则判断所述token的有效性,当有效时,返回token的有效信息,过期则返回失效信息,若token不存在,则进行一级服务缓存验证;
一级服务缓存验证,验证所述token是否需要验证所述token是否存在一级缓存中,若存在则判断所述token的有效性,当有效时,返回token的有效信息,过期则返回失效信息,若所述token不存在,则进行二级服务缓存验证;
所述二级服务缓存验证直接读取所述token信息,并返回token的有效信息。
其中,所述验证还包括获取用户多个token的映射关系。
其中,二级服务缓存验证还包括:
延长所述token的有效期。
其中,所述方法还包括:删除所述初级缓存验证或一级缓存验证校验的已过期的token信息。
本发明还提供了一种单点登录接入装置,包括:
接收模块,用于用户的访问请求,所述访问请求携带用户的令牌token;
验证模块,用于对所述令牌token进行验证,所述验证包括且顺序依次为初级缓存验证、一级服务缓存验证和二级服务缓存验证,所述token通过任何其中一级验证,则返回token有效信息;否则,返回token失效信息。
其中,所述验证模块包括:
初级验证模块,用于对所述token进行初级验证,若验证通过,返回token有效信息,若不通过,则通过服务缓存验证模块对所述令牌token进行服务缓存验证;
服务缓存验证模块,用于对所述token进行一级服务缓存验证和二级服务缓存验证;若验证通过返回token的有效信息,否则返回token失效信息。
其中,所述服务缓存验证模块,包括:
一级缓存子模块,用于进行一级服务缓存验证,验证所述token是否存在一级缓存子模块中,若存在,则验证所述token的有效性,若有效,通过验证并返回token的有效信息,不进行二级服务缓存验证;否则,返回异常信息;当所述token未缓存在第一缓存中时,进行二级服务缓存验证服务缓存验证服务缓存验证;
二级缓存子模块,用于存储所有token信息,进行二级服务缓存验证,从所述二级缓存子模块读取所述token的信息并返回token的有效信息。
本发明还提供了一种计算机设备,包括存储器、处理器和网络接口,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现单点登录接入方法的步骤。
本发明还提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现单点登录接入方法的步骤。
在本发明中,所述单点登录接入方法建立多级token验证:初级缓存验证和服务缓存验证,其中本地验证为对Token的初始验证防线,依赖于本地缓存,验证速度快,且可降低服务器的访问压力。当本地验证不通过时,可降级到服务端中进行服务缓存验证,不必立即访问DB数据库,不需要查询用户信息,增强了用户服务的稳定性及安全性。另外,本发明提供的单点登录接入方法通过多级token验证,降低DB数据库存储及访问压力,可按产品的业务场景,只需要判断当前用户登录态是否有效,无需要查询用户信即可完成访问登录。并且可接入多场景业务,增强Token对端上业务场景的把控能力,减少Token校验与对接端的耦合,解决Token并发压力,保证能支撑多种业务场景,满足多业务线、多端登录等场景业务组合的需求。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是现有技术token访问方式示意图;
图2是本发明实施例可以应用于其中的示例性***架构图;
图3是本发明实施例提供的单点登录接入方法的示意图;
图4是本发明实施例提供的token映射关系的示意图;
图5是是本发明实施例提供的一单点登录接入方法具体实施过程示意图;
图6是本发明实施例提供的单点登录接入方装置的结构示意图;
图7是发明实施例提供的单点登录接入方装置验证模块的结构示意图;
图8根据本申请的计算机设备的一个实施例的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图2所示,***架构100可以包括终端设备101、102、103,网络104和服务器105。网络104用以在终端设备101、102、103和服务器105之间提供通信链路的介质。网络104可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用终端设备101、102、103通过网络104与服务器105交互,以接收或发送消息等,操作单点登录接入方法的业务及应用。终端设备101、102、103上可以安装有各种通讯客户端应用,例如网页浏览器应用、购物类应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等。
终端设备101、102、103可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于用户设备、网络设备或用户设备与网络设备通过网络相集成所构成的设备。所述用户设备其包括但不限于任何一种可与用户通过触摸板进行人机交互的移动电子产品,例如智能手机、平板电脑等,所述移动电子产品可以采用任意操作***,如android操作***、IOS操作***等。其中,所述网络设备包括一种能够按照事先设定或存储的指令,自动进行数值计算和信息处理的电子设备,其硬件包括但不限于微处理器、专用集成电路(ASIC)、可编程门阵列(FPGA)、数字处理器(DSP)、嵌入式设备等。所述网络设备其包括但不限于计算机、网络主机、单个网络服务器、多个网络服务器集或多个服务器构成的云;在此,云由基于云计算(Cloud Computing)的大量计算机或网络服务器构成,其中,云计算是分布式计算的一种,由一群松散耦合的计算机集组成的一个虚拟超级计算机。所述网络包括但不限于互联网、广域网、城域网、局域网、VPN网络、无线自组织网络(Ad Hoc网络)等。当然,本领域技术人员应能理解上述终端设备仅为举例,其他现有的或今后可能出现的终端设备如可适用于本申请,也应包含在本申请保护范围以内,并在此以引用方式包含于此。
服务器105可以是一台服务器,或者由若干台服务器组成的服务器集群,或者是一个云计算服务中心。其也可以是提供各种服务的服务器,例如对终端设备101、102、103上显示的页面提供支持的后台服务器。
需要说明的是,本申请实施例所提供的单点登录接入方法一般由终端设备执行,相应地,单点登录接入装置一般设置于终端设备中。
应该理解,图2中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
图3是本发明实施例提供的单点登录接入方法的示意图,所述方法包括:
301、接收用户的访问请求,访问请求携带用户的令牌token。
Token是服务端生成的一串字符串,以作客户端访问请求的身份令牌。当第一次登录后,服务器生成一个Token便将此Token返回给客户端,之后客户端只需带上这个Token前来请求数据即可,无需再次带上用户名和密码,使用token可减轻服务器的压力,减少频繁的查询数据库,增强服务器的稳定性和安全性。
Token是一种数字化的价值载体,是权益证明,包括三要素特性:
1、数字权益证明,通证必须是以数字形式存在的权益凭证,代表一种权利、一种固有和内在的价值;
2、加密,通证的真实性、防篡改性、保护隐私等能力由密码学予以保障;
3、可流通,能够在一个网络中流动,从而随时随地进行验证。
在本发明实施例中,在设计Token方案实现多角色、多端、多级缓存的高可用***,采用DES(Data Encryption Standard,数据加密标准)、3DES(Triple DES,三重数据加密算法)、AES(Advanced Encryption Standard,高级加密标准,又称Rijndael加密法,是美国联邦政府采用的一种区块加密标准)、RC4(Rivest Cipher 4,一种流加密算法)等中的一种或多种加密算法,上述算法特性如下表。
优选地,从安全性和性能、成熟度考虑,本实施例选择AES(Rijndael)算法进行加密或解密。
需要说明的是,本发明实施例上述加密算法的设计安全模式,对用户token密钥进行分解,存放在不同的位置,需要的时候再获取组合,并且针对多端业务、多端场景的token各自产生一套密钥。
302、对token进行本地验证,判断token值是否存存在本地缓存中,若存在,执行步骤303,若不存在,执行步骤304。
在本发明实施例中,本地验证为对Token的初始验证防线,依赖于本地缓存,能快速验证所述token的有效性,其减少对服务器的开销与依赖,可降低服务器的访问压力。
在一些实施例中,所述本地缓存通过SDK工具包进行验证。通过步骤301获取token信息后,首先调用SDK工具包中的函数获取本地缓存,如采用遍历轮询本地缓存方式,判断本地缓存中是否存在步骤301中得到的token,当本地缓存存在该token时,SDK工具包从本地缓存中读取token信息,执行步骤303,进一步判断token的有效性。若本地缓存未检测到所述token令牌时,执行步骤304,对token进行下一步服务缓存验证。
303、判断token是否超过有效期,若是,执行步骤307,若未超过有效期,执行步骤306。
应当理解的是,客户端在访问请求时,理应确认所携带的token是否过期,判断其是否在有效期内,若超过有效期,说明该token已失效,执行步骤307,返回失效信息或异常信息;若未超过,则在有效期内,执行步骤306,返回token的有效信息。
具体地,客户端在在第一次登录通过验证后,服务器便生成一个Token便将此Token返回给客户端,客户端收到Token以后可以把它存储起来,比如放在Cookie里或者Local Storage里。客户端每次向服务端请求资源的时候需要带着服务端签发的Token,服务端收到访问请求后,则验证客户端请求里面带着的Token信息,如果验证成功,就向客户端返回请求的数据。本实施例SDK有效承载当前节点的token验证工作,其减少对服务器的开销与依赖,但token保存时间不宜过长,对token的时效性有影响。
需要说明的是,在步骤303中,若验证通过,在执行步骤306的同时重新计算token的有效期信息,更新所述token的有效期期限。
需要说明的是,该级验证依赖客户端本地缓存。并且,本实施例可迁入Token验证SDK,增加所述用户终端的业务场景。
304、判断token是否在一级缓存中,若是,执行步骤303验证token的有效期,否则执行步骤305。
305、读取服务缓存信息,进行服务缓存验证。
需要说明的是,步骤304、305是对所述token进行服务缓存验证,依赖于服务器内存,当在步骤302中未在本地服务缓存验证有步骤301得到的token时,调用token服务,通过步骤304访问服务器一级缓存获取token信息,在一级缓存中获取到token信息时再次通过步骤303验证token的有效性,否则直接通过步骤305从二级缓存获取token信息并执行步骤306返回有效信息。
具体地,所述服务器缓存包括二级内存缓存资源:一级缓存和二级缓存,其中一级缓存存储部分token信息,二级缓存存储所有token信息。所述服务缓存验证分为两层token验证服务:
一级服务缓存验证,验证所述token是否存在一级缓存中,若存在,则验证所述token的有效性,若所述token存在且有效,通过验证并执行步骤306返回token有效信息,不进行所述二级服务缓存验证,若所述token已过期,执行步骤307返回token失效信息。当所述token未缓存在第一缓存中时,进行二级服务缓存验证。
二级服务缓存验证,从二级缓存中直接获取所述token的信息并返回token的有效信息。
需要说明的是,一级缓存为服务器端二级内存缓存资源中进行缓存端验证的第一道防线,其缓存有合理的token数据信息,用于快速验证token信息并降低服务端的终极压力;二级缓存是缓存资源中的终级载体,保存所有token信息。具体地,当本地验证失败后,首先从一级缓存中调用token数据,判断步骤301获得的token值是否缓存在所述一级缓存中,若存在,进一步判断token的有效性,若token超过有效期,说明该token已失效,执行步骤307,返回失效信息或异常信息;若未超过,则在有效期内,执行步骤306,返回token的有效信息。当一级缓存中不存在步骤301获取的token信息时,进行二级验证,直接在服务端的终极载体中获取该token信息,并返回token的有效信息。
需要说明的是,二级服务缓存验证还包括:将读取的所述token信息写入所述一级缓存及本地缓存中。
进一步地,一级服务缓存验证或二级服务缓存验证通过后,将token信息保存到本地缓存中,以便下次访问可直接从本地缓存中获取到token信息,快速通过本地验证。
需要说明的是,本发明实施例中,二级缓存中token的有效期长于一级缓存的有效期,一级缓存的有效期长于本地缓存的有效期。进一步地,二级缓存token的信息过期后,可随机延长,以保证token的有效性。
更进一步地,为降低服务端存储压力,在服务缓存验证校验到所述token信息过期失效时,将所述token信息从本地缓存及一级缓存中中删除。
应当理解的是,所述服务缓存验证是在服务端内存进行的,依赖Token验证服务的应用服务器的内存资源,能快速响应服务端token验证,时效及时。
在一些实施例中,如图4所示,服务端的数据结构实现用户ID与多个token的映射关系,支撑多业务场景并实现跨业务线token验证,可快速接入新产品、业务,提供高性能和高可用的服务。同时服务端以token作为key生成的token用户信息有效载体,有效的管理当前用户登录的声明周期。具体地,服务端缓存结构包括用户多端场景、多端业务等的token信息,包括用户id与多个token的映射关系,通过user_id与token之间一对多的映射,保证了用户多个端口登录的情况下各自维持有效登录token状态。
通过服务器内存缓存验证,本发明单点登录方法能快速接入新产品、新业务,并能提供高性能和高可用的服务,打通多业务线产品的登录,实现跨业务线Token验证,支持高并发场景及具备降级能力,在SDK验证未通过时可通过Token验证服务进行验证。
306、返回token有效信息。
当token经过步骤303通过验证时,返回该token值的有效信息。
307、返回失效信息。
当token未经过步骤303通过验证时,返回失效信息。
在本发明实施例中,所述单点登录接入方法建立多级token验证,所述Token验证SDK为对Token的初始验证防线,用于对所述token的有效性进行验证,当其失效时,可降级到所述Token验证服务中进行验证,不必立即访问DB数据库,不需要查询用户信息,加大了用户服务的稳定性及安全性。另外,本发明提供的单点登录接入方法通过多级token验证,降低DB数据库存储及访问压力,可按产品的业务场景,只需要判断当前用户登录态是否有效,无需要查询用户信即可完成访问登录。Token验证服务接入多场景业务,丰富Token对端上业务场景的把控,减少Token校验与对接端的耦合,解决Token并发压力,保证能支撑多种业务场景,满足多业务线、多端登录等场景业务组合的需求。
示例性的,如图5所示,本发明实施例提供一种单点登录接入方法的具体实施过程示意图。
本实施例通过SDK工具包作为初级防线进行本地验证,当接收到用户的访问请求,获取所述访问请求携带的用户token值后,SDK工具包获取本地TokenRedis缓存,以验证本地缓存是否存在所述token值,若存在,则进一步验证所述token值的有效性,判断其是否已过期,若token值已过期,则会返回token失效信息,若未过期则会返回所述token值对应的有效信息,即验证通过,操作结束,不会再对token进行降级进行其他层次的验证。
当SDK未检测出所述token值时,则启动降级验证机制,调用服务器内存的服务缓存验证。具体地,服务端采用EhCache和Redis作为缓存结构,其中EhCache作为一级缓存是第一道防线,其缓存有token信息,通过获取EhCache缓存,对用户访问请求携带的token信息进行匹配,当匹配成功则验证该token信息的有效性,有效则验证通过,返回token的有效信息,过期则返回token失效信息。进一步地,若EhCache缓存不存在所述token值,则访问Redis缓存,Redis缓存是Token服务的服务中心,可从中直接获取所述token值的信息。
进一步地,在对token的验证过程中,若检测到所述token信息过期,为降低缓存压力,可将EhCache缓存和本地缓存失效的token信息删除。更进一步的,Redis缓存通过调用Rand函数随机延长token的有效期,从而保持token有效性。
可以理解的是,在通过Redis缓存验证后,可将token信息保存写入本地TokenRedis缓存及一级EhCache缓存中,服务缓存验证,以便下次访问可快速通过token验证。
图6是本发明实施例提供的单点登录接入装置600的示意图,所述装置包括:
接收模块601,用于接收用户的访问请求,所述访问请求携带了用户的令牌token;
验证模块602,用于对所述令牌token进行验证,所述验证包括且顺序依次为初级缓存验证、一级服务缓存验证和二级服务缓存验证,所述token通过任何其中一级验证,则返回token有效信息;否则,返回token失效信息。
所述装置还包括显示模块,所述显示模块与所述调整模块相连,所述显示模块用于显示所述单点登录接入装置的数据信息及操作页面。
所述装置还可以包括输入模块,所述输入模块与所述显示模块相连,所述输入模块可包括按键,可用于输入用户id的账号、密码、名称等信息,所述单点登录接入过程操作页面可以在所述单点登录接入装置中的显示模块中显示,并且所述显示模块还可以显示所述用户的其他信息,并将此信息存储起来,方便用户随时进行查看。
其中,所述接收模块601在获用于用户的访问请求之后,可以将token值发送至所述验证模块602。
所述验证模块602接收到所述请求信息后,对所述token值至少经过初级缓存验证、一级服务缓存验证和二级服务缓存验证中的一级验证,判断当前用户登录态是否有效,若有效,返回token有效信息,否则,返回异常信息。
需要说明的是,验证模块602包括初级验证模块和服务缓存验证模块,其中初级验证模块基于客户端本地缓存,用于验证所述token值是否存在本地缓存中,并判断所述token值的时效性,当所述token存在并在有效期内时,返回所述token有效信息,否则进入服务缓存验证模块进行验证或返回异常信息。服务缓存验证模块用于对所述token值进行一级服务缓存验证和二级服务缓存验证。示例地,初级验证模块采用SDK工具包缓存token数据信息,服务缓存验证模块采用Redis Cluster缓存Token的数据信息。具体地,所示服务缓存验证模块包括第一级缓存子模块和第二级缓存子模块,其中第一级缓存子模块用于对Token进行第一服务缓存验证,验证token是否存在所述第一级缓存结构并且是否有效,若存在并有效,返回所述token有效信息。若所述token不存在,则通过第二级缓存子模块直接读取token信息并返回token的有效信息。
具体地,如图7所示,所述验证模块602设置三层缓存结构:第一层(SDK-Redis):依赖客户端本地缓存,通过SDK工具包承载当前节点的token验证工作,能较少对服务器的开销与依赖,但时间不宜过长,对token的时效性有影响。进一步地,可迁入Token验证SDK,更新所述用户终端的业务场景。第二层(TokenSvr-Ehcache):是服务端一级缓存,本实施例采用Ehcache缓存,作为token服务的第一道防线,用于进行一级服务缓存验证,其依赖token-svc的应用服务器的内存资源,能快速响应服务端token验证,时效较为及时。同时,其可有效减少Redis压力,并能在Token数据失效、变动时采用Redis发布订阅,有效删除冗余Cache数据。第三层(TokenSvr-Redis):是服务端二级缓存,token有效的最终缓存载体,用于进行二级服务缓存验证。本实施例采用Redis缓存,其是token验证服务最终有效一致性的保障载体。
通过层层缓存结构,本实施例所提供单点登录接入装置可打通多业务线产品的登录、互踢和拉黑等及时性问题,实现跨业务线Token验证。并且能快速接入新产品、新业务,以提供高性能和高可用的服务。
基于TokenSDK验证和Token验证服务,可获取单用户与多token的映射关系,能直接通过多token实现多个业务线登录,并且相互不影响。与此同时在维护多token与用户id的关联关系的score可以作为多端登录的渠道id,并以此作为互斥关系实现互踢与渠道拉黑。因为维护了用户与多token的映射关系,作为支持多业务线有天然优势,N个业务线,即对应N个渠道,也就是N个token。通过任何一个渠道的token均能反查到对应用户,从而实现跨业务线验证。
为解决上述技术问题,本申请实施例还提供计算机设备。具体请参阅图8,图8为本实施例计算机设备基本结构框图。
所述计算机设备8包括通过***总线相互通信连接存储器81、处理器82、网络接口83。需要指出的是,图中仅示出了具有组件81-83的计算机设备8,但是应理解的是,并不要求实施所有示出的组件,可以替代的实施更多或者更少的组件。其中,本技术领域技术人员可以理解,这里的计算机设备是一种能够按照事先设定或存储的指令,自动进行数值计算和/或信息处理的设备,其硬件包括但不限于微处理器、专用集成电路(ApplicationSpecific Integrated Circuit,ASIC)、可编程门阵列(Field-Programmable GateArray,FPGA)、数字处理器(Digital Signal Processor,DSP)、嵌入式设备等。
所述计算机设备可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。所述计算机设备可以与用户通过键盘、鼠标、遥控器、触摸板或声控设备等方式进行人机交互。
所述存储器81至少包括一种类型的可读存储介质,所述可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等。在一些实施例中,所述存储器81可以是所述计算机设备8的内部存储单元,例如该计算机设备8的硬盘或内存。在另一些实施例中,所述存储器81也可以是所述计算机设备8的外部存储设备,例如该计算机设备8上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(FlashCard)等。当然,所述存储器81还可以既包括所述计算机设备8的内部存储单元也包括其外部存储设备。本实施例中,所述存储器81通常用于存储安装于所述计算机设备8的操作***和各类应用软件,例如单点登录接入方法的程序代码等。此外,所述存储器81还可以用于暂时地存储已经输出或者将要输出的各类数据。
所述处理器82在一些实施例中可以是中央处理器(Central Processing Unit,CPU)、控制器、微控制器、微处理器、或其他数据处理芯片。该处理器82通常用于控制所述计算机设备8的总体操作。本实施例中,所述处理器82用于运行所述存储器81中存储的程序代码或者处理数据,例如运行所述单点登录接入方法的程序代码。
所述网络接口83可包括无线网络接口或有线网络接口,该网络接口83通常用于在所述计算机设备8与其他电子设备之间建立通信连接。
本发明的实施例还提出一种存储介质,其上存储有计算机程序,该程序被处理器执行时实现单点登录接入方法的步骤。
在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行***、装置或设备(如基于计算机的***、包括处理器的***或其他可以从指令执行***、装置或设备取指令并执行指令的***)使用,或结合这些指令执行***、装置或设备而使用。就本说明书而言,“计算机可读介质”可以是任何可以包含、存储、通信、传播或传输程序以供指令执行***、装置或设备或结合这些指令执行***、装置或设备而使用的装置。
计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(RAM),只读存储器(ROM),可擦除可编辑只读存储器(EPROM或闪速存储器),光纤装置,以及便携式光盘只读存储器(CDROM)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。
应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行***执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
尽管已经示出和描述了本发明的实施例,本领域的普通技术人员可以理解:在不脱离本发明的原理和宗旨的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由权利要求及其等同物限定。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和替换,这些改进和替换也应视为本发明的保护范围。
Claims (7)
1.一种单点登录接入方法,其特征在于,包括以下步骤:
接收用户的访问请求,所述访问请求携带了用户的令牌token;
初级缓存验证,验证所述token是否缓存在客户端的本地缓存中,若存在则判断所述token的有效性,当有效时,返回token的有效信息,过期则返回失效信息,若token不存在,则进行一级服务缓存验证;
一级服务缓存验证,验证所述token是否存在一级缓存中,若存在则判断所述token的有效性,当有效时,返回token的有效信息,过期则返回失效信息,若所述token不存在,则进行二级服务缓存验证;
二级服务缓存验证,从二级缓存中直接获取所述token的信息,并返回token的有效信息;
一级缓存和二级缓存是服务器的二级内存缓存资源,一级缓存存储部分token信息,二级缓存存储所有token信息。
2.根据权利要求1所述的单点登录接入方法,其特征在于,所述验证还包括获取用户多个token的映射关系。
3.根据权利要求1所述的单点登录接入方法,其特征在于,所述二级服务缓存验证还包括:
延长所述token的有效期。
4.根据权利要求1所述的单点登录接入方法,其特征在于,所述方法还包括:删除所述初级缓存验证或一级缓存验证校验的已过期的token信息。
5.一种单点登录接入装置,其特征在于,包括:
接收模块,用于用户的访问请求,所述访问请求携带用户的令牌token;
验证模块,用于
初级缓存验证,验证所述token是否缓存在本地缓存中,若存在则判断所述token的有效性,当有效时,返回token的有效信息,过期则返回失效信息,若token不存在,则进行一级服务缓存验证;
一级服务缓存验证,验证所述token是否存在一级缓存中,若存在则判断所述token的有效性,当有效时,返回token的有效信息,过期则返回失效信息,若所述token不存在,则进行二级服务缓存验证;
二级服务缓存验证,从二级缓存中直接获取所述token的信息,并返回token的有效信息;
一级缓存和二级缓存是服务器的二级内存缓存资源,一级缓存存储部分token信息,二级缓存存储所有token信息。
6.一种计算机设备,包括存储器、处理器和网络接口,所述存储器存储有计算机程序,其征在于,所述处理器执行所述计算机程序时实现权利要求1至4中任一项所述单点登录接入方法的步骤。
7.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至4中任一项所述单点登录接入方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011424231.7A CN112511316B (zh) | 2020-12-08 | 2020-12-08 | 单点登录接入方法、装置、计算机设备及可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011424231.7A CN112511316B (zh) | 2020-12-08 | 2020-12-08 | 单点登录接入方法、装置、计算机设备及可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112511316A CN112511316A (zh) | 2021-03-16 |
CN112511316B true CN112511316B (zh) | 2023-04-07 |
Family
ID=74971524
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011424231.7A Active CN112511316B (zh) | 2020-12-08 | 2020-12-08 | 单点登录接入方法、装置、计算机设备及可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112511316B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113347163B (zh) * | 2021-05-20 | 2023-05-16 | 远景智能国际私人投资有限公司 | 单点登录方法、装置、设备及介质 |
CN113626789A (zh) * | 2021-08-09 | 2021-11-09 | 北京轻松筹信息技术有限公司 | 用户操作请求的处理方法、装置及电子设备 |
CN114389851B (zh) * | 2021-12-17 | 2023-07-18 | 苏州浪潮智能科技有限公司 | 交换机维护服务身份验证方法、***、终端及存储介质 |
CN115037480A (zh) * | 2022-06-07 | 2022-09-09 | 抖音视界(北京)有限公司 | 设备认证和校验的方法、装置、设备和存储介质 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9021135B2 (en) * | 2011-04-27 | 2015-04-28 | Perspecsys Corp. | System and method for tokenization of data for storage in a cloud |
CN105323222B (zh) * | 2014-07-11 | 2018-08-24 | 博雅网络游戏开发(深圳)有限公司 | 登录验证方法和*** |
CN108897615B (zh) * | 2018-05-31 | 2023-06-13 | 康键信息技术(深圳)有限公司 | 秒杀请求处理方法、应用服务器集群及存储介质 |
CN109117609B (zh) * | 2018-08-31 | 2021-01-29 | 中国农业银行股份有限公司 | 一种请求拦截方法及装置 |
CN110855672A (zh) * | 2019-11-15 | 2020-02-28 | 无锡家校邦网络科技有限公司 | 一种基于jwt的可手动撤销的授权方法 |
-
2020
- 2020-12-08 CN CN202011424231.7A patent/CN112511316B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN112511316A (zh) | 2021-03-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112511316B (zh) | 单点登录接入方法、装置、计算机设备及可读存储介质 | |
CN109844783B (zh) | 不可变的密码保护的分类账支持的数据库 | |
CN111783075B (zh) | 基于密钥的权限管理方法、装置、介质及电子设备 | |
US11347876B2 (en) | Access control | |
US20230328109A1 (en) | Data access policies | |
US20200153831A1 (en) | Refresh token for credential renewal | |
CN109691057B (zh) | 经由私人内容分发网络可交换地取回敏感内容 | |
US11038894B2 (en) | Providing selective access to resources | |
CN103959706B (zh) | 朝向内容消费者迁移经过认证的内容 | |
US20150033327A1 (en) | Systems and methodologies for managing document access permissions | |
US10659516B2 (en) | Data caching and resource request response | |
US8898318B2 (en) | Distributed services authorization management | |
CN112528262A (zh) | 基于令牌的应用程序访问方法、装置、介质及电子设备 | |
CN111818088A (zh) | 授权模式管理方法、装置、计算机设备及可读存储介质 | |
CN114513350A (zh) | 身份校验方法、***和存储介质 | |
CN112100590A (zh) | 一种旅游大数据云平台及其用户权限管理的方法 | |
CN112511565B (zh) | 请求响应方法、装置、计算机可读存储介质及电子设备 | |
US11075922B2 (en) | Decentralized method of tracking user login status | |
US11146379B1 (en) | Credential chaining for shared compute environments | |
US20210203650A1 (en) | Data message authentication based on a random number | |
CN110309213A (zh) | 一种数据库访问控制方法、装置、***、介质及设备 | |
WO2022193494A1 (zh) | 权限控制方法及服务器、终端、存储介质和计算机程序 | |
CN115098893A (zh) | 基于区块链的数据存储方法及装置 | |
CN109684818A (zh) | 一种防止机主登录密码泄露的跨终端式的服务器登录方法 | |
CN112069517B (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 |