一种单点登出方法及系统

文档序号:1889532 发布日期:2021-11-26 浏览:17次 >En<

阅读说明:本技术 一种单点登出方法及系统 (Single-point logout method and system ) 是由 洪志权 卢山 崔伟成 张志浩 于 2021-08-31 设计创作,主要内容包括:本申请公开了一种单点登出方法及系统,用户在一个应用服务中登出后,应用服务对应的应用服务器向统一认证服务器发送服务登出指令,使得统一认证服务器将该用户的登录会话信息删除,并依次调用其他应用服务的登出地址,使得其他应用服务的应用服务器将该用户的登录会话删除,实现各个应用服务同时登出的功能,解决了基于Oauth2协议实现的单点登录功能,由于登出时只登出了当前服务和认证服务器,其他已经通过认证服务器认证的服务没有同时登出,需要等到会话过期才能达到统一登出效果,具有很大的时延,存在着客户体验不友好,安全性也有所降低的技术问题。(The application discloses a single point logout method and a system, after a user logs out in an application service, the application server corresponding to the application service sends a service logout instruction to the unified authentication server, so that the unified authentication server deletes the login session information of the user, and sequentially calling the log-out addresses of other application services, so that the application servers of other application services delete the login session of the user, the function of simultaneously logging out each application service is realized, the single-point login function realized based on the Oauth2 protocol is realized, only the current service and the authentication server are logged out during logging out, other services authenticated by the authentication server are not simultaneously logged out, a unified logging-out effect can be achieved only when the session is overdue, and the method has great time delay, and has the technical problems that the user experience is not friendly and the safety is reduced.)

一种单点登出方法及系统

技术领域

本申请涉及计算机应用技术领域,尤其涉及一种单点登出方法及系统。

背景技术

随着微服务的流行,企业内各种服务越来越多,因此单点登录变得格外重要。单点登录有CAS、Oauth2等实现方式。有了单点登录的需求,单点登出的需求也就应运而生。

基于Oauth2协议实现的单点登录功能,由于登出时只登出了当前服务和认证服务器,其他已经通过认证服务器认证的服务没有同时登出,需要等到会话过期才能达到统一登出效果,具有很大的时延,存在着客户体验不友好,安全性也有所降低的技术问题。

发明内容

本申请提供了一种单点登出方法及系统,解决了基于Oauth2协议实现的单点登录功能,由于登出时只登出了当前服务和认证服务器,其他已经通过认证服务器认证的服务没有同时登出,需要等到会话过期才能达到统一登出效果,具有很大的时延,存在着客户体验不友好,安全性也有所降低的技术问题。

有鉴于此,本申请第一方面提供了一种单点登出方法,所述方法包括:

S101、用户客户端通过浏览器向应用服务器发送第一服务登出指令,所述第一服务登出指令携带有登出的第一应用服务的信息以及用户的信息;

S102、所述应用服务器根据所述第一服务登出指令,将第一redis缓存中所述第一应用服务的登陆会话信息删除;

S103、所述应用服务器向统一认证服务器发送所述第二服务登出指令,所述第二服务登出指令携带有登出成功的所述第一应用服务的信息以及所述用户的信息;

S104、所述统一认证服务器根据所述第二服务登出指令,将第二redis缓存中所述第一应用服务的登陆会话删除;

S105、所述统一认证服务器携带所述用户的信息调用数据库表中所有其他应用服务的服务登出地址;

S106、所述统一认证服务器根据所述服务登出地址依次调用所有其他应用服务的登出接口,使得所有其他应用服务的应用服务器将第三redis缓存中的所述用户的登陆会话删除。

可选地,所述步骤S101之前还包括:

统一认证服务器在数据库表中维护所有应用服务的服务登出地址。

可选地,所述步骤S106具体包括:

所述统一认证服务器携带所述用户的信息依次调用所有其他应用服务的登出接口;

其他应用服务的应用服务器根据所述第二服务登出指令,将第三redis缓存中的所述用户的登录会话删除。

可选地,所述步骤S106之后还包括:

