CN109587133B - 一种单点登录系统及方法 - Google Patents
一种单点登录系统及方法 Download PDFInfo
- Publication number
- CN109587133B CN109587133B CN201811451565.6A CN201811451565A CN109587133B CN 109587133 B CN109587133 B CN 109587133B CN 201811451565 A CN201811451565 A CN 201811451565A CN 109587133 B CN109587133 B CN 109587133B
- Authority
- CN
- China
- Prior art keywords
- client
- target
- service request
- application system
- request
- 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
-
- 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
- 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
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)
- Information Transfer Between Computers (AREA)
Abstract
本发明提供了一种单点登录系统及方法,系统包括多应用系统、单点登录认证服务端和客户端,多应用系统中的每一应用系统均采用前后端分离架构,客户端,用于在检测到登录指令后,生成浏览器指纹,基于浏览器指纹,生成用于访问目标应用系统的访问请求;发送访问请求;在接收到token信息后,与目标应用系统建立通信连接;单点登录认证服务端,用于拦截访问请求,对所拦截的访问请求进行登录认证,在访问请求通过登录认证后,生成令牌token信息,将访问请求放行至目标应用系统,并向客户端返回token信息;目标应用系统,用于在接收到访问请求后,与客户端建立通信连接。应用本发明实施例,实现了客户端在采用前后端分离架构的多应用系统间的跨域单点登录。
Description
技术领域
本发明涉及互联网技术领域,尤其涉及一种单点登录系统及方法。
背景技术
单点登录(Single Sign On)系统,简称为SSO系统,主要是指在多应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。为了提高应用系统的响应效率,越来越多的应用系统开始采用前后端分离架构,这种架构前端关注页面的样式与动态数据的解析及渲染,后端关注业务逻辑计算,能够提高系统性能,随着采用前后端分离架构的多应用系统的快速发展,研究一种应用于采用前后端分离架构的多应用系统的单点登录系统变得越来越重要。
现有的单点登录系统主要基于Cookie的技术实现的,具体实现方案为:使用某个域名作为登录域,并增加P3P(Platform for Privacy Preferences,隐私设定平台规范)文件头,在验证完用户信息之后,向服务器请求动态加载某些js(Javascript,是一种编程语言),并且通过iframe(标签)写入其他子应用所在域的Cookie。由于采用前后端分离架构的应用系统会存在Cookie跨域失效问题,导致在采用前后端分离架构的多应用系统中,应用现有的单点登录系统会存在浏览器跨域失效,从而无法实现各应用系统间的跨域单点登录。
发明内容
本发明的目的在于克服现有技术之缺陷,提供了一种单点登录系统及方法,以实现采用前后端分离架构的多应用系统间的跨域单点登录。
本发明是这样实现的:
第一方面,本发明提供一种单点登录系统,所述系统包括多应用系统、单点登录认证服务端和客户端,其中,所述多应用系统中的每一应用系统均采用前后端分离架构,
所述客户端,用于在检测到登录指令后,生成浏览器指纹,基于所述浏览器指纹,生成用于访问目标应用系统的访问请求;发送所述访问请求;在接收到token信息后,与所述目标应用系统建立通信连接;
所述单点登录认证服务端,用于拦截所述访问请求,对所拦截的访问请求进行登录认证,在所述访问请求通过登录认证后,生成令牌token信息,将所述访问请求放行至所述目标应用系统,并向所述客户端返回所述token信息;
所述目标应用系统,用于在接收到所述访问请求后,与所述客户端建立通信连接。
可选的,所述单点登录认证服务端还用于:
在所述访问请求通过登录认证后,生成所述客户端的会话session信息;设置所述浏览器指纹的过期时间;
将所述token信息、所述session信息、所述浏览器指纹以及所述过期时间对应保存在内存数据库中。
可选的,所述客户端,还用于在检测到作用于目标应用系统的业务请求指令后,基于所述浏览器指纹和所述token信息,生成用于请求所述目标应用系统提供业务数据的目标业务请求;发送所述目标业务请求;
所述单点登录认证服务端,还用于拦截所述目标业务请求,对所拦截的目标业务请求进行合法性校验,在所述目标业务请求通过合法性校验后,将所述目标业务请求放行至所述目标应用系统;
所述目标应用系统,还用于通过前端接收来自所述单点登录认证服务端的目标业务请求,从后端获取所述目标业务请求所请求的目标业务数据,向所述客户端返回所述目标业务数据。
可选的,所述单点登录认证服务端,还用于:
在所述目标业务请求通过合法性校验后,更新所述内存数据库中所述目标业务请求中的浏览器指纹所对应的过期时间。
可选的,所述客户端,还用于在检测到作用于非目标应用系统的初始业务指令后,基于所述浏览器指纹,生成用于请求非目标应用系统提供业务数据的初始业务请求;发送所述初始业务请求;
所述单点登录认证服务端,还用于拦截所述初始业务请求,对所拦截的初始业务请求进行合法性校验,在所述初始业务请求通过合法性校验后,查找所述内存数据库,得到所述初始业务请求中的浏览器指纹所对应的token信息;将所得的token信息返回给所述客户端;并将所述初始业务请求放行至所述非目标应用系统;
所述非目标应用系统,还用于通过前端接收来自所述单点登录认证服务端的初始业务请求,从后端获取所述初始业务请求所请求的业务数据,向所述客户端返回所获取的业务数据。
可选的,所述客户端,还用于在检测到登出指令后,基于所述浏览器指纹,生成用于退出登录的登出请求;发送所述登出请求;按照所接收的重定向信息重定向浏览器的显示页面为登录页面;
所述单点登录认证服务端,还用于在拦截到所述客户端发送的登出请求后,在所述内存数据库中删除所述登出请求中的浏览器指纹以及该浏览器指纹对应的token信息、session信息和过期时间;并向客户端发送重定向信息。
可选的,所述访问请求还包括目标用户身份信息,所述目标用户身份信息包括目标用户名和目标密码,所述单点登录认证服务端对所拦截的访问请求进行登录认证,具体为:
查找预先建立的用户身份信息表,确定所述用户身份信息表中是否存在所述访问请求所携带的目标用户名和目标密码之间的对应关系;所述用户身份信息表用于存储用户名和密码之间的对应关系;
若存在,判定所述访问请求通过登录认证;
若不存在,判定所述访问请求未通过登录认证。
可选的,所述单点登录认证服务端对所拦截的目标业务请求进行合法性校验,具体为:
确定所述内存数据库中是否存在所述目标业务请求所携带的浏览器指纹以及当前时间是否达到该浏览器指纹对应的过期时间;
若所述内存数据库中存在该浏览器指纹且当前时间未达到该浏览器指纹对应的过期时间,判定所述目标业务请求通过合法性校验;否则,判定所述目标业务请求未通过合法性校验。
第二方面,本发明提供一种单点登录方法,应用于上述任一所述的系统,所述方法应用于所述单点登录认证服务端,具体包括:
拦截客户端发送的用于访问目标应用系统的访问请求,其中,所述访问请求包括浏览器指纹;
对所拦截的访问请求进行登录认证,在所述访问请求通过登录认证后,生成令牌token信息,将所述访问请求放行至所述目标应用系统,并向所述客户端返回所述token信息;以使所述目标应用系统在接收到所述访问请求后,与所述客户端建立通信连接;以使所述客户端在接收到token信息后,与所述目标应用系统建立通信连接。
可选的,所述方法还包括:
在所述访问请求通过登录认证后,生成所述客户端的会话session信息;设置所述浏览器指纹的过期时间;
将所述token信息、所述session信息、所述浏览器指纹以及所述过期时间对应保存在内存数据库中。
本发明具有以下有益效果:应用本发明实施例,客户端可以基于浏览器指纹生成访问请求,单点登录认证服务端在判定访问请求通过登录认证后,可以生成令牌token信息,将访问请求放行至目标应用系统,并向所述客户端返回所述token信息,目标应用系统可以根据访问请求,与客户端建立通信连接,在客户端跨域登录多应用系统的不同应用系统的过程中,都可以通过浏览器指纹可以唯一标识客户端,避免了浏览器跨域失效问题,实现了客户端在采用前后端分离架构的多应用系统间的跨域单点登录。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1为本发明实施例提供的单点登录系统的一种结构示意图;
图2为本发明实施例提供的单点登录方法的一种流程示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
为解决现有技术问题,本发明实施例提供了一种单点登录系统及方法。下面首先对本发明所提供的一种单点登录系统进行说明。
参见图1,图1为本发明实施例提供的一种单点登录系统,所述系统包括多应用系统、单点登录认证服务端和客户端,其中,所述多应用系统中的每一应用系统均采用前后端分离架构,
所述客户端,用于在检测到登录指令后,生成浏览器指纹,基于所述浏览器指纹,生成用于访问目标应用系统的访问请求;发送所述访问请求;在接收到token信息后,与所述目标应用系统建立通信连接;
所述单点登录认证服务端,用于拦截所述访问请求,对所拦截的访问请求进行登录认证,在所述访问请求通过登录认证后,生成令牌token信息,将所述访问请求放行至所述目标应用系统,并向所述客户端返回所述token信息;
所述目标应用系统,用于在接收到所述访问请求后,与所述客户端建立通信连接。
多应用系统可以包括多个应用系统,每个应用系统可以提供不同的业务服务。每个应用系统可以部署于不同应用服务器,也可以均部署于同一应用服务器,本发明对多应用系统的部署方式不做限定。
多应用系统中的每一应用系统可以均采用前后端分离架构,采用架构的应用系统的数据处理过程可以为:通过前端与客户端交互,前端可以获取存储于后端的数据,并将所获取的数据返回给客户端。可以看出,前、后端分工明确,应用实现了应用系统的数据解耦,提升了系统性能。
用户可以通过客户端与多应用系统建立通信连接,例如,用户可以通过客户端登录多应用系统和/或向多应用系统请求业务数据,客户端可以是手机、平板、个人电脑等终端。
本发明对多应用系统所在的服务器、单点登录认证服务端所在的服务器类型不做限定,例如可以为安装了Linux系统或Windows系统或Unix系统的服务器。另外,多应用系统所在的服务器和单点登录认证服务端所在的服务器可以为同一服务器,可以分别为不同的服务器。
另外,本发明对单点登录认证服务端的数量不做限定,可以有一个或多个,每个单点登录认证服务端可以管理多应用系统中的部分应用系统,或者可以各自管理不同的多应用系统,每个单点登录认证服务端和其所管理的多应用系统以及向该单点登录认证服务端所管理的多应用系统发送请求的客户端均可以认为构成本发明所述的单点登录系统。
客户端可以生成浏览器指纹,浏览器指纹是客户端具有的特征标识,可以用浏览器指纹唯一标识客户端,可以用客户端的硬件信息和客户端中用于提供访问功能的浏览器的信息生成浏览器指纹,例如,可以用客户端的以下信息生成客户端的浏览器指纹:浏览器设置的当前语言、格林威治时间和本地时间之间的时差(以分钟为单位)、硬件类型、所在操作系统平台(例如win32、win64等等)、系统字体、浏览器设置的当前语言、屏幕分辨率、浏览器插件(Flash,Silverlight,Java等等)、浏览器扩展、浏览器设置(Do-Not-Track,etc)、客户端IP地址(Internet Protocol Address,网际协议地址)等众多信息,可以用这些信息的值通过散列函数传递产生一个32位或24位的编码字符串,将所产生的编码字符串作为浏览器指纹,或者,客户端可以直接执行浏览器指纹生成工具或执行具有浏览器指纹生成功能的程序代码,生成浏览器指纹。
客户端可以安装浏览器,浏览器可以显示登录页面,登录页面可以提供登录按钮,目标用户可以点击登录按钮,客户端在检测到登录按钮被点击后,可以确定检测到登录指令,进而可以生成浏览器指纹。由于浏览器指纹可以在客户端发起访问请求之前实时生成,并且能够在通信过程中唯一标识客户端,因此,能够解决由于前后端分离系统架构中多应用系统间cookies跨域失效而导致的在通信过程中无法标识客户端的问题,达到持久跟踪客户端,实现各应用系统间的跨域单点登录。
目标用户身份信息可以为当前操作客户端的目标用户的身份信息,可以包括目标用户名和目标密码,目标用户可以通过所述客户端提供的登录页面输入目标用户名和目标密码,从而客户端可以获得目标用户身份信息,进而可以基于所述浏览器指纹和所获得的目标用户身份信息,生成用于访问目标应用系统的访问请求。本发明对客户端生成访问请求的方式不做限定,例如可以利用Ajax技术或JSON(JavaScript Object Notation,JS对象简谱)技术,生成访问请求。访问请求可以为HTTP(HyperText Transfer Protocol,超文本传输协议)类型的请求或HTTPS(Hyper Text Transfer Protocol over Secure SocketLayer,安全超文本传输协议)类型的请求。
客户端在发送访问请求后,单点登录认证服务端可以拦截访问请求,本发明对具体拦截访问请求的方式不做限定,例如可以为采用过滤器方式或请求拦截工具或springMVC提供的拦截器进行拦截请求。
客户端在接收到token信息后,可以与目标应用系统建立通信连接,目标应用系统在接收到所述访问请求后,可以与所述客户端建立通信连接,从而实现了客户端与目标应用系统之间的双向连接。
访问请求还包括目标用户身份信息,目标用户身份信息包括目标用户名和目标密码,单点登录认证服务端对所拦截的访问请求进行登录认证,具体可以为:
查找预先建立的用户身份信息表,确定所述用户身份信息表中是否存在所述访问请求所携带的目标用户名和目标密码之间的对应关系;所述用户身份信息表用于存储用户名和密码之间的对应关系;
若存在,判定所述访问请求通过登录认证;
若不存在,判定所述访问请求未通过登录认证。
登录认证可以检验访问请求所携带的目标用户身份信息是否合法。用户身份信息表是预先建立的一张或多张数据表,用于存储用户名和密码之间的对应关系,用户可以事先通过客户端向单点登录认证服务端发送注册请求,注册请求可以包括该用户的用户名和密码,在检测到该用户注册成功后,单点登录认证服务端可以将该用户的用户名和密码保存至用户注册表。或者,单点登录认证服务端可以直接通过人机交互界面获得各用户输入的各用户名和密码,并将各用户名和密码之间的对应关系存储至用户身份信息表。
另外,在其他实现方式中,访问请求还可以包括目标登录权限,用户身份信息表用于存储用户名、密码和登录权限三者之间的对应关系,在确定用户身份信息表中存在所述访问请求所携带的目标用户名、目标密码和目标登录权限三者之间的对应关系后,可以判定访问请求通过登录认证,否则,可以判定访问请求未通过登录认证。
在又一种实施方式中,若确定用户身份信息表中存在目标用户名但不存在目标密码后,还可以给出提示信息,用于提示用户当前输入的密码错误,有利于引导用户输入正确的密码,从而使访问请求通过登录认证。
单点登录认证服务端在判定访问请求通过登录认证后,可以生成令牌token信息。令牌token信息可以作为客户端进行请求的一个令牌,当第一次登录认证成功后,单点登录认证服务端生成一个token信息,并将此token信息返回给客户端,以后客户端只需将这个token信息加入业务请求以请求数据,无需再次加入用户名和密码。本发明对生成token信息的方式不做限定,例如,可以是用随机函数随机生成的一串字符串;或者,也可以是结合用户身份信息和客户端信息生成的一串字符串。
一种实现方式中,所述单点登录认证服务端还用于:
在所述访问请求通过登录认证后,生成所述客户端的会话session信息;设置所述浏览器指纹的过期时间;
将所述token信息、所述session信息、所述浏览器指纹以及所述过期时间对应保存在内存数据库中。
session信息可以记录客户端针对此次访问请求所建立的连接的相关信息,例如,可以包括用户名、客户端IP地址、客户端当前时间、客户端操作系统、浏览器类型等信息,过期时间可以表征浏览器指纹的有效时长,浏览器指纹的有效时长可以为预设时长,例如可以为30秒,当浏览器指纹存在的时长超过30秒后,该浏览器指纹就会失效,变成无效浏览器指纹。若未设置预设时长,浏览器指纹的有效时长可以为默认的预设时长,例如30秒、20秒等等。每一应用系统的预设时长或预设默认时长可以相同,也可以不同,本发明对此不做限定。
过期时间可以采用具体时间点的形式或时长的形式表示,例如,浏览器指纹的有效时长为30秒,浏览器指纹存入内存数据库的时间为9点零1秒,则过期时间可以为9点零1秒+30秒=9点零31秒,若当前时间到达9点零31秒,确定当前时间达到浏览器指纹对应的过期时间,表明浏览器指纹已失效;或者,过期时间以30秒的倒计时计数,若计时器的值为0值,确定当前时间达到浏览器指纹对应的过期时间,表明浏览器指纹已失效。
内存数据库可以为Redis数据库、Memcache数据库等等。内存数据库是将数据放在内存中直接操作的数据库,相对于磁盘数据库,内存数据库的数据读写速度要高出几个数量级,因此,将数据保存在内存数据库中相比从磁盘数据库上访问能够极大地提高应用的性能,提高了数据读写效率。
应用本发明实施例,客户端基于浏览器指纹生成访问请求,单点登录认证服务端在判定访问请求通过登录认证后,可以生成令牌token信息,将访问请求放行至目标应用系统,并向所述客户端返回所述token信息,目标应用系统可以根据访问请求,与客户端建立通信连接,在客户端跨域登录多应用系统的不同应用系统的过程中,都可以通过浏览器指纹可以唯一标识客户端,避免了浏览器跨域失效问题,实现了客户端在采用前后端分离架构的多应用系统间的跨域单点登录,提高了用户体验。
一种实现方式中,所述客户端,还用于在检测到作用于目标应用系统的业务请求指令后,基于所述浏览器指纹和所述token信息,生成用于请求目标应用系统提供目标业务数据的目标业务请求;发送所述目标业务请求;
所述单点登录认证服务端,还用于拦截所述目标业务请求,对所拦截的目标业务请求进行合法性校验,在所述目标业务请求通过合法性校验后,将所述目标业务请求放行至所述目标应用系统;
所述目标应用系统,还用于通过前端接收来自所述单点登录认证服务端的目标业务请求,从后端获取所述目标业务请求所请求的目标业务数据,向所述客户端返回所述目标业务数据。
业务请求指令包括查询业务请求指令、更新业务请求指令、下载业务请求指令等等。在客户端接收到所述token信息后,客户端的浏览器可以显示应用界面,该应用界面可以提供查询按钮,更新按钮等,还可以提供应用系统选项列表,例如,当检测到某个应用系统选项被选中且查询按钮被点击后,可以确定检测到作用于该应用系统的查询业务请求指令,并可以生成用于请求该应用系统提供业务数据的查询业务请求。
本发明对客户端生成目标业务请求的方式不做限定,也可以采用Ajax技术或JSON技术,用浏览器指纹和token信息生成目标业务请求。由于客户端一次访问过程中,浏览器指纹不会发生变化,可以直接用此次访问过程中所生成的浏览器指纹,应用本发明实施例,减少了生成浏览器指纹的次数,并且用浏览器指纹标识客户端,提高了系统的可靠性和效率。
单点登录认证服务端拦截目标业务请求与拦截访问请求的方式相同,在此不再赘述。目标业务请求可以带有业务标识,例如,查询业务请求可以带有query标识、更新业务请求可以带有update标识等等,访问请求可以带有login标识,登出请求可以带有logout标识,对于客户端通过浏览器发起的每一请求,单点登录认证服务端均可以拦截该请求,并通过请求中的请求类型标识识别出请求的类型,在访问请求通过登录认证后,将该访问请求放行至所述目标应用系统,在目标业务请求通过合法性校验后,将其放行至所述目标应用系统,以使多应用系统对客户端提供相应的服务。
单点登录认证服务端对所拦截的目标业务请求进行合法性校验,具体可以为:
确定所述内存数据库中是否存在所述目标业务请求所携带的浏览器指纹以及当前时间是否达到该浏览器指纹对应的过期时间;
若所述内存数据库中存在该浏览器指纹且当前时间未达到该浏览器指纹对应的过期时间,判定所述目标业务请求通过合法性校验;否则,判定所述目标业务请求未通过合法性校验。
例如,内存数据库中存在浏览器指纹A、B和C,对应的过期时间分别为9点零1秒、9点零2秒和9点零3秒,当前时间为9点,若目标业务请求所携带的浏览器指纹为A,则内存数据库中存在该浏览器指纹且当前时间未达到该浏览器指纹对应的过期时间,判定目标业务请求通过合法性校验;若目标业务请求所携带的浏览器指纹为D,则内存数据库中不存在该浏览器指纹,判定目标业务请求未通过合法性校验。
在实际应用中,还可以结合其他方式对目标业务请求进行合法性校验,例如,还可以检验目标业务请求的格式是否符合预设格式要求,检验目标业务请求中是否携带非法字符等等。例如,预设格式要求可以为URL(Uniform Resource Locator,统一资源定位符)格式,非法字符可以为*、¥等等。
目标应用系统可以包括前端和后端,通过该前端接收目标业务请求,进而前端可以解析目标业务请求,确定目标业务请求所请求的目标业务数据,并从后端获取目标业务数据,进而将目标业务数据返回给客户端。
所述单点登录认证服务端,还可以用于:
在所述目标业务请求通过合法性校验后,更新所述内存数据库中所述目标业务请求中的浏览器指纹所对应的过期时间。
具体更新过期时间的方式可以为:重置目标业务请求中的浏览器指纹所对应的过期时间,例如,过期时间所表征浏览器指纹的有效时长为30秒,则直接累加30秒,得到重置后的过期时间;或者,若过期时间是采用倒计时计数的方式,则可以直接将计时器的值重置为30秒,以使计数器重启开始计时。
当目标业务请求通过合法性校验后,就可以对内存数据库中目标业务请求中的浏览器指纹所对应的过期时间进行更新,从而延长了客户端浏览器指纹的有效性,减少了客户端需要登录认证的次数,从而提高了用户体验。并且仅需更新过期时间,使得更新过程变得简单快速,提高了系统处理效率。
一种实现方式中,客户端,还用于在检测到作用于非目标应用系统的初始业务指令后,基于所述浏览器指纹,生成用于请求非目标应用系统提供业务数据的初始业务请求;发送所述初始业务请求;
所述单点登录认证服务端,还用于拦截所述初始业务请求,对所拦截的初始业务请求进行合法性校验,在所述初始业务请求通过合法性校验后,查找所述内存数据库,得到所述初始业务请求中的浏览器指纹所对应的token信息;将所得的token信息返回给所述客户端;并将所述初始业务请求放行至所述非目标应用系统;
所述非目标应用系统,还用于通过前端接收来自所述单点登录认证服务端的初始业务请求,从后端获取所述初始业务请求所请求的业务数据,向所述客户端返回所获取的业务数据。
非目标应用系统可以为多应用系统中除目标应用系统以外的其它应用系统,可以理解的是,对于目标应用系统,客户端先发送访问请求,然后发送目标业务请求,对于非目标应用系统,客户端并未发送访问请求,而是直接发送初始业务请求,故初始业务请求中并没有token信息,在单点登录认证服务端判定初始业务请求通过合法性校验后,可以向客户端返回token信息,该token信息为:内存数据库中存储的该客户端的浏览器指纹所对应的token信息,在后续针对该非目标应用系统发送的业务请求中可以携带所获得的token信息,从而得到非目标应用系统返回的业务数据,从而实现对非目标应用系统的免登陆访问,提高了用户体验。
为了进一步减少用户登录次数,提高用户体验,又一种实现方式中,单点登录认证服务端在判定初始业务请求通过合法性校验后,还可以更新所述内存数据库中所述初始业务请求中的浏览器指纹所对应的过期时间。
应用本发明实施例,当判定初始业务请求通过合法性校验后,可以对内存数据库中初始业务请求中的浏览器指纹所对应的过期时间进行更新,从而延长了客户端浏览器指纹的有效性,进一步减少了客户端需要登录认证的次数,从而提高了用户体验。并且仅需更新过期时间,使得更新过程变得简单快速,提高了系统处理效率。
所述客户端,还用于在检测到登出指令后,基于所述浏览器指纹,生成用于退出登录的登出请求;发送所述登出请求;按照所接收的重定向信息重定向浏览器的显示页面为登录页面。
所述单点登录认证服务端,还可以用于在拦截到所述客户端发送的登出请求后,在所述内存数据库中删除所述登出请求中的浏览器指纹以及该浏览器指纹对应的token信息、session信息和过期时间;并向客户端发送重定向信息;
客户端的浏览器所显示的应用界面还可以提供退出按钮,在检测到退出按钮被选中后,可以确定检测到登出指令,进而可以生成登出请求。本发明对生成登出请求的方式和登出请求的类型不做限定,例如,也可以利用Ajax技术或JSON技术,生成登出请求。类型可以为HTTP类型的请求或HTTPS类型的请求等等。
登出请求中的浏览器指纹即为客户端的浏览器指纹,在内存数据库中删除浏览器指纹及其对应的token信息、session信息和过期时间,实现了对客户端会话的注销,完成了登出。重定向信息用于指示客户端重定向浏览器的显示页面为登录页面。重定向信息可以包括登录页面的URL地址。
应用本发明实施例,实现了客户端的登出。
可以看出客户端发送个每一请求中均携带浏览器指纹,因此能够在通信过程中唯一标识客户端,解决由于前后端分离系统架构中多应用系统cookies跨域失效而导致的在通信过程中无法标识客户端的问题,达到持久跟踪客户端,实现各应用系统间的跨域单点登录。
相应于上述单点登录系统实施例,本发明实施例提供了一种单点登录方法,参见图2所示,与图1所示结构相对应,该方法应用于上述单点登录系统,具体的,所述方法应用于所述单点登录认证服务端,具体包括:
S101、拦截客户端发送的用于访问目标应用系统的访问请求,其中,所述访问请求包括浏览器指纹;
S102、对所拦截的访问请求进行登录认证,在所述访问请求通过登录认证后,生成令牌token信息,将所述访问请求放行至所述目标应用系统,并向所述客户端返回所述token信息;以使所述目标应用系统在接收到所述访问请求后,与所述客户端建立通信连接;以使所述客户端在接收到token信息后,与所述目标应用系统建立通信连接。
可见,应用本发明实施例,客户端可以基于浏览器指纹生成访问请求,单点登录认证服务端在判定访问请求通过登录认证后,可以生成令牌token信息,将访问请求放行至目标应用系统,并向所述客户端返回所述token信息,目标应用系统可以根据访问请求,与客户端建立通信连接,在客户端跨域登录多应用系统的不同应用系统的过程中,都可以通过浏览器指纹可以唯一标识客户端,避免了浏览器跨域失效问题,实现了客户端在采用前后端分离架构的多应用系统间的跨域单点登录。
可选的,所述方法还包括:
在所述访问请求通过登录认证后,生成所述客户端的会话session信息;设置所述浏览器指纹的过期时间;
将所述token信息、所述session信息、所述浏览器指纹以及所述过期时间对应保存在内存数据库中。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (6)
1.一种单点登录系统,其特征在于,所述系统包括多应用系统、单点登录认证服务端和客户端,其中,所述多应用系统中的每一应用系统均采用前后端分离架构,
所述客户端,用于在检测到登录指令后,生成浏览器指纹,基于所述浏览器指纹,生成用于访问目标应用系统的访问请求;发送所述访问请求;在接收到token信息后,与所述目标应用系统建立通信连接;
所述单点登录认证服务端,用于拦截所述访问请求,对所拦截的访问请求进行登录认证,在所述访问请求通过登录认证后,生成令牌token信息,将所述访问请求放行至所述目标应用系统,并向所述客户端返回所述token信息;
所述目标应用系统,用于在接收到所述访问请求后,与所述客户端建立通信连接,所述单点登录认证服务端还用于:
在所述访问请求通过登录认证后,生成所述客户端的会话session信息;设置所述浏览器指纹的过期时间;
将所述token信息、所述session信息、所述浏览器指纹以及所述过期时间对应保存在内存数据库中,
所述客户端,还用于在检测到作用于目标应用系统的业务请求指令后,基于所述浏览器指纹和所述token信息,生成用于请求所述目标应用系统提供业务数据的目标业务请求;发送所述目标业务请求;
所述单点登录认证服务端,还用于拦截所述目标业务请求,对所拦截的目标业务请求进行合法性校验,在所述目标业务请求通过合法性校验后,将所述目标业务请求放行至所述目标应用系统;和
所述目标应用系统,还用于通过前端接收来自所述单点登录认证服务端的目标业务请求,从后端获取所述目标业务请求所请求的目标业务数据,向所述客户端返回所述目标业务数据。
2.根据权利要求1所述的系统,其特征在于,所述单点登录认证服务端,还用于:
在所述目标业务请求通过合法性校验后,更新所述内存数据库中所述目标业务请求中的浏览器指纹所对应的过期时间。
3.根据权利要求2所述的系统,其特征在于,
所述客户端,还用于在检测到作用于非目标应用系统的初始业务指令后,基于所述浏览器指纹,生成用于请求非目标应用系统提供业务数据的初始业务请求;发送所述初始业务请求;
所述单点登录认证服务端,还用于拦截所述初始业务请求,对所拦截的初始业务请求进行合法性校验,在所述初始业务请求通过合法性校验后,查找所述内存数据库,得到所述初始业务请求中的浏览器指纹所对应的token信息;将所得的token信息返回给所述客户端;并将所述初始业务请求放行至所述非目标应用系统;
所述非目标应用系统,还用于通过前端接收来自所述单点登录认证服务端的初始业务请求,从后端获取所述初始业务请求所请求的业务数据,向所述客户端返回所获取的业务数据。
4.根据权利要求2-3任一项所述的系统,其特征在于,
所述客户端,还用于在检测到登出指令后,基于所述浏览器指纹,生成用于退出登录的登出请求;发送所述登出请求;按照所接收的重定向信息重定向浏览器的显示页面为登录页面;
所述单点登录认证服务端,还用于在拦截到所述客户端发送的登出请求后,在所述内存数据库中删除所述登出请求中的浏览器指纹以及该浏览器指纹对应的token信息、session信息和过期时间;并向客户端发送重定向信息。
5.根据权利要求1所述的系统,其特征在于,所述访问请求还包括目标用户身份信息,所述目标用户身份信息包括目标用户名和目标密码,所述单点登录认证服务端对所拦截的访问请求进行登录认证,具体为:
查找预先建立的用户身份信息表,确定所述用户身份信息表中是否存在所述访问请求所携带的目标用户名和目标密码之间的对应关系;所述用户身份信息表用于存储用户名和密码之间的对应关系;
若存在,判定所述访问请求通过登录认证;
若不存在,判定所述访问请求未通过登录认证。
6.根据权利要求1所述的系统,其特征在于,所述单点登录认证服务端对所拦截的目标业务请求进行合法性校验,具体为:
确定所述内存数据库中是否存在所述目标业务请求所携带的浏览器指纹以及当前时间是否达到该浏览器指纹对应的过期时间;
若所述内存数据库中存在该浏览器指纹且当前时间未达到该浏览器指纹对应的过期时间,判定所述目标业务请求通过合法性校验;否则,判定所述目标业务请求未通过合法性校验。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811451565.6A CN109587133B (zh) | 2018-11-30 | 2018-11-30 | 一种单点登录系统及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811451565.6A CN109587133B (zh) | 2018-11-30 | 2018-11-30 | 一种单点登录系统及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109587133A CN109587133A (zh) | 2019-04-05 |
CN109587133B true CN109587133B (zh) | 2021-07-23 |
Family
ID=65924194
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811451565.6A Active CN109587133B (zh) | 2018-11-30 | 2018-11-30 | 一种单点登录系统及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109587133B (zh) |
Families Citing this family (37)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109862047A (zh) * | 2019-04-18 | 2019-06-07 | 首约科技(北京)有限公司 | 登录服务器的方法、装置及存储介质 |
CN110381031B (zh) * | 2019-06-21 | 2023-02-14 | 中国平安财产保险股份有限公司 | 单点登录方法、装置、设备及计算机可读存储介质 |
CN110493225B (zh) * | 2019-08-20 | 2021-12-03 | 杭州安恒信息技术股份有限公司 | 一种请求传输方法、装置、设备及可读存储介质 |
CN112491776B (zh) * | 2019-09-11 | 2022-10-18 | 华为云计算技术有限公司 | 安全认证方法及相关设备 |
CN110602123A (zh) * | 2019-09-21 | 2019-12-20 | 苏州浪潮智能科技有限公司 | 一种基于微服务的单点证书认证系统及方法 |
CN111047287A (zh) * | 2019-12-04 | 2020-04-21 | 国网河南省电力公司检修公司 | 基于单点登录的电力超特高压运维协作系统 |
CN111211934B (zh) * | 2019-12-25 | 2022-04-12 | 曙光信息产业(北京)有限公司 | 集群远程通信测试方法以及系统 |
CN111163083A (zh) * | 2019-12-27 | 2020-05-15 | 杭州数梦工场科技有限公司 | 基于应用粒度的登录会话控制方法、装置及计算机设备 |
CN111259363B (zh) * | 2020-01-19 | 2022-10-28 | 数字广东网络建设有限公司 | 业务访问信息处理方法、系统、装置、设备和存储介质 |
CN111355713B (zh) * | 2020-02-20 | 2022-09-30 | 深信服科技股份有限公司 | 一种代理访问方法、装置、代理网关及可读存储介质 |
CN111447245A (zh) * | 2020-05-27 | 2020-07-24 | 杭州海康威视数字技术股份有限公司 | 一种认证方法、装置、电子设备和服务端 |
CN111756721B (zh) * | 2020-06-18 | 2023-04-25 | 赵旭华 | 一种关联认证方法、装置、iam服务器及可读存储介质 |
CN112149108A (zh) * | 2020-09-15 | 2020-12-29 | 京东数字科技控股股份有限公司 | 访问控制方法、装置、电子设备及存储介质 |
CN112511491B (zh) * | 2020-10-30 | 2022-12-06 | 福建福诺移动通信技术有限公司 | 一种在前后端分离模式下结合消息队列的单点登入方法 |
CN112346888B (zh) * | 2020-11-04 | 2024-06-21 | 网易(杭州)网络有限公司 | 一种基于软件应用的数据通讯方法、装置以及服务端设备 |
CN112615844A (zh) * | 2020-12-14 | 2021-04-06 | 浪潮云信息技术股份公司 | 一种应用于前后端分离场景的登录与鉴权系统 |
CN112668022A (zh) * | 2020-12-25 | 2021-04-16 | 深圳创新科技术有限公司 | 一种调取云盘服务的许可证管理方法、装置及系统 |
CN112632513B (zh) * | 2020-12-29 | 2024-01-12 | 光大兴陇信托有限责任公司 | 一种基于前后端分离的身份认证实现方法 |
CN112685726A (zh) * | 2021-01-20 | 2021-04-20 | 浪潮云信息技术股份公司 | 一种基于keycloak的单点认证方法 |
CN112929391B (zh) * | 2021-03-15 | 2023-03-31 | 浪潮云信息技术股份公司 | 一种基于单点登录实现跨平台身份认证的方法 |
CN113055186B (zh) * | 2021-03-29 | 2023-04-07 | 中国建设银行股份有限公司 | 一种跨系统的业务处理方法、装置及系统 |
CN113132365A (zh) * | 2021-04-07 | 2021-07-16 | 武汉光庭信息技术股份有限公司 | 车载T-Box的通信安全保护方法及系统 |
CN113076502A (zh) * | 2021-04-23 | 2021-07-06 | 南京始云网络科技有限公司 | 一种基于请求标识的参数控制方法与系统 |
CN113132402B (zh) * | 2021-04-27 | 2022-08-30 | 奇安信科技集团股份有限公司 | 单点登录方法和系统 |
CN113472735B (zh) * | 2021-05-13 | 2023-06-13 | 新华三大数据技术有限公司 | 一种大数据服务单点登录方法、装置及存储介质 |
CN113347163B (zh) * | 2021-05-20 | 2023-05-16 | 远景智能国际私人投资有限公司 | 单点登录方法、装置、设备及介质 |
CN113239308B (zh) * | 2021-05-26 | 2023-07-18 | 杭州安恒信息技术股份有限公司 | 一种页面访问方法、装置、设备及存储介质 |
CN113438229B (zh) * | 2021-06-23 | 2023-04-07 | 未鲲(上海)科技服务有限公司 | 一种认证方法、认证装置及认证设备 |
CN113391858A (zh) * | 2021-07-12 | 2021-09-14 | 苏州达家迎信息技术有限公司 | 客户端中的页面加载方法、装置、计算机设备及介质 |
CN114257430A (zh) * | 2021-12-13 | 2022-03-29 | 以萨技术股份有限公司 | 一种单点登录系统 |
CN114244607B (zh) * | 2021-12-16 | 2023-06-30 | 建信金融科技有限责任公司 | 单点登录方法、系统、设备、介质和程序 |
CN114301892B (zh) * | 2021-12-28 | 2023-08-15 | 苏州浪潮智能科技有限公司 | 一种模拟Web应用实现示例功能的方法、装置、系统 |
CN114866277A (zh) * | 2022-03-22 | 2022-08-05 | 恒生电子股份有限公司 | 一种应用访问方法、装置、设备及存储介质 |
CN114979096A (zh) * | 2022-05-19 | 2022-08-30 | 浪潮软件集团有限公司 | 一种国产CPU和Os的脚本任务批量下发平台及方法 |
CN115102744B (zh) * | 2022-06-16 | 2024-06-14 | 京东科技信息技术有限公司 | 数据访问方法和装置 |
CN116668190A (zh) * | 2023-07-21 | 2023-08-29 | 之江实验室 | 一种基于浏览器指纹的跨域单点登录方法及系统 |
CN117217938A (zh) * | 2023-09-26 | 2023-12-12 | 国任财产保险股份有限公司 | 一种基于健康险的保单服务系统 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102045329A (zh) * | 2009-10-22 | 2011-05-04 | 中国移动通信集团公司 | 一种单点登录方法、登录发起终端、目标终端和验证中心 |
CN103401883A (zh) * | 2013-08-16 | 2013-11-20 | 深信服网络科技(深圳)有限公司 | 单点登录方法及系统 |
CN104320394A (zh) * | 2014-10-24 | 2015-01-28 | 华迪计算机集团有限公司 | 单点登录的实现方法和系统 |
CN106650382A (zh) * | 2016-12-30 | 2017-05-10 | 北京工业大学 | 一种基于浏览器的高性能用户追踪方法 |
CN106685998A (zh) * | 2017-02-24 | 2017-05-17 | 浙江仟和网络科技有限公司 | 一种基于cas统一认证服务中间件的sso认证方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2011063014A1 (en) * | 2009-11-17 | 2011-05-26 | Secureauth Corporation | Single sign on with multiple authentication factors |
-
2018
- 2018-11-30 CN CN201811451565.6A patent/CN109587133B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102045329A (zh) * | 2009-10-22 | 2011-05-04 | 中国移动通信集团公司 | 一种单点登录方法、登录发起终端、目标终端和验证中心 |
CN103401883A (zh) * | 2013-08-16 | 2013-11-20 | 深信服网络科技(深圳)有限公司 | 单点登录方法及系统 |
CN104320394A (zh) * | 2014-10-24 | 2015-01-28 | 华迪计算机集团有限公司 | 单点登录的实现方法和系统 |
CN106650382A (zh) * | 2016-12-30 | 2017-05-10 | 北京工业大学 | 一种基于浏览器的高性能用户追踪方法 |
CN106685998A (zh) * | 2017-02-24 | 2017-05-17 | 浙江仟和网络科技有限公司 | 一种基于cas统一认证服务中间件的sso认证方法 |
Also Published As
Publication number | Publication date |
---|---|
CN109587133A (zh) | 2019-04-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109587133B (zh) | 一种单点登录系统及方法 | |
US11706218B2 (en) | Systems and methods for controlling sign-on to web applications | |
US7685631B1 (en) | Authentication of a server by a client to prevent fraudulent user interfaces | |
US8918853B2 (en) | Method and system for automatic recovery from lost security token on embedded device | |
US10476733B2 (en) | Single sign-on system and single sign-on method | |
US20080196096A1 (en) | Methods for Extending a Security Token Based Identity System | |
CN106878283B (zh) | 一种认证方法及装置 | |
US10630574B2 (en) | Link processing method, apparatus, and system | |
US9059987B1 (en) | Methods and systems of using single sign-on for identification for a web server not integrated with an enterprise network | |
US11770385B2 (en) | Systems and methods for malicious client detection through property analysis | |
US11818149B2 (en) | Content delivery network (CDN) edge server-based bot detection with session cookie support handling | |
CN108234122B (zh) | 令牌校验方法和装置 | |
CN111209349A (zh) | 一种更新会话时间的方法和装置 | |
US11848960B2 (en) | Content delivery network (CDN)-based bot detection service with stop and reset protocols | |
CN111371811B (zh) | 一种资源调用方法、资源调用装置、客户端及业务服务器 | |
US12101350B2 (en) | Low touch integration of a bot detection service in association with a content delivery network | |
CN115549968A (zh) | 微服务请求控制方法、网关服务器以及微服务系统 | |
CN114866277A (zh) | 一种应用访问方法、装置、设备及存储介质 | |
CN114095483A (zh) | 密码代填方法、装置、电子设备和存储介质 | |
JPH0950422A (ja) | コンピュータネットワーク上の対話継承型アクセス制御方法及びそのサーバコンピュータ | |
US10623396B2 (en) | System and method for controlling system | |
CN112751844B (zh) | 一种Portal认证方法、装置及电子设备 | |
CN116861402A (zh) | 登陆凭证的管理方法、装置、终端设备及存储介质 | |
CN105516153A (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 |