CN110381031B - 单点登录方法、装置、设备及计算机可读存储介质 - Google Patents
单点登录方法、装置、设备及计算机可读存储介质 Download PDFInfo
- Publication number
- CN110381031B CN110381031B CN201910541960.1A CN201910541960A CN110381031B CN 110381031 B CN110381031 B CN 110381031B CN 201910541960 A CN201910541960 A CN 201910541960A CN 110381031 B CN110381031 B CN 110381031B
- Authority
- CN
- China
- Prior art keywords
- ticket
- session
- authentication identifier
- client
- 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
Links
Images
Classifications
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明涉及网络安全技术领域,公开了一种单点登录方法,包括以下步骤:接收客户端发送的首次登录请求,在Redis中校验用户信息;若校验无误,生成会话session和带有所述session的认证标识ticket;将所述ticket和所述首次登录请求对应的系统地址发送给所述客户端,授权所述客户端登录所述系统地址;基于shiro框架将所述session存储到所述Redis中;接收所述客户端发送的再次登录请求和所述ticket,基于所述shiro判断所述Redis中是否存在与所述ticket对应的session;若所述Redis中存在与所述ticket对应的session,基于所述ticket对应的session授权客户端登录所述再次登录请求中对应的登录地址。本发明还公开了一种单点登录装置、设备及计算机可读存储介质。本发明减轻了系统数据存储的负担,有效提高了系统处理数据的速度。
Description
技术领域
本发明涉及网络安全技术领域,尤其涉及一种单点登录方法、装置、设备及计算机可读存储介质。
背景技术
单点登录(SingleSignOn,SSO),是指基于用户/会话认证的一个过程,用户只需一次性提供凭证(仅一次登录),就可以访问多个应用。目前市面上的主要是基于CAS单点登录服务器实现,虽然把登录功能从系统中解耦出来,达到适配与异构系统的会话统一管理。
但是,由于存在网络IO通讯,导致其可用性难以保证,并且,以线上用户的应用单点登录接入中,客户端和服务端的登录流程比较复杂。因此,需要一种新的技术方案,可以减少客户端与服务端的登录流程,提高系统处理速度。
发明内容
本发明的主要目的在于提供一种单点登录方法、装置、设备及计算机可读存储介质,旨在解决如何减少客户端与服务端的登录流程,提高系统处理速度的技术问题。
为实现上述目的,本发明提供的一种单点登录方法,所述单电单登录方法包括以下步骤:
接收客户端发送的首次登录请求,在数据库Redis中校验用户信息,其中,所述客户端发送的登录请求至少包括登录地址、登录端口、用户ID及对应用户ID的密码;
若校验无误,则生成会话session和带有所述会话session的认证标识ticket;
将所述认证标识ticket和所述首次登录请求对应的系统地址发送给所述客户端,并授权所述客户端登录所述系统地址;
基于shiro框架将所述会话session存储到所述数据库Redis中;
接收所述客户端发送的再次登录请求和所述认证标识ticket,基于所述shiro判断所述数据库Redis中是否存在与所述认证标识ticket对应的session;
若所述数据库Redis中存在与所述认证标识ticket对应的会话session,则基于所述认证标识ticket对应的会话session,授权所述客户端登录所述再次登录请求中对应的登录地址。
可选地,在所述接收客户端发送的首次登录请求,在数据库Redis中校验用户信息的步骤之前,还包括:
搭建数据库Redis;
获取用户身份信息并存储在所述数据库Redis中,所述用户身份信息至少包括用户ID及对应用户ID的密码。
可选地,所述接收所述客户端发送的再次登录请求和所述认证标识ticket,基于所述shiro判断所述数据库Redis中是否存在与所述认证标识ticket对应的会话session包括:
接收所述客户端发送的再次登录请求和所述认证标识ticket;
解析所述认证标识ticket,获得述认证标识ticket中的sessionid;
判断所述数据库Redis中是否存在与所述认证标识ticket中的sessionid相同的sessionid;
若所述数据库Redis中存在与所述认证标识ticket中的sessionid相同的sessionid,则确定所述数据库Redis中存在与所述认证标识ticket对应的会话session。
可选地,所述若所述数据库Redis中存在与所述认证标识ticket对应的会话session,基于所述认证标识ticket对应的会话session授权客户端登录所述再次登录请求中对应的登录地址包括:
若所述数据库Redis中存在与所述认证标识ticket对应的会话session,则提取所述认证标识ticket对应的会话session中的登录信息,其中,所述登录信息包括用户ID及对应用户ID的密码;
基于所述登录信息,授权所述客户端登录所述再次登录请求中对应的登录地址。
可选地,在所述基于所述登录信息,授权所述客户端登录所述再次登录请求中对应的登录地址的步骤之后,还包括:
基于所述认证标识ticket对应的会话session,获取用户身份信息;
同步用户身份信息到所述再次登录请求中对应的系统地址。
可选地,在所述将所述认证标识ticket和所述首次登录请求对应的系统地址发送给所述客户端,授权所述客户端登录所述系统地址的步骤之后,还包括:
接收客户端发送的注销请求和所述认证标识ticket;
基于所述认证标识ticket对应的会话session,获取由所述认证标识ticket对应的会话session注册的系统地址;
关闭所述认证标识ticket对应的会话session,并注销所有所述认证标识ticket对应的会话session授权登录的账户。
可选地,在所述将所述认证标识ticket和所述首次登录请求对应的系统地址发送给所述客户端,授权所述客户端登录所述系统地址的步骤之前,还包括:
设置所述认证标识ticket的有效时间;
实时检测所述认证标识ticket是否过期;
若所述认证标识ticket已过期,则关闭所述认证标识ticket对应的会话session并注销以所述会话session授权登录系统的账户。
进一步地,为实现上述目的,本发明还提供一种单点登录装置,所述单点登录装置包括:
校验模块,用于接收客户端发送的首次登录请求,在数据库Redis中校验用户信息;
生成模块,用于若校验无误,生成会话session和带有所述会话session的认证标识ticket;
第一授权模块,将所述认证标识ticket和所述首次登录请求对应的系统地址发送给所述客户端,授权所述客户端登录所述系统地址;
存储模块,用于基于shiro框架将所述会话session存储到所述数据库Redis中;
判断模块,用于接收所述客户端发送的再次登录请求和所述认证标识ticket,基于所述shiro判断所述数据库Redis中是否存在与所述认证标识ticket对应的会话session;
第二授权模块,用于若所述数据库Redis中存在与所述认证标识ticket对应的会话session,基于所述认证标识ticket对应的会话session授权客户端登录所述再次登录请求中对应的登录地址。
可选地,所述单点登录装置还包括:
搭建模块,用于搭建数据库Redis;
存储模块,用于获取用户身份信息并存储在所述数据库Redis中,所述用户身份信息至少包括用户ID及对应用户ID的密码。
可选地,所述判断模块包括:
接收单元,用于接收所述客户端发送的再次登录请求和所述认证标识ticket;
解析单元,用于解析所述认证标识ticket,获得述认证标识ticket中的sessionid;
判断单元,用于判断所述数据库Redis中是否存在与所述认证标识ticket中的sessionid相同的sessionid;
确定单元,用于若所述数据库Redis中存在与所述认证标识ticket中的sessionid相同的sessionid,则确定所述数据库Redis中存在与所述认证标识ticket对应的会话session。
可选地,所述第二授权模块包括:
提取单元,用于若所述数据库Redis中存在与所述认证标识ticket对应的会话session,则提取所述认证标识ticket对应的会话session中的登录信息,其中,所述登录信息包括用户ID及对应用户ID的密码;
授权单元,用于基于所述登录信息,授权所述客户端登录所述再次登录请求中对应的登录地址。
可选地,所述单点登录装置还包括:
第一获取模块,用于基于所述认证标识ticket对应的会话session,获取用户身份信息;
同步模块,用于同步用户身份信息到所述再次登录请求中对应的系统地址。
可选地,所述单点登录装置还包括:
接收模块,用于接收客户端发送的注销请求和所述认证标识ticket;
第二获取模块,用于基于所述认证标识ticket对应的会话session,获取由所述认证标识ticket对应的会话session注册的系统地址;
第一注销模块,用于关闭所述认证标识ticket对应的会话session,并注销所有所述认证标识ticket对应的会话session授权登录的账户。
可选地,所述单点登录装置还包括:
设置模块,用于设置所述认证标识ticket的有效时间;
检测模块,用于实时检测所述认证标识ticket是否过期;
第二注销模块,用于若所述认证标识ticket已过期,则关闭所述认证标识ticket对应的会话session并注销以所述会话session授权登录系统的账户。
进一步地,为实现上述目的,本发明还提供一种单点登录设备,所述单点登录设备包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的单点登录程序,所述单点登录程序被所述处理器执行时实现如上述任一项所述的单点登录方法的步骤。
进一步地,为实现上述目的,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有单点登录程序,所述单点登录程序被处理器执行时实现如上述任一项所述的单点登录方法的步骤。
本发明基于shiro框架和Redis数据库实现会话共享,单点登录的功能,当接收到客户端发送的首次登录请求时,在所述数据库Redis中校验用户信息,生成会话session和带有所述会话session的认证标识ticket,并在收到再次登录请求时,基于shiro框架判断所述数据库Redis中是否存在与所述认证标识ticket对应的会话session,若所述数据库Redis中存在与所述认证标识ticket对应的会话session,再基于所述认证标识ticket对应的会话session授权客户端登录所述再次登录请求中对应的登录地址将会话管理控制在同一存储系统中,简化了服务端对用户信息进行认证,授权客户端请求的繁杂过程,此外,基于会话存储用户信息,大大减轻了系统数据存储的负担,有效提高了系统处理数据的速度。
附图说明
图1为本发明实施例方案涉及的单点登录设备运行环境的结构示意图;
图2为本发明单点登录方法第一实施例的流程示意图;
图3为本发明单点登录方法第二实施例的流程示意图;
图4为图2中步骤S40一实施例的细化流程示意图;
图5为图2中步骤S50一实施例的细化流程示意图;
图6为本发明单点登录方法第三实施例的流程示意图;
图7为本发明单点登录方法第四实施例的流程示意图;
图8为本发明单点登录方法第五实施例的流程示意图;
图9为本发明单点登录装置一实施例的功能模块示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
本发明提供一种单点登录设备。
参照图1,图1为本发明实施例方案涉及的单点登录设备运行环境的结构示意图。
如图1所示,该单点登录设备包括:处理器1001,例如CPU,通信总线1002、用户接口1003,网络接口1004,存储器1005。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(Display)、输入单元比如键盘(Keyboard),网络接口1004可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。存储器1005可以是高速RAM存储器,也可以是稳定的存储器(non-volatile memory),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。
本领域技术人员可以理解,图1中示出的单点登录设备的硬件结构并不构成对单点登录设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
如图1所示,作为一种计算机可读存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及计算机程序。其中,操作系统是管理和控制单点登录设备和软件资源的程序,支持单点登录程序以及其它软件和/或程序的运行。
在图1所示的单点登录设备的硬件结构中,网络接口1004主要用于接入网络;用户接口1003主要用于侦测确认指令和编辑指令等。而处理器1001可以用于调用存储器1005中存储的单点登录程序,并执行以下单点登录方法的各实施例的操作。
基于上述单点登录设备硬件结构,提出本发明单点登录方法的各个实施例。
参照图2,图2为本发明单点登录方法第一实施例的流程示意图。本实施例中,所述单点登录方法包括以下步骤:
步骤S10:接收客户端发送的首次登录请求,在数据库Redis中校验用户信息,其中,所述客户端发送的登录请求至少包括登录地址、登录端口、用户ID及对应用户ID的密码;
目前,市面上主要是基于CAS单点登录服务器实现,虽然把登录功能从系统中解耦出来,达到适配与异构系统的会话统一管理。但是,由于存在网络IO通讯,导致其可用性难以保证,并且,以线上用户的APP应用单点登录接入中,客户端和服务端的登录流程比较复杂。
本实施例中,接收客户端发送的首次登录请求时,提取首次登录请求中的用户ID,查找数据库Redis中是否有所述用户ID,若所述数据库Redis中存在所述用户ID,则校验对应所述用户ID的密码是否一致。
步骤S20:若校验无误,生成会话session和带有所述会话session的认证标识ticket;
本实施例中,接收客户端发送的首次登录请求时,提取首次登录请求中的用户ID,查找数据库Redis中是否有所述用户ID,若所述数据库Redis中存在所述用户ID,则校验对应所述用户ID的密码是否一致,若密码无误,生成本次请求登录的会话session和带有所述会话session的认证标识ticket,并将所述会话session存储到所述数据库Redis中,将用户已登录状态信息存储在所述认证标识ticket中,其中,所述会话session由服务器创建,用于记录本次请求的信息,如请求登录的地址、登录端口、用户ID及对应用户ID的密码;所述认证标识ticket是一个唯一的,任意组合的字符串,由shiro安全框架生成,生成方式不限。
步骤S30:将所述认证标识ticket和所述首次登录请求对应的系统地址发送给所述客户端,授权所述客户端登录所述系统地址;
本实施例中,提取所述首次登录请求中,请求登录的系统地址,发送所述系统地址及所述认证标识ticket到发起首次登录请求的客户端。客户端接收所述系统地址及授权登录信息,访问所述系统地址对应服务器,跳转到所述系统地址的登录页面进行登录。需要知道的是,本实施例中,所述系统地址的域名地址不限,可以是http://、www、.com、.net等,域名等级也不限,可以是一级域名、二级域名及三级域名。
步骤S40:基于shiro框架将所述会话session存储到所述数据库Redis中;
本实施例中,所述shiro框架是Java中的一种权限框架,能够清晰的处理认证、授权、管理会话以及密码加密。当接收客户端发送的首次登录请求,创建本次请求的会话session,将所述用户信息存储在所述会话session中,基于shiro安全框架,对所述会话session进行管理,存储在数据库Redis中,当接收到客户端的再次登录请求,共享所述会话session。
步骤S50:接收所述客户端发送的再次登录请求和所述认证标识ticket,基于所述shiro判断所述数据库Redis中是否存在与所述认证标识ticket对应的会话session;
本实施例中,当用户已经在A应用完成首次登录了,需要在B应用上以相同账号进行登录时,由客户端发送再次登录请求及所述认证标识ticket,服务端接收所述客户端发送的再次登录请求和所述认证标识ticket,基于所述shiro框架,查询所述数据库Redis中是否存在与所述认证标识ticket对应的session,以获取用户的登录信息,进而在B应用上进行登录。
步骤S60:若所述数据库Redis中存在与所述认证标识ticket对应的会话session,则基于所述认证标识ticket对应的会话session,授权所述客户端登录所述再次登录请求中对应的登录地址。
本实施例中,基于所述shiro框架,查询所述数据库Redis中是否存在与所述认证标识ticket对应的session,若查询结果为所述数据库Redis中存在与所述认证标识ticket对应的session,共享所述认证标识ticket对应的session,授权客户端登录B应用,并存储B应用的登录地址到所述会话session中。
本实施例基于shiro框架和Redis数据库实现会话共享,单点登录的功能,当接收到客户端发送的首次登录请求时,在所述数据库Redis中校验用户信息,生成会话session和带有所述会话session的认证标识ticket,并在收到再次登录请求时,基于shiro框架判断所述数据库Redis中是否存在与所述认证标识ticket对应的会话session,若所述数据库Redis中存在与所述认证标识ticket对应的会话session,再基于所述认证标识ticket对应的会话session授权客户端登录所述再次登录请求中对应的登录地址将会话管理控制在同一存储系统中,简化了服务端对用户信息进行认证,授权客户端请求的繁杂过程,此外,基于会话存储用户信息,大大减轻了系统数据存储的负担,有效提高了系统处理数据的速度。
参照图3,图3为本发明单点登录方法第二实施例的流程示意图。本实施例中,在上述步骤S10之前包括:
步骤S01:搭建数据库Redis;
步骤S02:获取用户身份信息并存储在Redis中,所述用户身份信息至少包括用户ID及对应用户ID的密码。
本实施例中,搭建数据库Redis,进而获取用户验证信息,所述用户验证信息包括用户ID及对应所述用户ID的密码,将所述用户验证信息存储在数据库Redis中,作为校验用户的场所,此外,基于shiro的框架进行管理会话,将服务器应对客户端发送的登录、访问请求产生的会话session,统一存储在数据库Redis中。
参照图4,图4为图2中步骤S40一实施例的细化流程示意图。基于上述实施例,本实施例中,上述步骤S40包括:
步骤S401:接收所述客户端发送的再次登录请求和所述认证标识ticket;
步骤S402:解析所述认证标识ticket,获得所述认证标识ticket中的sessionid;
步骤S403:判断所述数据库Redis中是否存在与所述认证标识ticket中的sessionid相同的sessionid;
步骤S404:若所述数据库Redis中存在与所述认证标识ticket中的sessionid相同的sessionid,则确定所述数据库Redis中存在与所述认证标识ticket对应的会话session。
本实施例中,当用户已经在A应用完成首次登录了,需要在B应用上以相同账号进行登录时,客户端生成再次登录请求,发送所述再次登录请求及所述认证标识ticket发送到服务器,服务器接收所述再次登录请求及所述认证标识ticket。解析所述认证标识ticket,获得所述认证标识ticket对应的会话session的sessionid,其中,sessionid为会话session的id,由服务器自动分配,sessionid是唯一的,因此,可以用来判断2个session是否为同一次会话。基于获取的sessionid,查找所述数据库Redis数据库中是否存在与所述认证标识ticket中的sessionid相同的sessionid,若所述数据库Redis数据库中存在与所述认证标识ticket中的sessionid相同的sessionid,则确定Redis数据库中是否存在与所述认证标识ticket对应的会话session。
参照图5,图5为图2中步骤S50一实施例的细化流程示意图。基于上述实施例,本实施例中,上述步骤S50包括:
步骤S501:若所述数据库Redis中存在与所述认证标识ticket对应的session,则提取所述认证标识ticket对应的会话session中的登录信息,其中,所述登录信息包括用户ID及对应用户ID的密码;
步骤S502:基于所述登录信息,授权所述客户端登录所述再次登录请求中对应的登录地址。
本实施例中,根据会话session中存储有用户的登录信息,所述登录信息包括用户ID及对应用户ID的密码,若查找所述数据库Redis数据库,确定所述数据库Redis数据库中存在与所述认证标识ticket对应的会话session,则说明当前持有所述会话session的用户为合法用户,且所述用户为“已授权”或“已登录”等等之类的状态,则授权该用户登录所述再次登录请求中对应的登录地址。
例如,当用户已经在A应用完成首次登录了,需要在B应用上以相同账号进行登录时,客户端生成再次登录请求,客户端生成再次登录请求,发送所述再次登录请求及用户在A应用完成首次登录时生成的ticket发送到服务器,服务器接收所述再次登录请求及所述认证标识ticket,在所述数据库Redis中查找与所述认证标识ticket对应的会话session,获取所述数据库Redis数据库中与所述认证标识ticket对应的会话session,提取所述认证标识ticket对应的会话session中的登录信息,授权所述客户端登录B应用。
参照图6,图6为本发明单点登录方法第三实施例的流程示意图。
基于上述图5所示实施例,在本实施例中,所述单点登录方法在所述步骤S502之后,还包括:
步骤S503:基于所述认证标识ticket对应的session,获取用户身份信息;
步骤S504:同步用户身份信息到所述再次登录请求中对应的系统地址。
本实施例中,当用户已经在A应用完成首次登录了,需要在B应用上以相同账号进行登录时,如果在B应用新建用户,则可能造成用户信息不全,或者数据冲突等问题,而当A应用与B应用的用户信息属于同一用户,为方便用户登录,且避免产生多份相同信息的数据,可以利用Redis数据库中的会话session中所存储的用户身份信息,在授权用户登录B应用时,将所述会话session中的用户身份信息同步到B应用上。
例如,在收到用户登录B应用的登录请求及用户在A应用完成首次登录后生成ticket,识别在Redis数据库中与所述认证标识ticket对应的会话session,提取Redis数据库中与所述认证标识ticket对应的会话session中存储的用户身份信息,将所述用户身份信息映射到B应用,进而达到同步用户身份信息到B应用。
参照图7,图7为本发明单点登录方法第四实施例的流程示意图。本实施例中,在上述步骤S20之后,还包括:
步骤S001:接收客户端发送的注销请求和所述认证标识ticket;
步骤S002:基于所述认证标识ticket对应的会话session,获取由所述认证标识ticket对应的会话session注册的系统地址;
步骤S003:关闭所述认证标识ticket对应的会话session并注销所有所述认证标识ticket对应的会话session授权登录的账户。
本实施例中,当用户需要退出当前登录状态时,向服务器发送注销请求和所述认证标识ticket,服务器接收所述客户端发送的所述注销请求和所述认证标识ticket,查找Redis数据库中与所述认证标识ticket对应的会话session,提取所述认证标识ticket对应的会话session记录的已授权登录地址信息,向所有授权登录地址发起注销请求。各授权登录地址接收所述注销请求,注销所有以所述认证标识ticket对应的会话session授权登录地址上的账户。
比如,当用户需要退出当前在A应用上的登录状态时,向服务器发送注销请求和首次完成登录生成的ticket,服务器接收所述注销请求和所述认证标识ticket,查找Redis数据库中与所述认证标识ticket对应的会话session,提取所述认证标识ticket对应的会话session记录的已授权登录地址信息,向所有授权登录地址发起注销请求。各授权登录地址接收所述注销请求,注销所有以所述认证标识ticket对应的session授权登录地址上的账户。
参照图8,图8为本发明单点登录方法第五实施例的流程示意图。本实施例中,在上述步骤S20之前,还包括:
步骤S0001:设置所述认证标识ticket的有效时间;
步骤S0002:实时检测所述认证标识ticket是否过期;
步骤S0003:若所述认证标识ticket已过期,关闭所述认证标识ticket对应的会话session并注销以所述会话session授权登录系统的账户。
本实施例中,通常用户在登录成功A应用时,若之后用户未自行发起注销请求,而又担心用户自己的账号信息安全。为了防止用户忘记注销,因而可以设置所述认证标识ticket的有效时间,当所述认证标识ticket还未失效,在有效时间内,则用户在请求登录B应用时,可以发送再次登录请求和所述认证标识ticket,进而以所述认证标识ticket在所述数据库Redis中查找对应的会话session,达到授权登录的目的;而当用户长时间未进行注销操作,也未再次登录,所述认证标识ticket也过了有效时间,已经失效,则无法再利用所述认证标识ticket进行单点登录操作,需要用户重新进行首次登录操作,进行认证授权。
进一步地,本实施例中,所述认证标识ticket的有效时间具体时长可由用户自定义设置。
本发明还提供一种单点登录装置。
参照图9,图9为本发明单点登录装置一实施例的功能模块示意图。本实施例中,所述单点登录装置包括:
校验模块10,用于接收客户端发送的首次登录请求,在数据库Redis中校验用户信息;
生成模块20,用于若校验无误,生成会话session和带有所述会话session的认证标识ticket;
第一授权模块30,将所述认证标识ticket和所述首次登录请求对应的系统地址发送给所述客户端,授权所述客户端登录所述系统地址;
存储模块40,用于基于shiro框架将所述会话session存储到所述数据库Redis中;
判断模块50,用于接收所述客户端发送的再次登录请求和所述认证标识ticket,基于所述shiro判断所述数据库Redis中是否存在与所述认证标识ticket对应的会话session;
第二授权模块60,用于若所述数据库Redis中存在与所述认证标识ticket对应的会话session,基于所述认证标识ticket对应的会话session授权客户端登录所述再次登录请求中对应的登录地址。
本实施例中,校验模块10接收客户端发送的首次登录请求,在数据库Redis中校验用户信息;生成模块20在校验所述用户信息无误后,生成会话session和带有所述会话session的认证标识ticket,第一授权模块30将所述认证标识ticket和所述首次登录请求对应的系统地址发送到所述客户端,授权所述客户端登录所述系统地址,存储模块40基于shiro框架将所述会话session存储到所述数据库Redis中,判断模块50接收所述客户端发送的再次登录请求和所述认证标识ticket,基于所述shiro框架判断所述数据库Redis中是否存在与所述认证标识ticket对应的会话session,第二授权模块60接收判断模块40的判断结果,若所述数据库Redis中存在与所述认证标识ticket对应的会话session,基于所述认证标识ticket对应的会话session授权客户端登录所述再次登录请求中对应的登录地址。
本发明还提供一种计算机可读存储介质。
本实施例中,所述计算机可读存储介质上存储有单点登录程序,所述单点登录程序被处理器执行时实现如上述任一项实施例中所述的单点登录方法的步骤。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM)中,包括若干指令用以使得一台终端(可以是手机,计算机,服务器或者网络设备等)执行本发明各个实施例所述的方法。
上面结合附图对本发明的实施例进行了描述,但是本发明并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本发明的启示下,在不脱离本发明宗旨和权利要求所保护的范围情况下,还可做出很多形式,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,这些均属于本发明的保护之内。
Claims (9)
1.一种单点登录方法,其特征在于,所述单点登录方法包括以下步骤:
接收客户端发送的首次登录请求,在数据库Redis中校验用户信息,其中,所述客户端发送的登录请求至少包括登录地址、登录端口、用户ID及对应用户ID的密码;
若校验无误,则生成会话session和带有所述会话session的认证标识ticket;
将所述认证标识ticket和所述首次登录请求对应的系统地址发送给所述客户端,并授权所述客户端登录所述系统地址;
基于shiro框架将所述会话session存储到所述数据库Redis中;
接收所述客户端发送的再次登录请求和所述认证标识ticket,判断所述再次登录请求对应的应用是否与首次登录请求对应的应用相同;
若否,则判断再次登录请求对应的应用与首次登录请求对应的应用是否应用同一所述数据库Redis;
若相同或若是,则基于所述shiro判断所述数据库Redis中是否存在与所述认证标识ticket对应的session;
若所述数据库Redis中存在与所述认证标识ticket对应的会话session,则提取所述认证标识ticket对应的会话session中的登录信息,其中,所述登录信息包括用户ID及对应用户ID的密码;
基于所述登录信息,授权所述客户端登录所述再次登录请求中对应的应用。
2.如权利要求1所述的单点登录方法,其特征在于,在所述接收客户端发送的首次登录请求,在数据库Redis中校验用户信息的步骤之前,还包括:
搭建数据库Redis;
获取用户身份信息并存储在所述数据库Redis中,所述用户身份信息至少包括用户ID及对应用户ID的密码。
3.如权利要求1所述的单点登录方法,其特征在于,所述接收所述客户端发送的再次登录请求和所述认证标识ticket,基于所述shiro判断所述数据库Redis中是否存在与所述认证标识ticket对应的会话session包括:
接收所述客户端发送的再次登录请求和所述认证标识ticket;
解析所述认证标识ticket,获得述认证标识ticket中的sessionid;
判断所述数据库Redis中是否存在与所述认证标识ticket中的sessionid相同的sessionid;
若所述数据库Redis中存在与所述认证标识ticket中的sessionid相同的sessionid,则确定所述数据库Redis中存在与所述认证标识ticket对应的会话session。
4.如权利要求1所述的单点登录方法,其特征在于,在所述基于所述登录信息,授权所述客户端登录所述再次登录请求中对应的应用的步骤之后,还包括:
基于所述认证标识ticket对应的会话session,获取用户身份信息;
同步用户身份信息到所述再次登录请求中对应的应用。
5.如权利要求1所述的单点登录方法,其特征在于,在所述基于所述登录信息,授权所述客户端登录所述再次登录请求中对应的应用的步骤之后,还包括:
接收客户端发送的注销请求和所述认证标识ticket;
基于所述认证标识ticket对应的会话session,获取由所述认证标识ticket对应的会话session注册的系统地址;
关闭所述认证标识ticket对应的会话session,并注销所有所述认证标识ticket对应的会话session授权登录的账户。
6.如权利要求5所述的单点登录方法,其特征在于,在所述基于所述登录信息,授权所述客户端登录所述再次登录请求中对应的应用的步骤之前,还包括:
设置所述认证标识ticket的有效时间;
实时检测所述认证标识ticket是否过期;
若所述认证标识ticket已过期,则关闭所述认证标识ticket对应的会话session并注销以所述会话session授权登录系统的账户。
7.一种单点登录装置,其特征在于,所述单点登录装置包括:
校验模块,用于接收客户端发送的首次登录请求,在数据库Redis中校验用户信息;
生成模块,用于若校验无误,生成会话session和带有所述会话session的认证标识ticket;
第一授权模块,将所述认证标识ticket和所述首次登录请求对应的系统地址发送给所述客户端,授权所述客户端登录所述系统地址;
存储模块,用于基于shiro框架将所述会话session存储到所述数据库Redis中;
判断模块,用于接收所述客户端发送的再次登录请求和所述认证标识ticket,判断所述再次登录请求对应的应用是否与首次登录请求对应的应用相同;若否,则判断再次登录请求对应的应用与首次登录请求对应的应用是否应用同一所述数据库Redis;若相同或若是,则基于所述shiro判断所述数据库Redis中是否存在与所述认证标识ticket对应的会话session;
第二授权模块,用于若所述数据库Redis中存在与所述认证标识ticket对应的会话session,则提取所述认证标识ticket对应的会话session中的登录信息,其中,所述登录信息包括用户ID及对应用户ID的密码;基于所述登录信息,授权所述客户端登录所述再次登录请求中对应的应用。
8.一种单点登录设备,其特征在于,所述单点登录设备包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的单点登录程序,所述单点登录程序被所述处理器执行时实现如权利要求1-6中任一项所述的单点登录方法的步骤。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有单点登录程序,所述单点登录程序被处理器执行时实现如权利要求1-6中任一项所述的单点登录方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910541960.1A CN110381031B (zh) | 2019-06-21 | 2019-06-21 | 单点登录方法、装置、设备及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910541960.1A CN110381031B (zh) | 2019-06-21 | 2019-06-21 | 单点登录方法、装置、设备及计算机可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110381031A CN110381031A (zh) | 2019-10-25 |
CN110381031B true CN110381031B (zh) | 2023-02-14 |
Family
ID=68250532
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910541960.1A Active CN110381031B (zh) | 2019-06-21 | 2019-06-21 | 单点登录方法、装置、设备及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110381031B (zh) |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110830493B (zh) * | 2019-11-14 | 2022-02-25 | 北京京航计算通讯研究所 | 基于智慧企业门户的单点登录实现方法 |
CN111159689A (zh) * | 2019-12-30 | 2020-05-15 | 深圳市中易科技有限责任公司 | 一种支持多系统统一用户管理的方法及系统 |
CN111274590B (zh) * | 2020-01-17 | 2023-02-28 | 北京达佳互联信息技术有限公司 | 请求处理方法、装置、电子设备及存储介质 |
CN111586054A (zh) * | 2020-05-09 | 2020-08-25 | 山东健康医疗大数据有限公司 | 一种基于互联网架构的单点登录实现方法 |
CN111581631B (zh) * | 2020-05-12 | 2023-03-10 | 西安腾营信息科技有限公司 | 一种基于redis的单点登录方法 |
CN111970333A (zh) * | 2020-07-29 | 2020-11-20 | 深圳市钱海网络技术有限公司 | 一种基于同一客户端实现两个会话共存的方法及装置 |
CN112035822A (zh) * | 2020-08-25 | 2020-12-04 | 北京锐安科技有限公司 | 多应用单点登录方法、装置、设备及存储介质 |
CN112260997B (zh) * | 2020-09-23 | 2023-05-26 | 曙光信息产业(北京)有限公司 | 数据访问方法、装置、计算机设备和存储介质 |
CN112613022A (zh) * | 2020-12-25 | 2021-04-06 | 航天信息股份有限公司 | 一种用于用户单点登录服务系统的方法及系统 |
CN112887359B (zh) * | 2020-12-31 | 2022-12-02 | 北京思特奇信息技术股份有限公司 | 一种跨域session共享方法及系统 |
CN114070616B (zh) * | 2021-11-15 | 2024-02-27 | 广东亿迅科技有限公司 | 一种基于redis缓存的分布式会话共享方法及系统 |
CN114257431B (zh) * | 2021-12-13 | 2024-04-30 | 以萨技术股份有限公司 | 一种登录会话管理方法、系统及存储介质 |
CN114679302B (zh) * | 2022-03-01 | 2024-05-10 | 中信百信银行股份有限公司 | 对接单点登陆类系统的方法、装置、设备及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106406929A (zh) * | 2016-08-25 | 2017-02-15 | 成都交大光芒科技股份有限公司 | 分布式信息化应用集成平台应用插件容器实现方法 |
CN106487744A (zh) * | 2015-08-25 | 2017-03-08 | 北京京东尚科信息技术有限公司 | 一种基于Redis存储的Shiro验证方法 |
CN109587133A (zh) * | 2018-11-30 | 2019-04-05 | 武汉烽火众智智慧之星科技有限公司 | 一种单点登录系统及方法 |
-
2019
- 2019-06-21 CN CN201910541960.1A patent/CN110381031B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106487744A (zh) * | 2015-08-25 | 2017-03-08 | 北京京东尚科信息技术有限公司 | 一种基于Redis存储的Shiro验证方法 |
CN106406929A (zh) * | 2016-08-25 | 2017-02-15 | 成都交大光芒科技股份有限公司 | 分布式信息化应用集成平台应用插件容器实现方法 |
CN109587133A (zh) * | 2018-11-30 | 2019-04-05 | 武汉烽火众智智慧之星科技有限公司 | 一种单点登录系统及方法 |
Non-Patent Citations (1)
Title |
---|
基于CAS的单点登录系统的研究与实现;赵晋等;《软件》;20161115(第11期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN110381031A (zh) | 2019-10-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110381031B (zh) | 单点登录方法、装置、设备及计算机可读存储介质 | |
CN109309683B (zh) | 基于token的客户端身份验证的方法及系统 | |
CN111556006B (zh) | 第三方应用系统登录方法、装置、终端及sso服务平台 | |
US9462003B2 (en) | Bidirectional authorization system, client and method | |
JP6929181B2 (ja) | デバイスと、その制御方法とプログラム | |
CN112597472B (zh) | 单点登录方法、装置及存储介质 | |
CN111131242A (zh) | 一种权限控制方法、装置和系统 | |
WO2018145605A1 (zh) | 鉴权方法及服务器、访问控制装置 | |
US20140033286A1 (en) | Online user account login method and a server system implementing the method | |
WO2013000313A1 (zh) | 网页访问的控制方法、设备和系统 | |
US9332433B1 (en) | Distributing access and identification tokens in a mobile environment | |
CN110175448B (zh) | 一种可信设备登录认证方法及具有认证功能的应用系统 | |
CN106161475B (zh) | 用户鉴权的实现方法和装置 | |
US20200351263A1 (en) | Dynamic user id | |
CN110069909B (zh) | 一种免密登录第三方系统的方法及装置 | |
CN101764808A (zh) | 自动登录的认证处理方法、服务器和系统 | |
CN113901429A (zh) | 多租户系统的访问方法及装置 | |
US20220200998A1 (en) | Management of user authentication between enterprise-level authentication protocol and cloud-native authentication protocol | |
US11075922B2 (en) | Decentralized method of tracking user login status | |
KR101803535B1 (ko) | 일회용 토큰을 이용한 싱글 사인온 서비스 인증방법 | |
CN111241523A (zh) | 认证处理方法、装置、设备和存储介质 | |
CN112929388B (zh) | 网络身份跨设备应用快速认证方法和系统、用户代理设备 | |
JP6848275B2 (ja) | プログラム、認証システム及び認証連携システム | |
CN114430340A (zh) | 一种跨域单点登录方法、装置及设备 | |
CN111814130B (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 |