S107、所述用户的其他应用服务的应用服务器向所述统一认证服务器发送第四服务登出指令,所述第四服务登出指令携带有登出成功的所述用户的其他应用服务的信息。

可选地,所述步骤S107之后还包括:

所述统一认证服务器接收到所述用户的其他应用服务的应用服务器发送的所述第四服务登出指令后,向所述用户客户端发送登出成功指令。

本申请第二方面提供一种单点登录系统,所述系统包括:用户客户端、应用服务器以及统一认证服务器,其中:

所述用户客户端通过浏览器向所述应用服务器发送第一服务登出指令,所述第一服务登出指令携带有登出的第一应用服务的信息以及用户的信息;

所述应用服务器根据所述第一服务登出指令,将第一redis缓存中所述第一应用服务的登陆会话信息删除;

所述应用服务器向所述统一认证服务器发送所述第二服务登出指令,所述第二服务登出指令携带有登出成功的所述第一应用服务的信息以及所述用户的信息;

所述统一认证服务器根据所述第二服务登出指令,将第二redis缓存中所述第一应用服务的登陆会话删除;

所述统一认证服务器携带所述用户的信息调用数据库表中所有其他应用服务的服务登出地址;

所述统一认证服务器根据所述服务登出地址依次调用所有其他应用服务的登出接口,使得所有其他应用服务的应用服务器将第三redis缓存中的所述用户的登陆会话删除。

可选地,还包括:

统一认证服务器在数据库表中维护所有应用服务的服务登出地址。

可选地,

所述统一认证服务器根据所述服务登出地址依次调用所有其他应用服务的登出接口,使得所有其他应用服务的应用服务器将第三redis缓存中的所述用户的登陆会话删除具体包括:

所述统一认证服务器携带所述用户的信息依次调用所有其他应用服务的登出接口;

其他应用服务的应用服务器根据所述第二服务登出指令,将第三redis缓存中的所述用户的登录会话删除。

可选地,还包括:

所述用户的其他应用服务的应用服务器向所述统一认证服务器发送第四服务登出指令,所述第四服务登出指令携带有登出成功的所述用户的其他应用服务的信息。

可选地,还包括:

所述统一认证服务器接收到所述用户的其他应用服务的应用服务器发送的所述第四服务登出指令后,向所述用户客户端发送登出成功指令。

从以上技术方案可以看出,本申请实施例具有以下优点:

本申请中,提供了一种单点登出方法,用户在一个应用服务中登出后,应用服务对应的应用服务器向统一认证服务器发送服务登出指令,使得统一认证服务器将该用户的登录会话信息删除,并依次调用其他应用服务的登出地址,使得其他应用服务的应用服务器将该用户的登录会话删除,实现各个应用服务同时登出的功能,解决了基于Oauth2协议实现的单点登录功能,由于登出时只登出了当前服务和认证服务器,其他已经通过认证服务器认证的服务没有同时登出,需要等到会话过期才能达到统一登出效果,具有很大的时延,存在着客户体验不友好,安全性也有所降低的技术问题。

附图说明

图1为本申请中一种单点登出方法的方法流程图;

图2为本申请中一种单点登出系统的结构示意图。

具体实施方式

为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

本申请设计了一种单点登出方法及系统,解决了基于Oauth2协议实现的单点登录功能,由于登出时只登出了当前服务和认证服务器,其他已经通过认证服务器认证的服务没有同时登出,需要等到会话过期才能达到统一登出效果,具有很大的时延,存在着客户体验不友好,安全性也有所降低的技术问题。

为了便于理解,请参阅图1,图1为本申请实施例中一种单点登出方法的方法流程图,如图1所示,具体为:

S101、用户客户端通过浏览器向应用服务器发送第一服务登出指令,第一服务登出指令携带有登出的第一应用服务的信息以及用户的信息;

