CN109862047A - 登录服务器的方法、装置及存储介质 - Google Patents
登录服务器的方法、装置及存储介质 Download PDFInfo
- Publication number
- CN109862047A CN109862047A CN201910314477.XA CN201910314477A CN109862047A CN 109862047 A CN109862047 A CN 109862047A CN 201910314477 A CN201910314477 A CN 201910314477A CN 109862047 A CN109862047 A CN 109862047A
- Authority
- CN
- China
- Prior art keywords
- server
- request
- sent
- certification
- asynchronous 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.)
- Pending
Links
Landscapes
- Information Transfer Between Computers (AREA)
Abstract
本申请公开了一种登录服务器的方法、装置及存储介质。其中,通过应用程序调用的浏览器以跨域请求的方式向第一服务器发送用于访问第一资源的第一异步请求,其中第一服务器为与应用程序对应的服务器;通过浏览器根据从第一服务器接收的用于访问第二服务器的第一资源定位信息,以跨域请求的方式向第二服务器发送用于访问第二服务器的第二异步请求,并通过第二服务器进行认证,其中第二服务器为用于对单点登录进行认证的认证服务器;以及通过浏览器根据第二服务器的认证结果,从第一服务器获取访问第一资源的授权。进而,在单页面应用的情况下实现了单点登录,提升了单点登录的安全性和便捷性。
Description
技术领域
本申请涉及计算机网络信息安全技术领域,特别是涉及一种单点登录方法及设备。
背景技术
单点登录是一种控制多个相关但彼此独立的系统的访问权限,拥有这一权限的用户可以使用单一的ID和密码访问某个或多个系统从而避免使用不同的用户名或密码,或者通过某种配置无缝地登录每个系统。目前单点登录多采用CAS协议,采用设置TGC和一系列的页面重定向完成多系统统一认证,但是这套方法不适用于现在趋于主流前后端分离方案单页面应用。
根据CAS协调开发的现有系统存在几个问题,一是由于基于浏览器重定向技术,所以认证期间浏览器会来回跳转,不适用于现在主流的前后端分离的单页面应用;二是现有CAS协议实现均依赖于浏览器cookie机制,难以适用于Android/IOS等移动端APP统一登录的应用场景;三是现有CAS协议和其具体实现不具备应用服务器注册验证机制,无法控制认证服务器统一认证服务范围。
针对上述的现有技术中存在的的技术问题,目前尚未提出有效的解决方案。
发明内容
本公开的实施例提供了一种登录服务器的方法、装置及存储介质,以至少解决现有技术中存在的认证期间浏览器跳转频率高、不具备应用服务器注册验证机制以及不适用于现有主流移动端APP统一登录的应用场景的技术问题。
根据本公开实施例的一个方面,提供了一种登录服务器的方法,包括:通过应用程序调用的浏览器以跨域请求的方式向第一服务器发送用于访问第一资源的第一异步请求,其中第一服务器为与应用程序对应的服务器;通过浏览器根据从第一服务器接收的用于访问第二服务器的第一资源定位信息,以跨域请求的方式向第二服务器发送用于访问第二服务器的第二异步请求,并通过第二服务器进行认证,其中第二服务器为用于对单点登录进行认证的认证服务器;以及通过浏览器根据第二服务器的认证结果,从第一服务器获取访问第一资源的授权。
可选地,通过第二服务器进行认证的操作,包括:在通过浏览器从第二服务器接收未登录第二服务器的状态信息的情况下,接收用户输入的认证信息,并且以跨域请求的方式向第二服务器发送用于认证的第三异步请求。
可选地,根据第二服务器的认证结果,从第一服务器获取访问第一资源的授权的操作,包括:在通过浏览器从第二服务器接收认证通过的状态信息的情况下,向第一服务器发送用于访问第一资源的第四异步请求。
可选地,在第一服务器和所述第二服务器为已登录状态下,退出登录的操作包括:浏览器向第一服务器发送退出登录的请求;从第一服务器接收退出登录的结果,并将登录状态改为未登录。
根据本公开实施例的另一方面,还提供了一种认证登录方法,包括:第一服务器从终端设备接收以跨域请求的方式发送的用于访问第一服务器的第一资源的异步请求;第一服务器向终端设备发送用于访问第二服务器的资源定位信息,其中第二服务器为用于对单点登录进行认证的认证服务器;第一服务器从第二服务器接收对终端设备发送的用户信息进行认证的第一认证结果;第一服务器根据第一认证结果,进行与异步请求相关的认证;以及第一服务器根据与异步请求相关的认证的第二认证结果,将访问第一资源的授权发送至终端设备。
可选地,根据第一认证结果,进行与第一异步请求相关的认证的操作,包括:第一服务器根据第一认证结果,认证与异步请求对应的会话已登录第一服务器;以及第一服务器将第二认证结果发送至第二服务器,其中第二认证结果用于指示与异步请求对应的会话已登录第一服务器。
可选地,根据与异步请求相关的认证的第二认证结果,将访问第一资源的授权发送至终端设备的操作,包括:第一服务器从终端设备接收访问第一资源的异步请求;以及第一服务器将访问第一资源的授权发送至终端设备。
可选地,根据第一认证结果,进行与第一异步请求相关的认证的操作,还包括:第一服务器从第二服务器接收由第二服务器签名的令牌;以及第一服务器利用第二服务器提供的密钥,对第二服务器发送的签名的令牌进行签名校验。
可选地,在第一服务器和第二服务器为已登录状态下,退出登录的操作包括:第一服务器接收从终端设备发送的退出登录的请求;基于从终端设备发送的退出登录的请求,服务器进行注销处理,并将退出登录的请求发送至所述服务器;以及接收第二服务器的注销处理结果,并向终端设备发送退出登录的结果。
根据本公开实施例的另一方面,还提供了一种认证登录方法,包括:第二服务器从终端设备接收以跨域请求的方式发送的用于访问第二服务器的异步请求,其中异步请求中包含用于访问第一服务器中的第一资源的资源定位信息,第一服务器为与应用程序对应的服务器,第二服务器为用于对单点登录进行认证的认证服务器;第二服务器根据异步请求进行相应的认证;第二服务器在认证通过的情况下,将认证结果发送至第一服务器;以及第二服务器在从第一服务器接收认证通过的认证结果的情况下,向终端设备发送认证成功的信息。
可选地,根据异步请求进行相应的认证的操作,包括:第二服务器在确认异步请求相关的会话为未登录状态的情况下,将未登录第二服务器的状态信息发送至终端设备;以及第二服务器从终端设备接收用户信息,对用户信息进行验证。
可选地,根据异步请求进行相应的认证的操作,还包括:第二服务器在确认异步请求相关的会话为登录状态的情况下,通过验证。
可选地,根据异步请求进行相应的认证的操作,还包括:第二服务器从第一服务器接收由第一服务器签名的令牌;以及第二服务器利用第一服务器提供的密钥,对第一服务器发送的签名的令牌进行签名校验。
可选地,在第一服务器和第二服务器为已登录状态下,退出登录的操作包括:第二服务器接收从第一服务器发送的退出登录的请求;基于从第一服务器发送的退出登录的请求,第二服务器进行注销处理,并将注销处理的结果发送至第一服务器。
根据本公开实施例的另一个方面,还提供了一种存储介质,存储介质包括存储的程序,其中,在程序运行时由处理器执行以上任意一项所述的方法。
根据本公开实施例的另一个方面,还提供了一种登录服务器的装置,包括:包括:第一请求模块,通过应用程序调用的浏览器以跨域请求的方式向第一服务器发送用于访问第一资源的第一异步请求,其中第一服务器为与应用程序对应的服务器;第二请求模块,用于通过浏览器根据从第一服务器接收的用于访问第二服务器的第一资源定位信息,以跨域请求的方式向第二服务器发送用于访问第二服务器的第二异步请求,并通过第二服务器进行认证,其中第二服务器为用于对单点登录进行认证的认证服务器;第三请求模块,用于通过浏览器根据第二服务器的认证结果,从第一服务器获取访问第一资源的授权。
根据本公开实施例的另一个方面,还提供了一种认证登录的装置,包括:接收请求模块,用于第一服务器从终端设备接收以跨域请求的方式发送的用于访问第一服务器的第一资源的异步请求;第一发送模块,用于第一服务器向终端设备发送用于访问第二服务器的资源定位信息,其中第二服务器为用于对单点登录进行认证的认证服务器;接收结果模块,用于第一服务器从第二服务器接收对终端设备发送的用户信息进行认证的第一认证结果;认证模块,用于第一服务器根据第一认证结果,进行与异步请求相关的认证;以及第二发送模块,用于第一服务器根据与异步请求相关的认证的第二认证结果,将访问第一资源的授权发送至终端设备。
根据本公开实施例的另一个方面,还提供了一种认证登录的装置,包括:第一接收模块,用于第二服务器从终端设备接收以跨域请求的方式发送的用于访问第二服务器的异步请求,其中异步请求中包含用于访问第一服务器中的第一资源的资源定位信息,第一服务器为与应用程序对应的服务器,第二服务器为用于对单点登录进行认证的认证服务器;认证模块,用于第二服务器根据异步请求进行相应的认证;第一发送模块,用于第二服务器在认证通过的情况下,将认证结果发送至第一服务器;以及第二发送模块,用于第二服务器在从第一服务器接收认证通过的认证结果的情况下,向终端设备发送认证成功的信息。
根据本公开实施例的另一个方面,还提供了一种登录服务器的装置,包括:包括:处理器;以及存储器,与处理器连接,用于为处理器提供处理以下处理步骤的指令:通过应用程序调用的浏览器以跨域请求的方式向第一服务器发送用于访问第一资源的第一异步请求,其中第一服务器为与应用程序对应的服务器;通过浏览器根据从第一服务器接收的用于访问第二服务器的第一资源定位信息,以跨域请求的方式向第二服务器发送用于访问第二服务器的第二异步请求,并通过第二服务器进行认证,其中第二服务器为用于对单点登录进行认证的认证服务器;以及通过浏览器根据第二服务器的认证结果,从第一服务器获取访问第一资源的授权。
根据本公开实施例的另一个方面,还提供了一种认证登录的装置,包括:处理器;以及存储器,与处理器连接,用于为处理器提供处理以下处理步骤的指令:第一服务器从终端设备接收以跨域请求的方式发送的用于访问第一服务器的第一资源的异步请求;第一服务器向终端设备发送用于访问第二服务器的资源定位信息,其中第二服务器为用于对单点登录进行认证的认证服务器;第一服务器从第二服务器接收对终端设备发送的用户信息进行认证的第一认证结果;第一服务器根据第一认证结果,进行与异步请求相关的认证;以及第一服务器根据与异步请求相关的认证的第二认证结果,将访问第一资源的授权发送至终端设备。
根据本公开实施例的另一个方面,还提供了一种认证登录的装置,包括:处理器;以及存储器,与处理器连接,用于为处理器提供处理以下处理步骤的指令:第二服务器从终端设备接收以跨域请求的方式发送的用于访问第二服务器的异步请求,其中异步请求中包含用于访问第一服务器中的第一资源的资源定位信息,第一服务器为与应用程序对应的服务器,第二服务器为用于对单点登录进行认证的认证服务器;第二服务器根据异步请求进行相应的认证;第二服务器在认证通过的情况下,将认证结果发送至第一服务器;以及第二服务器在从第一服务器接收认证通过的认证结果的情况下,向终端设备发送认证成功的信息。
在本公开实施例中,采用跨域请求的方式,通过基于令牌的服务器间认证注册的机制,达到了在前后端分离的单页面应用场景下单点登录的目的,从而实现了为单点登录过程中服务器间身份认证提供了安全保障以及提高了单点登录的便捷性的技术效果。进而解决了现有技术中存在的认证期间浏览器跳转频率高、不具备应用服务器注册验证机制以及不适用于现有主流移动端APP统一登录的应用场景的的技术问题。
附图说明
此处所说明的附图用来提供对本公开的进一步理解,构成本申请的一部分,本公开的示意性实施例及其说明用于解释本公开,并不构成对本公开的不当限定。在附图中:
图1是用于实现根据本公开实施例1所述用于实现登录服务器的方法的计算机终端(或移动设备)的硬件结构框图;
图2是根据本公开实施例1的第一个方面所述的登录服务器的方法的流程示意图;
图3是根据本公开实施例1所述的认证服务器处于未登录状态时,用户登录后端应用服务器的流程示意图;
图4是根据本公开实施例1的第二个方面所述的认证登录的方法的流程示意图;
图5是根据本公开实施例1所述的服务器认证注册的原理示意图;
图6是根据本公开实施例1的第三个方面所述的认证登录的方法的流程示意图;
图7是根据本公开实施例1所述的认证服务器处于已登录的状态下,用户登录后端应用服务器的流程示意图;
图8是根据本公开实施例1的所述的已登录第一服务器与第二服务器的用户退出登录的流程示意图;
图9是根据本公开实施例2的所述的登录服务器的装置的示意图;
图10是根据本公开实施例2的所述的认证登录的装置的示意图;
图11是根据本公开实施例2的所述的认证登录的装置的示意图;
图12是根据本公开实施例3的所述的登录服务器的装置的示意图;
图13是根据本公开实施例3的所述的认证登录的装置的示意图;以及
图14是根据本公开实施例3的所述的认证登录的装置的示意图;。
具体实施方式
为了使本技术领域的人员更好地理解本公开的技术方案,下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例仅仅是本公开一部分的实施例,而不是全部的实施例。基于本公开中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本公开保护的范围。
需要说明的是,本公开的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
首先,在对本公开实施例进行描述的过程中出现的部分名词或术语适用于如下解释:
单点登录:SingleSignOn,简称SSO,是目前比较流行的企业业务整合的解决方案之一。其具体定义为,在多个应用系统中,用户只需登陆一次就可以访问所有相互信任的应用系统,它包括可以将这次主要登陆映射到其他应用中,用于同一个用户登录的机制。
Cookie:一种客户端机制,它存储的内容主要包括:名字、值、过期时间、路径和域,其中,路径与域合在一起就构成了Cookie的作用范围。
Session:一种服务器端机制,当客户端访问服务器时,服务器为客户端创建一个唯一的SessionID,以使在整个交互过程中始终保持状态,而交互的信息则可由应用自行指定。举例说明session与cookie的关系:使用浏览器访问服务端页面,服务端收到该客户端第一次请求后,会创建一个session,生成一个唯一sessionID,同时在相应请求中设置cookie,属性名为jessionid,客户端收到后会保存jessionid,再次请求时,会在header中设置,服务端可从请求中获取,服务端验证获取的sessionID是否存在,即可验证是否是同一客户。
实施例1
根据本实施例,还提供了一种登录服务器的方法的实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
本实施例所提供的方法实施例可以在移动终端、计算机终端或者类似的运算装置中执行。图1示出了一种用于实现登录服务器的方法的计算机终端(或移动设备)的硬件结构框图。如图1所示,计算机终端10(或移动设备10)可以包括一个或多个(图中采用102a、102b,……,102n来示出)处理器102(处理器102可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)、用于存储数据的存储器104、以及用于通信功能的传输模块106。除此以外,还可以包括:显示器、输入/输出接口(I/O接口)、通用串行总线(USB)端口(可以作为I/O接口的端口中的一个端口被包括)、网络接口、电源和/或相机。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述电子装置的结构造成限定。例如,计算机终端10还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。
应当注意到的是上述一个或多个处理器102和/或其他数据处理电路在本文中通常可以被称为“数据处理电路”。该数据处理电路可以全部或部分的体现为软件、硬件、固件或其他任意组合。此外,数据处理电路可为单个独立的处理模块,或全部或部分的结合到计算机终端10(或移动设备)中的其他元件中的任意一个内。如本公开实施例中所涉及到的,该数据处理电路作为一种处理器控制(例如与接口连接的可变电阻终端路径的选择)。
存储器104可用于存储应用软件的软件程序以及模块,如本公开实施例中的登录服务器的方法的对应的程序指令/数据存储装置,处理器102通过运行存储在存储器104内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的应用程序的登录服务器的方法的。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至计算机终端10。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输装置106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括计算机终端10的通信供应商提供的无线网络。在一个实例中,传输装置106包括一个网络适配器(Network Interface Controller,NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输装置106可以为射频(Radio Frequency,RF)模块,其用于通过无线方式与互联网进行通讯。
显示器可以例如触摸屏式的液晶显示器(LCD),该液晶显示器可使得用户能够与计算机终端10(或移动设备)的用户界面进行交互。
此处需要说明的是,在一些可选实施例中,上述图1所示的计算机设备(或移动设备)可以包括硬件元件(包括电路)、软件元件(包括存储在计算机可读介质上的计算机代码)、或硬件元件和软件元件两者的结合。应当指出的是,图1仅为特定具体实例的一个实例,并且旨在示出可存在于上述计算机设备(或移动设备)中的部件的类型。
在上述运行环境下,根据本实施例的第一个方面,提供了一种登录服务器的方法,图2示出了该方法的流程示意图,参考图2所示,该方法包括:
S102:通过应用程序调用的浏览器以跨域请求的方式向第一服务器发送用于访问第一资源的第一异步请求,其中第一服务器为与应用程序对应的服务器;
S104:通过浏览器根据从第一服务器接收的用于访问第二服务器的第一资源定位信息,以跨域请求的方式向第二服务器发送用于访问第二服务器的第二异步请求,并通过第二服务器进行认证,其中第二服务器为用于对单点登录进行认证的认证服务器;以及
S106:通过浏览器根据第二服务器的认证结果,从第一服务器获取访问第一资源的授权。
参考图2,其中,用于访问第一资源的第一异步请求url1和用于访问第二服务器的第二异步请求url2为基于AJAX技术建立的跨域资源共享机制(CORS)的异步请求,分别用于实现浏览器与第一服务器之间以及浏览器与第二服务器之间的资源共享。
参考图3所示,本实施例所述登录服务器的方法可以应用于前后端分离的单页面应用情况。其中单页面应用的后端应用服务器对应于第一服务器,用于单点登录的认证服务器对应于第二服务器。
其中,在步骤S102之前,可以首先进行浏览器与前端应用之间的交互,其中浏览器和前端应用均设置于终端设备。参考图3,其可以包括以下步骤:
S402:浏览器向前端应用发送页面请求url;
S404:基于页面请求url,前端应用向浏览器返回单页面应用首页或过渡页。
从而,本实施例所述的登录服务器的方法利用AJAX技术通过跨域请求的方式实现了前后端分离的单页面应用的单点登录,同时在登陆的过程中通过后端服务器与认证服务器进行验证,实现了单页面应用的单点登录。
参考图3,步骤S104可以包括两个步骤,分别为:
S1041:通过浏览器根据从第一服务器接收的用于访问第二服务器的第一资源定位信息,以跨域请求的方式向第二服务器发送用于访问第二服务器的第二异步请求;
其中,用于访问第二服务器的第一资源定位信息包括:第一异步请求url1、用于用户信息认证的第二异步请求url2。
进一步地,S1042:第二服务器进行认证的操作,包括:
S10421:通过浏览器从第二服务器接收未登录第二服务器的状态信息;
S10422:接收用户输入的认证信息;
S10423:以跨域请求的方式向第二服务器发送用于认证的第三异步请求;
从而,通过步骤S10421至S10423,浏览器依据未登录第二服务器的状态信息,将接收到的用户输入的认证信息以跨域请求的方式发送至第二服务器,为第二服务器对用户身份认证提供依据。
进一步地,S106:通过第二服务器的认证结果,从第一服务器获取访问第一资源的授权的操作,包括:
S1061:浏览器从第二服务器接收认证通过的状态信息;
S1062:浏览器向第一服务器发送用于访问第一资源的第四异步请求。
从而,通过步骤S1061至S1062,在第二服务器对用户信息认证成功以及第一服务器完成了对第二服务器注册认证的情况下,浏览器将前端状态切换为已登录状态。在浏览器发出访问第一资源的第四异步请求之后,收到后端应用服务器的授权响应,即完成了整个单点登录的过程。
进一步地,在第一服务器和第二服务器为已登录状态下,退出登录的操作包括:
S108:浏览器向第一服务器发送退出登录的请求,并从第一服务器接收退出登录的结果。
参考图8所示,当用户处于已登录状态下,欲退出系统时,则由浏览器向后端应用服务器发出退出登录的请求,同时将后端应用服务器分配给浏览器的会话(例如,session1)的标识sessionID1也发送至后端应用服务器(例如通过cookie),其中该会话(session1)是在步骤S102终端设备通过浏览器向后端应用服务器发送第一异步请求时,由后端应用服务器创建的。
第一服务器根据该标识sessionID1,注销此次会话。从而终端设备通过浏览器接收后端应用服务器返回的退出登录的结果后,浏览器将前端状态改为未登录,则完成了退出登录的操作。
从而根据本实施例的第一个方面,通过浏览器以跨域请求的方式,向后端应用服务器(即第一服务器)和认证服务器(即第二服务器)发出异步请求,完成了用户身份信息在应用服务器和认证服务器的认证,从而实现了在单页面应用的情况下实现单点登录。
此外,根据本实施例的第二个方面,提供了一种认证登录方法,该方法由图3中所示的后端应用服务器(即第一服务器)执行。图4示出了该方法的流程示意图,参考图4所示,该方法包括:
S202:第一服务器从终端设备接收以跨域请求的方式发送的用于访问第一服务器的第一资源的异步请求;
S204:第一服务器向终端设备发送用于访问第二服务器的资源定位信息,其中第二服务器为用于对单点登录进行认证的认证服务器;
S206:第一服务器从第二服务器接收对终端设备发送的用户信息进行认证的第一认证结果;
S208:第一服务器根据第一认证结果,进行与异步请求相关的认证;以及
S210:第一服务器根据与第一异步请求相关的认证的第二认证结果,将访问第一资源的授权发送至终端设备。
其中,本实施例第一个方面所述的浏览器设置于第二个方面所述的终端设备,异步请求url1为基于AJAX建立的跨域资源共享(CORS)请求。
此外,第一认证结果是对用户信息进行验证的结果,例如第二服务器可以对从设置于终端设备上的浏览器发送的用户名和用户密码进行核验,获得了第一认证结果,并将第一认证结果发送至后端应用服务器。
从而,通过后端应用服务器借助浏览器向第二服务器发送用于访问第二服务器(即,认证服务器)的资源定位信息,实现了通过第二服务器对用户名和用户密码的验证。通过第二服务器将对用户名和用户密码的验证结果(即第一认证结果)发送至后端应用服务器,从而后端应用服务器根据第二认证结果,实现了对第一异步请求相关的会话的验证,最终实现了将访问授权发送至终端设备,从而实现了单页面应用的单点登录。
进一步地,根据第一认证结果,进行与异步请求相关的认证的操作,包括:
S2081:第一服务器根据第一认证结果,认证与异步请求对应的会话已登录第二服务器;以及
S2082:第一服务器将第二认证结果发送至第二服务器,其中第二认证结果用于指示与异步请求对应的会话已登录第一服务器。
从而,通过步骤S2081至S2082,后端应用服务器完成了认证,同时确认会话已经登录后端应用服务器。
进一步地,S210:根据与异步请求相关的认证的第二认证结果,将访问第一资源的授权发送至终端设备的操作,包括:
S2101:第一服务器从终端设备接收访问第一资源的异步请求;以及
S2102:第一服务器将访问第一资源的授权发送至终端设备。
其中,后端应用服务器在步骤S202从终端设备接收访问第一资源的异步请求时,会创建对应的会话(即,session1),并且将该会话的标识(sessionID1)发送至终端设备。
从而,在步骤S2101,后端应用服务器从终端设备接收访问第一资源的异步请求url1的同时,还接收到该会话的标识sessionID1,并依据上述请求和信息向终端设备返回授权响应,并最终完成用户的登陆过程。
进一步地,S208:根据第一认证结果,进行与异步请求相关的认证的操作,还包括:
S2083:第一服务器从第二服务器接收由第二服务器签名的令牌;以及
S2084:第一服务器利用与第二服务器提供的密钥,对第二服务器发送的签名的令牌进行签名校验。
其中,步骤S2083中所述的令牌例如可以是第二服务器基于与终端设备的会话(session)的标识(sessionID2)生成的签名令牌,即签名token2(sessionID2),其中sessionID2对应于基于第二异步请求。该令牌token2(sessionID2)用于后端应用服务器对第二服务器进行认证。
在利用本实施例所述的方法进行单点登录的过程中,为了保证安全,认证服务器(第二服务器)和后端应用服务器需要相互进行身份验证。
后端应用服务器(第一服务器)需要预先到认证服务器(第二服务器)进行注册,从而获取认证服务器的公钥以及和每个后端应用的域名相对应的私钥。
后端应用服务器获取密钥的过程参考图5所示。图5中左侧所示了四个后端应用对应的域名,即:www.a1.com、www.a2.com、www.a3.com、www.a4.com分别代表四个不同的后端应用服务器,其对应的公钥分别为:publicKey1、publicKey2、publicKey3以及publicKey4。上述四个子系统的后端应用服务器在到认证服务器进行注册的过程中,从认证服务器获取了认证服务器的公钥publicKey以及与自己域名对应私钥,其中与四个子系统相对的私钥分别为privateKey1、privateKey2、privateKey3和privateKey4。
因此,认证服务器利用与公钥publicKey对应的私钥进行签名,各个应用服务器可以利用公钥publicKey进行校验。同样,各个应用服务器可以用认证服务器分配的私钥(例如,privateKey1、privateKey2、privateKey3和privateKey4)进行签名,由认证服务器利用对应的公钥进行校验。
从而后端应用服务器利用与第二服务器对应的密钥,对第二服务器签名的令牌(即签名token2)进行校验。保证了认证过程的安全性。
进一步地,在第一服务器和第二服务器为已登录状态下,退出登录的操作包括:
S212:第一服务器接收从终端设备发送的退出登录的请求;
S214:基于从终端设备发送的退出登录的请求,第一服务器进行注销处理,并将退出登录的请求发送至第二服务器;以及
S216:接收第二服务器的注销处理结果,并向终端设备发送退出登录的结果。
其中,与退出登录的请求一并发送至第一服务器的还有cookiesessionID1。注销处理包括:根据cookiesessionID1找到token1(sessionID1),并且注销session1以及清空token1(sessionID1)令token1失效。从而,通过步骤S212至S216完成了退出登录的操作。
从而根据本实施例的第二个方面,利用后端应用服务器与第二服务器之间的交互,实现了单页面应用场景下的单点登录。并且通过对签名令牌的校验,完成了与第二服务器的认证,同时响应于终端设备的请求将授权反馈至终端设备,实现了用户的登录。
此外,根据本实施例的第三个方面,提供了一种认证登录方法,图6示出了该方法的流程示意图,参考图6所示,该方法包括:
S302:第二服务器从终端设备接收以跨域请求的方式发送的用于访问第二服务器的异步请求,其中异步请求中包含用于访问第一服务器中的第一资源的资源定位信息,第一服务器为与应用程序对应的服务器,第二服务器为用于对单点登录进行认证的认证服务器;
S304:第二服务器根据异步请求进行相应的认证;
S306:第二服务器在认证通过的情况下,将认证结果发送至第一服务器;以及
S308:第二服务器在从第一服务器接收认证通过的认证结果的情况下,向终端设备发送认证成功的信息。
从而,通过第二服务器根据异步请求进行的认证,实现了对用户的认证,并且第二服务器基于从后端应用服务器接收的认证通过的结果,向终端设备发送成功的信息,最终实现了在单页面应用场景下,单点登录过程中的认证流程。
进一步地,参考图3所示,步骤S304:根据异步请求进行相应的认证的操作,包括:
S3041:第二服务器在确认异步请求相关的会话为未登录状态的情况下,将未登录第二服务器的状态信息发送至终端设备;以及
S3042:第二服务器从终端设备接收用户信息,对用户信息进行验证。
其中,S3041主要是第二服务器基于异步请求判断当下的用户登录状态,并将判断结果发送至终端设备。其依据是由终端设备发送的第一资源的资源定位信息;S3042主要是第二服务器对用户信息的身份验证,其依据为用户由终端设备输入的用户名和用户密码,如果二者匹配,则第二服务器认证身份成功,第二服务器将与该终端设备对应的会话(即,session2)改为已登录状态。
从而,通过步骤S3041至S3042,第二服务器完成对于用户登录状态以及用户身份信息的判定。
进一步地,参考图7所示,根据所述异步请求进行相应的认证的操作,还包括:
S3043:第二服务器在确认异步请求相关的会话为登录状态的情况下,通过验证。
单点登录的过程,常常会遇到已登录某一系统的后端应用服务器及认证服务器(第二服务器)后,如何登录其他子系统的后端应用服务器的情况。参考图7对该情况进行说明,图7展示了用户在第二服务器为已登录状态下如何登录后端应用服务器。
由于图7中第二服务器为已登录状态,于是在图7第二服务器的操作中不再进行与用户身份信息认证相关的操作,主要有:
1.基于终端设备发送的包含用于访问后端应用服务器中的第一资源的资源定位信息的异步请求,判断用户登录状态;以及
2.从终端设备接收用户信息,并对用户信息的验证。
因此,在确定异步请求相关的会话为已登录状态的情况下,第二服务器直接执行步骤S3043,即:第二服务器在确认异步请求相关的会话为登录状态的情况下,通过验证。
进一步地,S304:根据异步请求进行相应的认证的操作,还包括:
S3044:第二服务器从第一服务器接收由第一服务器签名的令牌;以及
S3045:第二服务器利用第一服务器提供的密钥,对第一服务器发送的签名的令牌进行签名校验。
即,在步骤S304中还包括第二服务器对后端应用服务器的签名令牌,即签名token(sessionID1)进行认证,此处认证过程参照本实施例第二方面中步骤2083中的认证流程描述。即认证服务器在步骤S302从终端设备的浏览器接收到第二异步请求同时会从终端设备接收到后端应用服务器的签名令牌,即token(sessionID1)。然后第二服务器利用与后端应用服务器对应的密钥对该签名令牌进行认证。
从而,通过步骤S3044至步骤3045,完成了第二服务器对于第一服务器的认证。
进一步地,在第一服务器和第二服务器为已登录状态下,退出登录的操作包括:
S310:第二服务器接收从第一服务器发送的退出登录的请求;以及
S312:基于从第一服务器发送的退出登录的请求,第二服务器进行注销处理,并将注销处理的结果发送至第一服务器。
其中,第二服务器注销处理包括:注销session2以及清空token2(sessionID1)令token2失效。
从而,通过步骤S310至S312完成了退出登录的操作。
从而根据本实施例的第三个方面,第二服务器通过利用异步请求实现了对于用户身份信息的核验和对于后端应用服务器的认证,以及利用token令牌实现了后端应用服务器与第二服务器之间的安全验证,并向终端设备返回认证成功的结果,进而完成了整个认证过程。
基于本实施例提出的三个方面,以用户未登录、用户已登录以及用户退出登录三种情况为例来详细说明单点登录的流程,其中需要说明的是。
一、针对用户未登录的情况
参考图3,详细说明在用户未登录第一服务器(后端应用服务器)以及第二服务器(认证服务器)的情况下,如何实现登录及认证的过程,主要包括如下步骤:
S401:浏览器向前端应用发送页面请求url;
S402:基于页面请求url,前端应用向浏览器返回单页面应用首页或过渡页;
S102:通过应用程序调用的浏览器以跨域请求的方式向第一服务器发送用于访问第一资源的第一异步请求;
其中,第一异步请求url1为基于AJAX建立的跨域资源共享(CORS)请求。
S202:第一服务器从终端设备接收以跨域请求的方式发送的用于访问第一服务器的第一资源的异步请求;
其中,浏览器设置于终端设备上,异步请求由浏览器发送至第一服务器。另外,此处的异步请求即为S102中的第一异步请求url1。第一服务器基于第一异步请求判断用户的登录状态,创建与第一异步请求对应的会话session1,设置与会话session1对应的标识sessionID1以及产生签名token1(sessionID1)。产生用于访问第二服务器的第一资源定位信息。
S204:第一服务器向终端设备发送用于访问第二服务器的第一资源定位信息,其中用于访问第二服务器的第一资源定位信息包括:第一异步请求url1、第二异步请求url2以及签名token1(sessionID1)。
S1041:通过浏览器根据从第一服务器接收的用于访问第二服务器的第一资源定位信息,以跨域请求的方式向第二服务器发送用于访问第二服务器的第二异步请求;
其中,与第二异步请求共同发送至第二服务器的还有第一异步请求url1、以及签名token1(sessionID1)。
S302:第二服务器从终端设备接收以跨域请求的方式发送的用于访问第二服务器的异步请求;
S3024:第二服务器从第一服务器接收由第一服务器签名的令牌;
S3025:第二服务器利用与第一服务器对应的密钥,对第一服务器发送的签名的令牌(即,token1(sessionID1))进行签名校验;
其中,接收到第二异步请求url2之后,第二服务器首先基于令牌token1对第一服务器进行服务器认证,即利用与应用服务器对应的密钥对token1进行校验,确认安全后,开始对用户登录状态进行判断,并判定为未登录;记录sessionID1;记录第一异步请求url1;创建与第二异步请求对应的会话session2;以及设置与会话session2对应的标识sessionID2。
S3041:第二服务器在确认异步请求相关的会话为未登录状态的情况下,将未登录第二服务器的状态信息发送至终端设备;
S10421:浏览器(终端设备)从第二服务器接收未登录第二服务器的状态信息;
其中,浏览器(终端设备)接收到未登录第二服务器的状态信息后,显示登录页,需要说明的是,登录页的显示可以从单点登录服务器异步获取页面元素,也可以使用自定义的方式。
S10422:接收用户输入的认证信息;
其中,用户通过浏览器(终端设备)输入用户名和用户密码。
S10423:以跨域请求的方式向第二服务器发送用于认证的第三异步请求;
其中,浏览器(终端设备)向第二服务器发送用于用户信息认证的第三异步请求以及sessionID2。
S3042:第二服务器从终端设备接收用户信息,对用户信息进行验证;
其中,基于浏览器(终端设备)发来的用户信息,第二服务器首先进行了用户信息的验证,即验证用户名与用户密码是否匹配。完成身份信息验证后,将session2改为已登录状态,并根据session2的标识sessionID2生成签名token2,用于步骤S2083至S2084中第一服务器对第二服务器进行认证。
S306:第二服务器在认证通过的情况下,将认证结果发送至第一服务器;
该步骤中,认证结果即为用户名与用户密码匹配,同时与认证结果发送至第一服务器的还有签名token2和用户信息,其中用户信息包括用户名和用户密码。
S206:第一服务器从第二服务器接收对终端设备发送的用户信息进行认证的第一认证结果;
S2083:第一服务器从第二服务器接收由第二服务器签名的令牌;
其中,第二服务器签名的令牌为token2(sessionID2)。
S2084:第一服务器利用与第二服务器对应的密钥,对第二服务器发送的签名的令牌进行签名校验;
其中,通过步骤S2083至S2084完成了第一服务器对第二服务器的认证。
S2081:第一服务器根据第一认证结果,认证与异步请求对应的会话已登录第一服务器;
其中,此处的第一认证结果参考步骤S306中所述的认证结果。
S2082:第一服务器将第二认证结果发送至第二服务器,其中第二认证结果用于指示与异步请求对应的会话已登录第一服务器;
S308:第二服务器在从第一服务器接收认证通过的认证结果的情况下,向终端设备发送认证成功的信息;
S1061:浏览器从第二服务器接收认证通过的状态信息;
S1062:浏览器向第一服务器发送用于访问第一资源获的第四异步请求;
S2101:第一服务器从终端设备接收访问第一资源的第四异步请求;
其中,第四异步请求为url1,同时与第四异步请求发送至第一服务器的还有sessionID1。
S2102:第一服务器将访问第一资源的授权发送至终端设备。
至此,完成了未登录用户在单页面应用场景下的登录过程。
二、针对用户已登录第二服务器(认证服务器)的情况
参考图7,详细说明在用户已登录第二服务器(认证服务器)的情况下,登录其他子系统的后端应用服务器的流程,图7中用第一服务器代表某一子系统的后端应用服务器,主要包括如下步骤:
S401:浏览器向前端应用发送页面请求url;
S402:基于页面请求url,前端应用向浏览器返回单页面应用首页或过渡页;
S102:通过应用程序调用的浏览器以跨域请求的方式向第一服务器发送用于访问第一资源的第一异步请求;
其中,第一异步请求url1为基于AJAX建立的跨域资源共享(CORS)请求。
S202:第一服务器从终端设备(浏览器)接收以跨域请求的方式发送的用于访问第一服务器的第一资源的异步请求;
其中,此处的异步请求即为S102中的第一异步请求。第一服务器基于第一异步请求url1判断用户的登录状态,创建与第一异步请求对应的会话session1,设置与会话session1对应的标识sessionID1以及产生签名token1(sessionID1)。产生用于访问第二服务器的第一资源定位信息。
S204:第一服务器向终端设备发送用于访问第二服务器的第一资源定位信息,其中用于访问第二服务器的第一资源定位信息包括:第一异步请求url1、第二异步请求url2以及签名token1(sessionID1)。
S1041:通过浏览器根据从第一服务器接收的用于访问第二服务器的第一资源定位信息,以跨域请求的方式向第二服务器发送用于访问第二服务器的第二异步请求;
其中,与第二异步请求共同发送至第二服务器的还有第一异步请求url1、以及签名token1(sessionID1)。
S302:第二服务器从终端设备接收以跨域请求的方式发送的用于访问第二服务器的异步请求;
S3024:第二服务器从第一服务器接收由第一服务器签名的令牌;
S3025:第二服务器利用与第一服务器对应密钥,对第一服务器发送的签名的令牌进行签名校验;
其中,接收到第二异步请求url2之后,第二服务器首先基于令牌token1对第一服务器进行服务器认证。
S3043:第二服务器在确认异步请求相关的会话为登录状态的情况下,通过验证;
S306:第二服务器在认证通过的情况下,将认证结果发送至第一服务器;
该步骤中,认证结果即为用户名与用户密码匹配,同时与认证结果发送至第一服务器的还有签名token2和用户信息,其中用户信息例如可以包括用户名和用户密码。
S206:第一服务器从第二服务器接收对终端设备发送的用户信息进行认证的第一认证结果;
S2083:第一服务器从第二服务器接收由第二服务器签名的令牌;
其中,第二服务器签名的令牌为token2(sessionID2)。
S2084:第一服务器利用第二服务器提供的密钥,对第二服务器发送的签名的令牌进行签名校验;
其中,通过步骤S2083至S2084完成了第一服务器对第二服务器的认证。
S2081:第一服务器根据第一认证结果,认证与异步请求对应的会话已登录第二服务器;
其中,此处的第一认证结果与步骤S306中所述的认证结果是同一结果。
S2082:第一服务器将第二认证结果发送至第二服务器,其中第二认证结果用于指示与异步请求对应的会话已登录第一服务器;
S308:第二服务器在从第一服务器接收认证通过的认证结果的情况下,向终端设备发送认证成功的信息;
S1061:浏览器从第二服务器接收认证通过的状态信息;
S1062:浏览器向第一服务器发送用于访问第一资源的第四异步请求;
S2101:第一服务器从终端设备接收访问第一资源的第四异步请求;
其中,第四异步请求为url1,同时与第四异步请求发送至第一服务器的还有sessionID1。
S2102:第一服务器将访问第三资源的授权发送至终端设备。
至此,户已登录第二服务器(认证服务器)的情况下,登录其应用的后端应用服务器的流程。
三、针对用户已登录第二服务器(认证服务器)和第一服务器(后端应用服务器)的前提下,退出登录的情况
参考图8,详细说明在用户已登录第二服务器(认证服务器)和第一服务器(后端应用服务器)的前提下,退出登录的流程,图8中用第一服务器代表某当页面应用的后端应用服务器,主要包括如下步骤:
S108:浏览器(终端设备)向第一服务器发送退出登录的请求;
S212:第一服务器接收从终端设备发送的退出登录的请求;
其中,与退出登录请求一同发来的还有会话的标识sessionID1。
S214:基于从终端设备发送的退出登录的请求,第一服务器进行注销处理,并将退出登录的请求发送至第二服务器;
其中,与退出登录的请求一并发送至第一服务器的还有cookiesessionID1。第一服务器注销处理包括:根据cookiesessionID1找到token1(sessionID1),并且注销session1以及清空token1(sessionID1)令token1失效。
S310:第二服务器接收从第一服务器发送的退出登录的请求;
S312:基于从第一服务器发送的退出登录的请求,第二服务器进行注销处理,并将注销处理的结果发送至第一服务器。
其中,第二服务器注销处理包括:注销session2以及清空token2(sessionID1)令token2失效。
S216:第一服务器接收第二服务器的注销处理结果,并向终端设备发送退出登录的结果;
S110:从第一服务器接收退出登录的结果,并将登录状态改为未登录。
至此,完成已登录用户的退出登录流程。
此外,参考图1所示,根据本实施例的第四个方面,提供了一种存储介质104。所述存储介质104包括存储的程序,其中,在所述程序运行时由处理器执行以上任意一项所述的方法。
从而根据本实施例,基于AJAX建立的异步请求及令牌,实现了后端应用服务器与认证服务器之间注册验证以及对于用户信息的认证,进而完成了单页面应用的单点登录,避免了CAS认证机制中缺少安全保障的缺憾以及经常需要跳转浏览器的繁琐,提升了单点登录的便捷性和安全性,同时更适用于目前主流的前后端分离的单页面应用。
实施例2
图9示出了根据本实施例的第一个方面所述的登录服务器的装置900,该装置900与根据实施例1的第一个方面所述的方法相对应。参考图9所示,该装置900包括:
第一请求模块910,通过应用程序调用的浏览器以跨域请求的方式向第一服务器发送用于访问第一资源的第一异步请求,其中第一服务器为与应用程序对应的服务器;
第二请求模块920,用于通过浏览器根据从第一服务器接收的用于访问第二服务器的第一资源定位信息,以跨域请求的方式向第二服务器发送用于访问第二服务器的第二异步请求,并通过第二服务器进行认证,其中第二服务器为用于对单点登录进行认证的认证服务器;以及
第三请求模块930,用于通过浏览器根据第二服务器的认证结果,从第一服务器获取访问第一资源的授权。
可选地,第二请求模块920还包括:认证模块,用于在通过浏览器从第二服务器接收未登录第二服务器的状态信息的情况下,接收用户输入的认证信息,并且以跨域请求的方式向第二服务器发送用于认证的第三异步请求。
可选地,第三请求模块930还包括发送子模块,用于在通过浏览器从第二服务器接收认证通过的状态信息的情况下,向第一服务器发送用于访问第一资源的第四异步请求。
可选地,登录服务器的装置900还包括:退出登录模块,用于浏览器向第一服务器发送退出登录的请求;从第一服务器接收退出登录的结果,并将登录状态改为未登录。
从而,本实施例提供的登录服务器的装置900通过浏览器发出的四次异步请求,分别完成了第一服务器与第二服务器之间的相互认证、用户身份信息的认证,实现了浏览器和第二服务器的登陆成功,并且基于第四异步请求收到第一服务器的授权响应之后,即可完成用户在浏览器、第一服务器以及第二服务器的登录过程,从而实现了单页面应用的单点登录。
此外,图10示出了根据本实施例的第二个方面所述的认证登录的装置1000,该装置1000与根据实施例1的第二个方面所述的方法相对应。参考图10所示,该装置1000包括:
接收请求模块1010,用于第一服务器从终端设备接收以跨域请求的方式发送的用于访问第一服务器的第一资源的异步请求;
第一发送模块1020,用于第一服务器向终端设备发送用于访问第二服务器的资源定位信息,其中第二服务器为用于对单点登录进行认证的认证服务器;
接收结果模块1030,用于第一服务器从第二服务器接收对终端设备发送的用户信息进行认证的第一认证结果;
认证模块1040,用于第一服务器根据第一认证结果,进行与第一异步请求相关的认证;以及
第二发送模块1050,用于第一服务器根据与第一异步请求相关的认证的第二认证结果,将访问第一资源的授权发送至终端设备。
可选地,认证模块1040包括:
第一认证子模块,用于第一服务器根据第一认证结果,认证与异步请求对应的会话已登录第二服务器;以及
第二认证子模块,用于第一服务器将第二认证结果发送至第二服务器,其中第二认证结果用于指示与异步请求对应的会话已登录第一服务器。
可选地,第二发送模块1050包括:第一子模块,用于第一服务器从终端设备接收访问第一资源的异步请求;以及第二子模块,用于第一服务器将访问第一资源的授权发送至终端设备。
可选地,认证模块1040还包括:接收子模块,用于第一服务器从第二服务器接收由第二服务器签名的令牌;以及校验子模块,用于第一服务器利用第二服务器提供的密钥,对第二服务器发送的签名的令牌进行签名校验。
可选地,认证登录装置1000还包括:退出登录模块,其中退出登录模块包括:第一退出登录子模块,用于第一服务器接收从终端设备发送的退出登录的请求;第二退出登录子模块,用于基于从终端设备发送的退出登录的请求,服务器进行第一注销处理,并将退出登录的请求发送至服务器;以及第三退出登录子模块,用于接收第二服务器的注销处理结果,并向终端设备发送退出登录的结果。
从而,本实施例提供的认证登录的1000借助令牌完成了与第二服务器的认证,同时响应于终端设备的请求将授权反馈至终端设备,实现了用户的登录。
此外,图11示出了根据本实施例的第二个方面所述的认证登录的装置1100,该装置1100与根据实施例1的第三个方面所述的方法相对应。参考图11所示,该装置1100包括:
第一接收模块1110,用于第二服务器从终端设备接收以跨域请求的方式发送的用于访问第二服务器的异步请求,其中异步请求中包含用于访问第一服务器中的第一资源的资源定位信息,第一服务器为与应用程序对应的服务器,第二服务器为用于对单点登录进行认证的认证服务器;
认证模块1120,用于第二服务器根据异步请求进行相应的认证;
第一发送模块1130,用于第二服务器在认证通过的情况下,将认证结果发送至第一服务器;
第二发送模块1140,用于第二服务器在从第一服务器接收认证通过的认证结果的情况下,向终端设备发送认证成功的信息。
可选地,认证模块1120包括:第一子模块,用于第二服务器在确认异步请求相关的会话为未登录状态的情况下,将未登录第二服务器的状态信息发送至终端设备;以及第二子模块,用于第二服务器从终端设备接收用户信息,对用户信息进行验证。
可选地,认证模块1120还包括:第三子模块,用于第二服务器在确认异步请求相关的会话为登录状态的情况下,通过验证。
可选地,认证模块1120还包括:第四子模块,用于第二服务器从第一服务器接收由第一服务器签名的令牌;以及第五子模块,用于第二服务器利用第一服务器提供的密钥,对第一服务器发送的签名的令牌进行签名校验。
可选地,认证登录的装置1100还包括:退出登录模块,其中退出登录模块包括:第一退出登录子模块,用于第二服务器接收从第一服务器发送的退出登录的请求;以及第二退出登录子模块,用于基于从第一服务器发送的退出登录的请求,第二服务器进行第二注销处理,并将第二注销处理的结果发送至第一服务器。
从而根据本实施例提供的认证登录的装置1100,通过利用异步请求实现了对于用户身份信息的核验和对于第一服务器的认证,以及利用token令牌实现了第一服务器与第二服务器之间的安全验证,并向终端设备返回认证成功的结果,进而完成了单页面的单点登录。
实施例3
图12示出了根据本实施例所述的登录服务器的装置1200,该装置1200与根据实施例1的第一个方面所述的方法相对应。参考图12所示,该装置1200包括:处理器1210;以及存储器1220,与处理器1210连接,用于为处理器1210提供处理以下处理步骤的指令:通过应用程序调用的浏览器以跨域请求的方式向第一服务器发送用于访问第一资源的第一异步请求,其中第一服务器为与应用程序对应的服务器;通过浏览器根据从第一服务器接收的用于访问第二服务器的第一资源定位信息,以跨域请求的方式向第二服务器发送用于访问第二服务器的第二异步请求,并通过第二服务器进行认证,其中第二服务器为用于对单点登录进行认证的认证服务器;以及通过浏览器根据第二服务器的认证结果,从第一服务器获取访问第一资源的授权。
可选地,通过第二服务器进行认证的操作,包括:在通过浏览器从第二服务器接收未登录第二服务器的状态信息的情况下,接收用户输入的认证信息,并且以跨域请求的方式向第二服务器发送用于认证的第三异步请求。
可选地,根据第二服务器的认证结果,从第一服务器获取访问第一资源的授权的操作,包括:在通过浏览器从第二服务器接收认证通过的状态信息的情况下,向第一服务器发送用于访问第一资源的第四异步请求。
可选地,在第一服务器和第二服务器为已登录状态下,退出登录的操作包括:浏览器向第一服务器发送退出登录的请求;从第一服务器接收退出登录的结果,并将登录状态改为未登录。
从而,根据本实施例提供的装置1200,通过浏览器发出的四次异步请求,分别完成了第一服务器与第二服务器之间的相互认证、用户身份信息的认证,实现了浏览器和第二服务器的登陆成功,并且基于第四异步请求收到第一服务器的授权响应之后,即可完成用户在浏览器、第一服务器以及第二服务器的登录过程。
图13示出了根据本实施例所述的登录服务器的装置1300,该装置1300与根据实施例1的第二个方面所述的方法相对应。参考图13所示,该装置1300包括:处理器1310;以及存储器1320,与处理器1310连接,用于为处理器1310提供处理以下处理步骤的指令:第一服务器从终端设备接收以跨域请求的方式发送的用于访问第一服务器的第一资源的异步请求;第一服务器向终端设备发送用于访问第二服务器的资源定位信息,其中第二服务器为用于对单点登录进行认证的认证服务器;第一服务器从第二服务器接收对终端设备发送的用户信息进行认证的第一认证结果;第一服务器根据第一认证结果,进行与第一异步请求相关的认证;以及第一服务器根据与异步请求相关的认证的第二认证结果,将访问第一资源的授权发送至终端设备。
可选地,根据第一认证结果,进行与第一异步请求相关的认证的操作,包括:第一服务器根据第一认证结果,认证与异步请求对应的会话已登录第一服务器;以及第一服务器将第二认证结果发送至第二服务器,其中第二认证结果用于指示与异步请求对应的会话已登录第一服务器。
可选地,根据与异步请求相关的认证的第二认证结果,将访问第一资源的授权发送至终端设备的操作,包括:第一服务器从终端设备接收访问第一资源的异步请求;以及第一服务器将访问第一资源的授权发送至终端设备。
可选地,根据第一认证结果,进行与第一异步请求相关的认证的操作,还包括:第一服务器从第二服务器接收由第二服务器签名的令牌;以及第一服务器利用第二服务器提供的密钥,对第二服务器发送的签名的令牌进行签名校验。
可选地,在第一服务器和第二服务器为已登录状态下,退出登录的操作包括:第一服务器接收从终端设备发送的退出登录的请求;基于从终端设备发送的退出登录的请求,服务器进行第一注销处理,并将退出登录的请求发送至服务器;以及接收第二服务器的注销处理结果,并向终端设备发送退出登录的结果。
从而根据本实施例提供的认证登录的装置1300,通过利用异步请求实现了对于用户身份信息的核验和对于第一服务器的认证,以及利用token令牌实现了第一服务器与第二服务器之间的安全验证,并向终端设备返回认证成功的结果,进而完成了单页面的单点登录。
图14示出了根据本实施例所述的登录服务器的装置1400,该装置1400与根据实施例1的第三个方面所述的方法相对应。参考图14所示,该装置1400包括:处理器1410;以及存储器1420,与处理器1410连接,用于为处理器1410提供处理以下处理步骤的指令:第二服务器从终端设备接收以跨域请求的方式发送的用于访问第二服务器的异步请求,其中异步请求中包含用于访问第一服务器中的第一资源的资源定位信息,第一服务器为与应用程序对应的服务器,第二服务器为用于对单点登录进行认证的认证服务器;第二服务器根据异步请求进行相应的认证;第二服务器在认证通过的情况下,将认证结果发送至第一服务器;以及第二服务器在从第一服务器接收认证通过的认证结果的情况下,向终端设备发送认证成功的信息。
可选地,根据异步请求进行相应的认证的操作,包括:第二服务器在确认异步请求相关的会话为未登录状态的情况下,将未登录第二服务器的状态信息发送至终端设备;以及第二服务器从终端设备接收用户信息,对用户信息进行验证。
可选地,根据异步请求进行相应的认证的操作,还包括:第二服务器在确认异步请求相关的会话为登录状态的情况下,通过验证。
可选地,根据异步请求进行相应的认证的操作,还包括:第二服务器从第一服务器接收由第一服务器签名的令牌;以及第二服务器利用第一服务器提供的密钥,对第一服务器发送的签名的令牌进行签名校验。
可选地,在第一服务器和第二服务器为已登录状态下,退出登录的操作包括:第二服务器接收从第一服务器发送的退出登录的请求;基于从第一服务器发送的退出登录的请求,第二服务器进行第二注销处理,并将第二注销处理的结果发送至第一服务器。
从而,根据本实施例提供的装置1400通过利用异步请求实现了对于用户身份信息的核验和对于第一服务器的认证,以及利用token令牌实现了第一服务器与第二服务器之间的安全验证,并向终端设备返回认证成功的结果,进而单页面的单点登录。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (10)
1.一种登录服务器的方法,其特征在于,包括:
通过应用程序调用的浏览器以跨域请求的方式向第一服务器发送用于访问第一资源的第一异步请求,其中所述第一服务器为与所述应用程序对应的服务器;
通过所述浏览器根据从所述第一服务器接收的用于访问第二服务器的第一资源定位信息,以跨域请求的方式向所述第二服务器发送用于访问第二服务器的第二异步请求,并通过所述第二服务器进行认证,其中所述第二服务器为用于对单点登录进行认证的认证服务器;以及
通过所述浏览器根据所述第二服务器的认证结果,从所述第一服务器获取访问所述第一资源的授权。
2.根据权利要求1所述的方法,其特征在于,通过所述第二服务器进行认证的操作,包括:
在通过所述浏览器从所述第二服务器接收未登录所述第二服务器的状态信息的情况下,接收用户输入的认证信息,并且以跨域请求的方式向所述第二服务器发送用于认证的第三异步请求。
3.根据权利要求1所述的方法,其特征在于,根据所述第二服务器的认证结果,从所述第一服务器获取访问所述第一资源的授权的操作,包括:
在通过所述浏览器从所述第二服务器接收认证通过的状态信息的情况下,向所述第一服务器发送用于访问所述第一资源的第四异步请求。
4.一种认证登录的方法,其特征在于,包括:
第一服务器从终端设备接收以跨域请求的方式发送的用于访问所述第一服务器的第一资源的异步请求;
所述第一服务器向所述终端设备发送用于访问第二服务器的资源定位信息,其中所述第二服务器为用于对单点登录进行认证的认证服务器;
所述第一服务器从所述第二服务器接收对终端设备发送的用户信息进行认证的第一认证结果;
所述第一服务器根据所述第一认证结果,进行与所述异步请求相关的认证;以及
所述第一服务器根据与所述异步请求相关的认证的第二认证结果,将访问所述第一资源的授权发送至所述终端设备。
5.根据权利要求4所述的方法,其特征在于,根据所述第一认证结果,进行与所述异步请求相关的认证的操作,包括:
所述第一服务器根据所述第一认证结果,认证与所述异步请求对应的会话已登录所述第二服务器;以及
所述第一服务器将所述第二认证结果发送至所述第二服务器,其中所述第二认证的结果用于指示与所述异步请求对应的会话已登录所述第一服务器。
6.根据权利要求5所述的方法,其特征在于,根据与所述异步请求相关的认证的第二认证结果,将访问所述第一资源的授权发送至所述终端设备的操作,包括:
所述第一服务器从所述终端设备接收访问所述第一资源的异步请求;以及
所述第一服务器将访问所述第一资源的授权发送至所述终端设备。
7.根据权利要求4所述的方法,其特征在于,根据所述第一认证结果,进行与所述异步请求相关的认证的操作,还包括:
所述第一服务器从所述第二服务器接收由所述第二服务器签名的令牌;以及
所述第一服务器利用与所述第二服务器对应的密钥,对所述第二服务器发送的签名的令牌进行签名校验。
8.一种认证登录的方法,其特征在于,包括:
第二服务器从终端设备接收以跨域请求的方式发送的用于访问所述第二服务器的异步请求,其中所述异步请求中包含用于访问第一服务器中的第一资源的资源定位信息,所述第一服务器为与应用程序对应的服务器,所述第二服务器为用于对单点登录进行认证的认证服务器;
所述第二服务器根据所述异步请求进行相应的认证;
所述第二服务器在认证通过的情况下,将认证结果发送至所述第一服务器;以及
所述第二服务器在从所述第一服务器接收认证通过的认证结果的情况下,向所述终端设备发送认证成功的信息。
9.根据权利要求8所述的认证登录的方法,其特征在于,根据所述异步请求进行相应的认证的操作,还包括
所述第二服务器从所述第一服务器接收由所述第一服务器签名的令牌;以及
所述第二服务器利用与所述第一服务器对应的密钥,对所述第一服务器发送的签名的令牌进行签名校验。
10.一种存储介质,所述存储介质包括存储的程序,其中,在所述程序运行时由处理器执行权利要求1~9中任意一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910314477.XA CN109862047A (zh) | 2019-04-18 | 2019-04-18 | 登录服务器的方法、装置及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910314477.XA CN109862047A (zh) | 2019-04-18 | 2019-04-18 | 登录服务器的方法、装置及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109862047A true CN109862047A (zh) | 2019-06-07 |
Family
ID=66889296
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910314477.XA Pending CN109862047A (zh) | 2019-04-18 | 2019-04-18 | 登录服务器的方法、装置及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109862047A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112104641A (zh) * | 2020-09-11 | 2020-12-18 | 中国联合网络通信集团有限公司 | 登录形式转换方法、装置、存储介质及电子设备 |
CN112468481A (zh) * | 2020-11-23 | 2021-03-09 | 西安西热电站信息技术有限公司 | 一种基于CAS的单页和多页web应用身份集成认证方法 |
CN112491881A (zh) * | 2020-11-26 | 2021-03-12 | 中国人寿保险股份有限公司 | 跨平台单点登录方法、系统、电子设备及存储介质 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2731308A1 (en) * | 2012-11-09 | 2014-05-14 | Gemalto SA | Method to generate a confidential user token |
CN103929421A (zh) * | 2014-04-03 | 2014-07-16 | 深圳英飞拓科技股份有限公司 | 一种安防系统单点登录系统及方法 |
CN106453378A (zh) * | 2016-11-03 | 2017-02-22 | 东软集团股份有限公司 | 数据认证的方法、装置及系统 |
CN107347068A (zh) * | 2017-07-10 | 2017-11-14 | 恒生电子股份有限公司 | 单点登录方法及系统、电子设备 |
US20180091355A1 (en) * | 2015-04-15 | 2018-03-29 | Hitachi Systems, Ltd. | Single sign-on system and single sign-on method |
CN109347864A (zh) * | 2018-11-22 | 2019-02-15 | 杭州迪普科技股份有限公司 | 基于虚拟专用网络的单点登录方法及装置 |
CN109547458A (zh) * | 2018-12-10 | 2019-03-29 | 平安科技(深圳)有限公司 | 登录验证方法、装置、计算机设备及存储介质 |
CN109587133A (zh) * | 2018-11-30 | 2019-04-05 | 武汉烽火众智智慧之星科技有限公司 | 一种单点登录系统及方法 |
-
2019
- 2019-04-18 CN CN201910314477.XA patent/CN109862047A/zh active Pending
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2731308A1 (en) * | 2012-11-09 | 2014-05-14 | Gemalto SA | Method to generate a confidential user token |
CN103929421A (zh) * | 2014-04-03 | 2014-07-16 | 深圳英飞拓科技股份有限公司 | 一种安防系统单点登录系统及方法 |
US20180091355A1 (en) * | 2015-04-15 | 2018-03-29 | Hitachi Systems, Ltd. | Single sign-on system and single sign-on method |
CN106453378A (zh) * | 2016-11-03 | 2017-02-22 | 东软集团股份有限公司 | 数据认证的方法、装置及系统 |
CN107347068A (zh) * | 2017-07-10 | 2017-11-14 | 恒生电子股份有限公司 | 单点登录方法及系统、电子设备 |
CN109347864A (zh) * | 2018-11-22 | 2019-02-15 | 杭州迪普科技股份有限公司 | 基于虚拟专用网络的单点登录方法及装置 |
CN109587133A (zh) * | 2018-11-30 | 2019-04-05 | 武汉烽火众智智慧之星科技有限公司 | 一种单点登录系统及方法 |
CN109547458A (zh) * | 2018-12-10 | 2019-03-29 | 平安科技(深圳)有限公司 | 登录验证方法、装置、计算机设备及存储介质 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112104641A (zh) * | 2020-09-11 | 2020-12-18 | 中国联合网络通信集团有限公司 | 登录形式转换方法、装置、存储介质及电子设备 |
CN112104641B (zh) * | 2020-09-11 | 2022-07-29 | 中国联合网络通信集团有限公司 | 登录形式转换方法、装置、存储介质及电子设备 |
CN112468481A (zh) * | 2020-11-23 | 2021-03-09 | 西安西热电站信息技术有限公司 | 一种基于CAS的单页和多页web应用身份集成认证方法 |
CN112491881A (zh) * | 2020-11-26 | 2021-03-12 | 中国人寿保险股份有限公司 | 跨平台单点登录方法、系统、电子设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10567391B2 (en) | Graduated authentication in an identity management system | |
US9548975B2 (en) | Authentication method, authentication system, and service delivery server | |
CN105554098B (zh) | 一种设备配置方法、服务器及系统 | |
CN110351269B (zh) | 通过第三方服务器登录开放平台的方法 | |
CN109327477A (zh) | 认证鉴权方法、装置及存储介质 | |
EP2307982B1 (en) | Method and service integration platform system for providing internet services | |
CN104486343B (zh) | 一种双因子双向认证的方法及系统 | |
CN106131079A (zh) | 一种认证方法、系统及代理服务器 | |
US20060230438A1 (en) | Single sign-on to remote server sessions using the credentials of the local client | |
CN106027565B (zh) | 一种基于pppoe的内外网统一认证的方法和装置 | |
CN110351228A (zh) | 远程登录方法、装置和系统 | |
CN109525604A (zh) | 一种账号绑定的方法及相关设备 | |
CN107689944A (zh) | 身份认证方法、装置和系统 | |
WO2017130292A1 (ja) | サーバ、モバイル端末及びプログラム | |
CN104936181B (zh) | 一种连接指定ap的接入认证方法及装置 | |
CN109862047A (zh) | 登录服务器的方法、装置及存储介质 | |
CN106330816A (zh) | 一种登录云桌面的方法和系统 | |
CN109587251A (zh) | 会话访问方法以及服务器 | |
CN101647254A (zh) | 用于为终端设备提供服务的方法和系统 | |
CN108496329A (zh) | 使用设备证实控制对在线资源的访问 | |
CN105991518B (zh) | 网络接入认证方法及装置 | |
CN109150874A (zh) | 访问认证方法、装置及认证设备 | |
CN108965341A (zh) | 登录认证的方法、装置及系统 | |
CN108092988A (zh) | 基于动态创建临时密码的无感知认证授权网络系统和方法 | |
CN108259457A (zh) | 一种web认证方法及装置 |
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: 20190607 |
|
RJ01 | Rejection of invention patent application after publication |