需要说明的是,在单点登录中,用户客户端通过浏览器访问应用服务的应用服务器,若未登录,则应用服务器向统一认证服务器进行验证登录,若未通过验证,则统一认证服务器向用户客户端返回登录页面,直到用户登录成功,在统一认证服务器中创建登录会话,该登录会话存入redis缓存中,并向应用服务器返回token,使得应用服务器创建登录会话,并将该登录会话存入redis缓存中。所有应用服务的登录会话存入redis缓存中,以达到同应用服务的集群内多台应用服务器共享登录会话信息,从而实现能够同登录同登出的目的。

由于Oauth2协议是通过统一认证服务器发放token到应用服务器来实现应用服务的授权登录操作,在token发放后应用服务器不需要再和统一认证服务器进行交互,统一认证服务器、各个应用服务器各自管理各自的登录会话,不支持统一的登出,会存在用户登出一个服务后,其他服务还能够正常访问的情况,影响用户体验且具有一定的安全隐患。

因此,在用户登出的阶段,用户在用户客户端通过浏览器向应用服务器发送第一登出指令,指令指示第一应用服务的应用服务器登出用户账号。

S102、应用服务器根据第一服务登出指令,将第一redis缓存中第一应用服务的登陆会话信息删除;

需要说明的是,应用服务器接收到第一服务登出指令后,需要通过在登录阶段保存至第一redis缓存中的第一应用服务的登录会话信息删除,完成该用户对于第一应用服务的登出。

S103、应用服务器向统一认证服务器发送第二服务登出指令,第二服务登出指令携带有登出成功的第一应用服务的信息以及用户的信息;

需要说明的是,应用服务器在登出了该用户的第一应用服务后,为了实现单点登出,需要该应用服务器向统一认证服务器发送第二服务登出指令,指令指示统一认证服务器将其他应用服务统一登出。

S104、统一认证服务器根据第二服务登出指令,将第二redis缓存中第一应用服务的登陆会话删除;

需要说明的是,统一认证服务器在接收到应用服务器发送的第二服务登出指令后,需要将统一认证服务器中第一应用服务的登录会话从第二redis缓存中删除,完成第一应用服务在统一认证服务器的登出。

S105、统一认证服务器携带用户的信息调用数据库表中所有其他应用服务的服务登出地址;

需要说明的是,在统一认证服务器中,存在数据库表是用来保存所有应用服务的服务登出地址。而用户在登陆的阶段,用户在任意一个应用服务登陆均会产生会话信息,而在单点登出阶段,需要调用统一认证服务器所有应用服务的服务登出地址进行轮询访问。

S106、统一认证服务器根据服务登出地址依次调用所有其他应用服务的登出接口,使得所有其他应用服务的应用服务器将第三redis缓存中的用户的登陆会话删除。

需要说明的是,统一认证服务器在调用数据库表中的所有其他应用服务的服务登出地址后,根据该服务登出地址依次调用所有其他应用服务的登出接口,使得所有其他应用服务的应用服务器将登录阶段存储于第三redis缓存中的该用户的登录会话删除,完成该用户在所有登录的应用服务中的登出。可以理解的是,该用户可能仅登陆一两个其他应用服务,但统一认证服务器在调用服务登出地址时,是需要对所有其他应用服务进行轮询访问,若是其中一两个其他应用服务的第三redis缓存中存储有该用户的登陆会话,即进行删除,实现用户在所有应用服务的登出。

进一步地,步骤S101之前还包括:

统一认证服务器在数据库表中维护所有应用服务的服务登出地址。

需要说明的是,统一认证服务器的数据库表中维护所有需要被认证的应用服务的服务登出地址,以在统一认证服务器登出时调用所有应用服务的服务登出地址实现登出。由于急于Spring security的Oauth2认证的统一认证服务器需要维护所有被认证的应用服务器认证的应用服务到数据库表中,因此可以有效避免这些应用服务的服务登出地址的维护遗漏。

进一步地,步骤S106具体包括:

统一认证服务器携带用户的信息依次调用用户的所有其他应用服务的登出接口;

其他应用服务的应用服务器根据第二服务登出指令,将第三redis缓存中的用户的登录会话删除。

需要说明的是,所有其他应用服务的应用服务器在接收到统一认证服务器的第二服务登出指令后,删除该用户在第三redis缓存中的登录会话,完成该用户的该应用服务的登出。

进一步地,步骤S106之后还包括:

S107、用户的其他应用服务的应用服务器向统一认证服务器发送第四服务登出指令,第四服务登出指令携带有登出成功的用户的其他应用服务的信息。

需要说明的是,用户的其他应用服务的应用服务器在登出成功后,向统一认证服务器发送第四服务登出指令,使得统一认证服务器能够确定该用户的所有应用服务是否全部登出。

进一步地,步骤S107之后还包括:

统一认证服务器接收到用户的其他应用服务的应用服务器发送的第四服务登出指令后,向用户客户端发送登出成功指令。

请参阅图2,图2为本申请实施例中一种单点登出系统的结构示意图,如图2所示,具体包括:用户客户端201、应用服务器202以及统一认证服务器203,其中:

用户客户端201通过浏览器向应用服务器202发送第一服务登出指令,第一服务登出指令携带有登出的第一应用服务的信息以及用户的信息;

应用服务器202根据第一服务登出指令,将第一redis缓存中第一应用服务的登陆会话信息删除;

应用服务器202向统一认证服务器203发送第二服务登出指令,第二服务登出指令携带有登出成功的第一应用服务的信息以及用户的信息;

统一认证服务器203根据第二服务登出指令,将第二redis缓存中第一应用服务的登陆会话删除;

统一认证服务器203携带用户的信息调用数据库表中所有其他应用服务的服务登出地址;

统一认证服务器203根据服务登出地址依次调用所有其他应用服务的登出接口,使得所有其他应用服务的应用服务器204将第三redis缓存中的用户的登陆会话删除。

进一步地,还包括:

统一认证服务器203在数据库表中维护所有应用服务的服务登出地址。

可选地,统一认证服务器203根据服务登出地址依次调用用户的所有其他应用服务的登出接口,使得用户的所有其他应用服务的应用服务器204将第三redis缓存中的登陆会话删除具体包括:

统一认证服务器203携带用户的信息依次调用用户的所有其他应用服务的登出接口;

其他应用服务的应用服务器204根据第二服务登出指令,将第三redis缓存中的用户的登录会话删除。

进一步地,还包括:

用户的其他应用服务的应用服务器204向统一认证服务器203发送第四服务登出指令,第四服务登出指令携带有登出成功的用户的其他应用服务的信息。

进一步地,还包括:

统一认证服务器203接收到用户的其他应用服务的应用服务器204发送的第四服务登出指令后,向用户客户端201发送登出成功指令。

本申请实施例提供了一种单点登出方法及系统,用户在一个应用服务中登出后,应用服务对应的应用服务器向统一认证服务器发送服务登出指令,使得统一认证服务器将该用户的登录会话信息删除,并依次调用其他应用服务的登出地址,使得其他应用服务的应用服务器将该用户的登录会话删除,实现各个应用服务同时登出的功能,解决了基于Oauth2协议实现的单点登录功能,由于登出时只登出了当前服务和认证服务器,其他已经通过认证服务器认证的服务没有同时登出,需要等到会话过期才能达到统一登出效果,具有很大的时延,存在着客户体验不友好,安全性也有所降低的技术问题。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

本申请的说明书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例例如能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

应当理解,在本申请中,“至少一个(项)”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,用于描述关联对象的关联关系,表示可以存在三种关系,例如,“A和/或B”可以表示:只存在A,只存在B以及同时存在A和B三种情况,其中A,B可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项(个)”或其类似表达,是指这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b或c中的至少一项(个),可以表示:a,b,c,“a和b”,“a和c”,“b和c”,或“a和b和c”,其中a,b,c可以是单个,也可以是多个。

在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(英文全称:Read-OnlyMemory,英文缩写:ROM)、随机存取存储器(英文全称:Random Access Memory,英文缩写:RAM)、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述,以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。

12页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:基于IBC体系的电力物联网设备轻量级接入认证方法及系统

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类