CN110519240B - 一种单点登录方法、装置及*** - Google Patents

一种单点登录方法、装置及*** Download PDF

Info

Publication number
CN110519240B
CN110519240B CN201910736510.8A CN201910736510A CN110519240B CN 110519240 B CN110519240 B CN 110519240B CN 201910736510 A CN201910736510 A CN 201910736510A CN 110519240 B CN110519240 B CN 110519240B
Authority
CN
China
Prior art keywords
sso
user
token
service system
server
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
Application number
CN201910736510.8A
Other languages
English (en)
Other versions
CN110519240A (zh
Inventor
韩卓亮
徐方胜
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Zhejiang Dasou Vehicle Software Technology Co Ltd
Original Assignee
Zhejiang Dasou Vehicle Software Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Zhejiang Dasou Vehicle Software Technology Co Ltd filed Critical Zhejiang Dasou Vehicle Software Technology Co Ltd
Priority to CN201910736510.8A priority Critical patent/CN110519240B/zh
Publication of CN110519240A publication Critical patent/CN110519240A/zh
Application granted granted Critical
Publication of CN110519240B publication Critical patent/CN110519240B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0815Network architectures or network communication protocols for network security for authentication of entities providing single-sign-on or federations
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0807Network architectures or network communication protocols for network security for authentication of entities using tickets, e.g. Kerberos

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)
  • Information Transfer Between Computers (AREA)

Abstract

本申请提供一种单点登录方法、装置及***,包括:业务***在接收到所述用户终端发送业务访问请求后,检测所述业务访问请求中是否携带Ticket;若否,则向用户终端返回指向所述主SSO服务器的重定向页面的链接;主SSO服务器将用户通过所述重定向页面提交的用户信息发送给所述业务***对应的子SSO服务器;子SSO服务器对所述用户信息进行校验,并在校验通过后,基于所述用户信息生成票据Ticket,并获取与该用户信息对应的用户访问数据并生成第一令牌Token,将生成的Ticket和第一Token关联储存至所述业务***对应的SSO‑STORE。使用本申请提供的方案,可以实现用户在单点登录后,基于Ticket追踪到用户访问数据。

Description

一种单点登录方法、装置及***
技术领域
本申请涉及计算机通信领域,尤其涉及一种单点登录方法、装置及***。
背景技术
单点登录(Single sign-on,SSO)机制使得用户在一次登录成功获得自身的票据(Ticket)后,就可以基于该Ticket访问同一业务***的中的所有应用,而无需登录同一业务***的每个应用,为用户访问同一业务***中的多个应用提供极大的便利。
然而,在现有单点登录的实现方式中,没有对为用户生成的Ticket进行管理的机制,无法基于Ticket追踪到用户访问数据。
发明内容
有鉴于此,本申请提供一种单点登录方法、装置及***,用于实现用户在单点登录后,可以基于Ticket追踪到用户访问数据。
具体地,本申请是通过如下技术方案实现的:
根据本申请的第一方面,提供一种单点登录***,所述***包括:主单点登录SSO服务器、多个子SSO服务器、多个业务***、多个单点登录仓库SSO-STORE;每个业务***对应有一个或多个子SSO服务器,以及一个或多个SSO-STORE;
所述业务***,用于在接收到所述用户终端发送业务访问请求后,检测所述业务访问请求中是否携带Ticket;若否,则向用户终端返回指向所述主SSO服务器的重定向页面的链接;
主SSO服务器,用于将用户通过所述重定向页面提交的用户信息发送给所述业务***对应的子SSO服务器;
所述子SSO服务器,用于对所述用户信息进行校验,并在校验通过后,基于所述用户信息生成票据Ticket,并获取与该用户信息对应的用户访问数据并生成第一令牌Token,将生成的Ticket和第一Token关联储存至所述业务***对应的SSO-STORE。
可选的,所述子SSO服务器还用于将所述Ticket返回所述用户终端,以使所述用户终端将所述Ticket添加至所述业务访问请求中并发送给所述业务***。
可选的,所述业务***,还用于在检测到所述业务访问请求中携带有Ticket时,在本业务***对应的SSO-STORE中查找是否存在与该Ticket对应的第一Token;若存在,则向用户终端返回所述业务访问请求所访问的资源。
可选的,所述业务***,还用于在本业务***对应的SSO-STORE中未查找到与该Ticket对应的第一Token时,向所述用户终端返回用于指示第一Token无效的无效消息;
所述用户终端在接收到该无效消息后,向所述主SSO服务器发送Token更新请求;所述Token更新请求携带有所述Ticket、用户信息和所述业务***域名;
所述主SSO服务器将所述Token更新请求转发给与所述业务***对应的子SSO服务器;
所述子SSO服务器获取该用户信息当前对应的用户访问数据并生成第二Token,并将第二Token和所述Ticket关联储存至所述业务***对应的SSO-STORE。
可选的,所述主SSO服务器,还用于在接收到用户终端发送的登出请求后,确定与登出请求携带的业务***的域名对应的SSO-STORE,并在查找到的SSO-STORE中删除该登出请求携带的Ticket及其关联的Token。
可选的,所述用户访问数据包括:用户登录行为记录和可访问资源列表。
根据本申请第二方面,提供一种单点登录方法,所述方法应用于单点登录***中的任一子SSO服务器;所述单点登录***还包括:多个SSO-STORE、多个业务***、主SSO服务器;每个业务***对应有一个或多个子SSO服务器,以及一个或多个SSO-STORE;
所述方法包括:
接收所述主SSO服务器发送的用户信息;所述用户信息由用户通过重定向页面提交;所述重定向页面的链接是由所述业务***在检测到所述用户终端发送的业务访问请求中未携带Ticket时发送;
在对所述用户信息校验通过后,基于所述用户信息生成Ticket;
获取与所述用户信息对应的用户访问数据,生成第一Token;
将所述Ticket和所述第一Token关联储存至所述业务***对应的SSO-STORE。
可选的,在所述基于所述用户信息生成Ticket之后,所述方法还包括:
将所述Ticket返回给所述用户终端,以使所述用户终端将所述Ticket添加至所述业务访问请求中并发送给所述业务***。
可选的,所述基于所述用户信息生成Ticket,包括:
从所述用户信息中获取用户标识;
随机生成指定位数的随机数;
基于所述用户标识和所述随机数生成Ticket。
可选的,所述用户访问数据包括:用户登录行为记录和可访问资源列表
所述单点登录***还包括:与所述业务***对应的权限服务器和用户服务器;所述用户服务器至少储存有各用户信息对应的用户登录行为记录;所述权限服务器至少存储有各用户信息对应的可访问资源列表;
所述获取与所述用户信息对应的用户访问数据,包括:
从所述用户服务器中获取与所述用户信息对应的用户登录行为记录;
从所述权限服务器中获取与所述用户信息对应的可访问资源列表。
可选的,所述将所述Ticket和所述第一Token关联储存至所述业务***的域名对应的SSO-STORE,包括:
将所述Ticket作为键,第一Token作为键值储存至所述SSO-STORE。
可选的,所述方法还包括:
接收到所述主SSO服务器转发的来自于用户终端的Token更新请求;所述Token更新请求携带有所述Ticket、用户信息和所述业务***域名;
获取该用户信息当前对应的用户访问数据并生成第二Token;
将第二Token和所述Ticket关联储存至所述业务***域名对应的SSO-STORE。
根据本申请的第三方面,提供一种单点登录方法,所述方法应用于单点登录***中的主SSO服务器,所述单点登录***还包括:多个子SSO服务器、多个SSO-STORE、用户终端以及至少一个业务***;每个业务***对应有一个或多个子SSO服务器,以及一个或多个SSO-STORE;
所述方法包括:
获取用户通过重定向页面提交的用户信息;所述重定向页面的链接是由所述业务***在检测到所述用户终端发送的业务访问请求中未携带Ticket时发送;
确定与所述业务***对应的子SSO服务器;
将所述用户信息转发给所述子SSO服务器,以使得所述子SSO服务器在对所述用户信息校验通过后,获取与该用户信息对应的用户访问数据并生成第一Token,将生成的Ticket和第一Token关联储存至所述业务***的域名对应的SSO-STORE。
可选的,所述方法还包括:
接收由所述用户终端发送的Token更新请求;所述Token更新请求中携带用户信息和所述业务***的域名;所述Token更新请求是由所述用户终端在接收到所述业务***返回的无效消息后发送,或者是由所述用户终端接收到用于指示用户访问数据被更新的消息后发送;
将所述Token更新请求转发至与所述业务***对应的所述子SSO服务器,以由所述子SSO服务器获取该用户信息当前对应的用户访问数据并生成第二Token,并将第二Token和所述Ticket关联储存至所述业务***对应的SSO-STORE。
可选的,所述方法还包括:
接收所述用户终端发送的登出请求;所述登出请求中携带有Ticket和登出的业务***的域名;
确定与所述登出的业务***对应的SSO-STORE;
在查找到的SSO-STORE中删除该登出请求携带的Ticket及其关联的Token。
根据本申请的第四方面,提供一种单点登录方法,所述方法应用于单点登录***中的任一业务***,所述单点登录***还包括:多个子SSO服务器、多个SSO-STORE、用户终端和主SSO服务器;每个业务***对应有一个或多个子SSO服务器,以及一个或多个SSO-STORE;
所述方法包括:
接收到所述用户终端发送业务访问请求;
检测所述业务访问请求中是否携带Ticket;
若否,则向用户终端返回指向所述主SSO服务器的重定向页面的链接,以由主SSO服务器,用于将用户通过所述重定向页面提交的用户信息发给所述业务***对应的子SSO服务器,由所述子SSO服务器对所述用户信息进行校验,并在校验通过后,基于所述用户信息生成票据Ticket,并获取与该用户信息对应的用户访问数据并生成第一Token,将生成的Ticket和第一令牌Token关联储存至所述业务***对应的SSO-STORE。
可选的,所述方法还包括:
若是,则在本业务***对应的SSO-STORE中查找是否存在与该Ticket对应的第一Token;
若存在,则向用户终端返回所述业务访问请求所访问的资源;
若不存在,则向所述用户终端返回用于指示第一Token无效的无效消息,以使得所述用户终端向所述主SSO服务器发送携带有所述Ticket、用户信息和所述业务***的Token更新请求,以由所述主SSO服务器将该Token更新请求转发至所述子SSO服务器,以由所述子SSO服务器获取该用户信息当前对应的用户访问数据并重新生成第二Token,并将第二Token和所述Ticket关联储存至所述业务***对应的SSO-STORE。
根据本申请的第五方面,提供一种单点登录装置,所述装置应用于单点登录***中的任一子SSO服务器;所述单点登录***还包括:多个SSO-STORE、多个业务***、主SSO服务器;每个业务***对应有一个或多个子SSO服务器,以及一个或多个SSO-STORE,所述装置包括:
接收单元,用于接收所述主SSO服务器发送的用户信息;所述用户信息由用户通过重定向页面提交;所述重定向页面的链接是由所述业务***在检测到所述用户终端发送的业务访问请求中未携带Ticket时发送;
生成单元,用于在对所述用户信息校验通过后,基于所述用户信息生成Ticket;
获取单元,用于获取与所述用户信息对应的用户访问数据,生成第一Token;
储存单元,用于将所述Ticket和所述第一Token关联储存至所述业务***对应的SSO-STORE。
可选的,所述装置还包括:
返回单元,用于将所述Ticket返回给所述用户终端,以使所述用户终端将所述Ticket添加至所述业务访问请求中并发送给所述业务***。
可选的,所述生成单元,具体用于从所述用户信息中获取用户标识;随机生成指定位数的随机数;基于所述用户标识和所述随机数生成Ticket。
可选的,所述用户访问数据包括:用户登录行为记录和可访问资源列表;
所述单点登录***还包括:与所述业务***对应的权限服务器和用户服务器;所述用户服务器至少储存有各用户信息对应的用户登录行为记录;所述权限服务器至少存储有各用户信息对应的可访问资源列表;
所述获取单元,具体用于从所述用户服务器中获取与所述用户信息对应的用户登录行为记录;从所述权限服务器中获取与所述用户信息对应的可访问资源列表。
可选的,所述储存单元,具体用于将所述Ticket作为键,第一Token作为键值储存至所述SSO-STORE。
可选的,所述接收单元,还用于接收到所述主SSO服务器转发的来自于用户终端的Token更新请求;所述Token更新请求携带有所述Ticket、用户信息和所述业务***域名;
所述获取单元,还用于获取该用户信息当前对应的用户访问数据并生成第二Token;
所述储存单元,还用于将第二Token和所述Ticket关联储存至所述业务***域名对应的SSO-STORE。
根据本申请的第六方面,提供一种单点登录装置,所述装置应用于单点登录***中的主SSO服务器,所述单点登录***还包括:多个子SSO服务器、多个SSO-STORE、用户终端以及至少一个业务***;每个业务***对应有一个或多个子SSO服务器,以及一个或多个SSO-STORE;
所述装置包括:
获取单元,用于获取用户通过重定向页面提交的用户信息;所述重定向页面的链接是由所述业务***在检测到所述用户终端发送的业务访问请求中未携带Ticket时发送;
第一确定单元,用于确定与所述业务***对应的子SSO服务器;
第一转发单元,用于将所述用户信息转发给所述子SSO服务器,以使得所述子SSO服务器在对所述用户信息校验通过后,获取与该用户信息对应的用户访问数据并生成第一Token,将生成的Ticket和第一Token关联储存至所述业务***的域名对应的SSO-STORE。
可选的,所述装置还包括:
第一接收单元,用于接收由所述用户终端发送的Token更新请求;所述Token更新请求中携带用户信息和所述业务***的域名;所述Token更新请求是由所述用户终端在接收到所述业务***返回的无效消息后发送,或者是由所述用户终端接收到用于指示用户访问数据被更新的消息后发送;
第二转发单元,用于将所述Token更新请求转发至与所述业务***对应的所述子SSO服务器,以由所述子SSO服务器获取该用户信息当前对应的用户访问数据并生成第二Token,并将第二Token和所述Ticket关联储存至所述业务***对应的SSO-STORE。
可选的,所述装置还包括:
第二接收单元,用于接收所述用户终端发送的登出请求;所述登出请求中携带有Ticket和登出的业务***的域名;
第二确定单元,用于确定与所述登出的业务***对应的SSO-STORE;
删除单元,用于在查找到的SSO-STORE中删除该登出请求携带的Ticket及其关联的Token。
根据本申请的第七方面,提供一种单点登录装置,所述装置应用于单点登录***中的任一业务***,所述单点登录***还包括:多个子SSO服务器、多个SSO-STORE、用户终端和主SSO服务器;每个业务***对应有一个或多个子SSO服务器,以及一个或多个SSO-STORE;
所述装置包括:
接收单元,用于接收到所述用户终端发送业务访问请求;
检测单元,用于检测所述业务访问请求中是否携带Ticket;
返回单元,用于若否,则向用户终端返回指向所述主SSO服务器的重定向页面的链接,以由主SSO服务器,用于将用户通过所述重定向页面提交的用户信息发给所述业务***对应的子SSO服务器,由所述子SSO服务器对所述用户信息进行校验,并在校验通过后,基于所述用户信息生成票据Ticket,并获取与该用户信息对应的用户访问数据并生成第一Token,将生成的Ticket和第一令牌Token关联储存至所述业务***对应的SSO-STORE。
可选的,所述装置还包括:
查找单元,用于若是,则在本业务***对应的SSO-STORE中查找是否存在与该Ticket对应的第一Token;若存在,则向用户终端返回所述业务访问请求所访问的资源;若不存在,则向所述用户终端返回用于指示第一Token无效的无效消息,以使得所述用户终端向所述主SSO服务器发送携带有所述Ticket、用户信息和所述业务***的Token更新请求,以由所述主SSO服务器将该Token更新请求转发至所述子SSO服务器,以由所述子SSO服务器获取该用户信息当前对应的用户访问数据并重新生成第二Token,并将第二Token和所述Ticket关联储存至所述业务***对应的SSO-STORE。
由上述描述可知,在对用户信息校验通过后,子SSO服务器将为该用户生成的Ticket和包含有该用户的用户访问数据的Token关联储存在各业务***对应的SSO-STORE中,不仅实现对访问各业务***的用户的Ticket的管理,还可以在用户在线时,基于该Ticket追踪到用户访问数据。
附图说明
图1是本申请一示例性实施例示出的一种单点登录***示意图;
图2是本申请一示例性实施例示出的一种单点登录方法的流程图;
图3是本申请一示例性实施例示出的另一种单点登录方法的流程图;
图4是本申请一示例性实施例示出的另一种单点登录方法的流程图;
图5是本申请一示例性实施例示出的一种单点登录方法的流程图;
图6是本申请一示例性实施例示出的一种Token更新方法的流程图;
图7是本申请一示例性实施例示出的一种登出方法的流程图;
图8是本申请一示例性实施例示出的一种子SSO服务器的硬件结构图;
图9是本申请一示例性实施例示出的一种单点登录装置的框图;
图10是本申请一示例性实施例示出的一种主SSO服务器的硬件结构图;
图11是本申请一示例性实施例示出的另一种单点登录装置的框图;
图12是本申请一示例性实施例示出的一种业务***的硬件结构图;
图13是本申请一示例性实施例示出的另一种单点登录装置的框图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
参见图1,图1是本申请一示例性实施例示出的一种单点登录***示意图。
单点登录***包括:用户终端、主SSO服务器、多个子SSO服务器、多个业务***、多个SSO-STORE(单点登录仓库)、多个用户服务器和多个权限服务器。
1、业务***
上述业务***,是指为用户提供可访问资源的业务***。不同的业务***的域名不同,所以可以通过业务***的域名来标识一个业务***。
一个业务***中可包括多个可访问资源(可访问资源也被称为应用)。
比如,一个业务***可以是阿里业务***,阿里业务***中可包括淘宝应用、天猫应用、支付宝应用等。淘宝应用、天猫应用、支付宝应用等均被称为可访问资源。
2、用户终端
上述用户终端,用于与后台(如主SSO服务器、子SSO服务器、业务***、SSO-STORE等)进行通信,向后台传输用户信息、访问请求等,以及接收后台返回的Ticket等。
其中,用户终端可以是手机、计算机等,这里只是对用户终端进行示例性地说明,不进行具体地限定
3、SSO服务器
传统的单点登录***中配置有SSO服务器,SSO服务器处理所有来自于用户终端的请求,比如SSO服务器对用户进行身份校验、生成Ticket等等。此外,SSO服务器还用于管理和储存用户访问数据。
其中,用户访问数据可包括:用户可访问资源列表和用户登录行为记录。用户登录行为记录可包括:登录时间、登录次数、登录IP等等。
而与传统的单点登录***中的SSO服务器不同的是,本申请设计了多级SSO服务器来处理用户终端的请求。此外,本申请还设计多个服务器用于储存用户访问数据。
1)多级SSO服务器
本申请的单点登录***中设置有主SSO服务器和至少一个子SSO服务器。每个子SSO服务器分别对应不同的业务***。
主SSO服务器依据用户终端发送请求(比如登录请求、Token更新请求等)中携带的业务***的域名,将该请求转发给对应的子SSO服务器。
子SSO服务器可以处理该请求。比如,若该请求是首次访问请求,子SSO服务器可以对请求中携带的用户信息进行校验,并在用户信息通过校验后为用户生成Ticket,并基于该用户的用户行为访问数据为用户生成Token,关联Ticket和Token等等。
其中,所述Ticket是为用户分配的认证凭证,Ticket可基于用户的用户信息生成。所述Token可由上述用户访问数据生成。
在本申请中,主SSO服务器将针对不同业务***的请求分配给不同的子SSO服务器,由子SSO服务器处理自身对应的业务***的请求,实现了负载分担,提高了请求处理效率。
2)用于储存用户访问数据的多个服务器
传统的单点登录***的SSO服务器除了进行请求处理操作外,还进行数据存储和管理(如储存和管理用户访问数据等)。
而在本申请中,将数据存储和管理从传统的SSO服务器剥离出去。例如,本申请单点登录***还配置有用户服务器和权限服务器。各业务***都对应有各自的用户服务器和权限服务器。
用户服务器用于存储和管理用户登录行为记录等。权限服务器用于储存和管理用户可访问资源列表等。
一方面,将数据存储和管理从子SSO服务器剥离出去,使得子SSO服务器只做请求处理,从而大大提高了子SSO服务器的处理性能。
另一方面,将数据存储和管理从子SSO服务器剥离出去,即使子SSO服务器工作状态异常时,也不影响数据的存储和管理。
第三方面,本申请将用户登录行为数据和用户可访问资源列表单独储存,在一定程度上可以减少用户和权限的耦合性,使得用户和权限就能根据不同的业务场景进行组合。
4、SSO-STORE
现有的单点登录机制没有对Ticket进行管理,当用户在线时,无法基于Ticket追踪出用户访问数据。
而在本申请实施例中,本申请的单点登录***还单独配置有与各业务***对应的SSO-STORE。
SSO-STORE是用于管理Ticket的管理***。比如,该SSO-STORE中储存有为用户分配的Ticket,以及该Ticket对应的Token。此外,SSO-STORE还储存了与Ticket相关的相关信息,比如Ticket的生成时间,Ticket的有效时长等等。
将访问各业务***的用户的Ticket和包含有该用户的用户访问数据的Token关联储存在各业务***对应的SSO-STORE中,不仅实现对访问各业务***的用户的Ticket的管理,还可以在用户在线时,基于该Ticket追踪到用户访问数据。
此外,各个SSO-STORE可以基于多层Redis(一种高性能的key-value数据库)搭建。这里并不对SSO-STORE的搭建方式进行具体地限定。
此外,还需要说明的是,在本申请实施例中,按照业务***不同将子SSO服务器、SSO-STORE、用户服务器和权限服务器进行分类,使得同一业务***对应的子SSO服务器、SSO-STORE、用户服务器和权限服务器共同为该业务***服务。
例如,如表1所示。
业务*** 子SSO服务器 SSO-STORE 权限服务器 用户服务器
业务***1 子SSO服务器1 SSO-STORE1 权限服务器1 用户服务器1
业务***2 子SSO服务器2 SSO-STORE2 权限服务器2 用户服务器2
表1
如表1所示,假设单点登录***中包括两个业务***,分别为业务***1和业务***2。业务***1的域名为*.souche.com,业务***2的域名为*.souche-inc.com,业务***1的域名对应子SSO服务器1、SSO-STORE1、用户服务器1和权限服务器1。
业务***2的域名对应子SSO服务器2、SSO-STORE2、用户服务器2和权限服务器2。
当然,在本申请中,一个业务***还可以对应多个子SSO服务器、多个SSO-STORE、多个用户服务器和多个权限服务器,这里不进行具体地限定。
参见图2,图2是本申请一示例性实施例示出的一种单点登录方法的流程图,该方法可应用在图1所示单点登录***的子SSO服务器上,可包括如下所示步骤。
步骤201:子SSO服务器接收主SSO服务器发送的用户信息;所述用户信息由用户通过重定向页面提交;所述重定向页面的链接是由所述业务***在检测到所述用户终端发送的业务访问请求中未携带Ticket时发送。
当用户需要访问图1所述单点登录***中的业务***时,用户终端可通过域名将用户的业务访问请求发送给业务***。业务***域名可以唯一标识一个业务***。
业务***在接收到该业务访问请求后,可检查该业务访问请求中是否携带有Ticket。
1)业务访问请求中未携带Ticket的场景。
若该业务访问请求中未携带Ticket,说明该用户终端首次访问该业务***。此时可执行步骤202至步骤205。
具体地,若该业务访问请求中未携带Ticket,业务***则向所述用户终端返回指向主SSO服务器的重定向页面链接。
用户终端基于重定向页面链接获取重定向页面。
用户终端可展示该重定向页面。用户可在该重定向页面上输入用户信息。该用户信息可包括:用户名、密码等。这里不对用户信息进行具体地限定。
用户终端可获取用户输入的用户信息,并基于用户信息和业务***的域名构造登录请求,通过登录请求将用户信息重定向至主SSO服务器,主SSO服务器也可基于登录请求,将用户信息发送至与该业务***域名对应的子SSO服务器。
具体地,用户终端向主SSO服务器发送登录请求。该登录请求中携带有用户信息和所述业务***的域名。
主SSO服务器在接收到登录请求后,确定所述业务***的域名对应的子SSO服务器,并将该登录请求发送给该子SSO服务器。
子SSO服务器可接收主SSO服务器发送的登录请求。
步骤202:子SSO服务器可对接收到的用户信息进行校验。
若校验通过,则执行步骤203至步骤206;
若校验不通过,则向用户终端返回身份校验不通过的提示信息。
步骤203:子SSO服务器基于所述用户信息生成Ticket。
在实现时,子SSO服务器可从用户信息中获取用户标识,比如UUID_A。该用户标识可以唯一标识一个用户。
子SSO服务器还可生成指定位数的随机数,如UUID_B。
然后,子SSO服务器基于获取到的用户标识和生成的随机数,生成Ticket。比如,子SSO服务器可按照指定规则将UUID_A和UUID_B编译为Ticket。
步骤204:子SSO服务器获取与所述用户信息对应的用户访问数据,生成第一Token。
其中,该用户访问数据包括:用户登录行为记录和可访问资源列表。该用户登录行为记录可包括:登录时间、登录次数、登录设备IP地址等等。
在实现时,子SSO服务器可从与该业务***域名对应的用户服务器中获取与该用户信息对应的用户登录行为记录。
子SSO服务器可从与该业务***域名对应的权限服务器中获取与该用户信息对应的可访问资源列表。
子SSO服务器可基于获取的用户登录行为记录和可访问资源列表生成第一Token。
在本申请实施例中,子SSO服务器在生成第一Token后,还可向用户终端返回第一Token。用户终端可以储存第一Token,并展示第一Token中携带的用户访问数据。
步骤205:子SSO服务器可将所述Ticket和所述第一Token关联储存至所述业务***域名对应的SSO-STORE。
在本申请实施例中,子SSO服务器可采用Key(键)-Value(键值)方式关联存储Ticket和第一Token。
在实现时,子SSO服务器可将Ticket作为Key,将第一Token作为Value存储至该业务***域名对应的SSO-STORE中。
由于SSO-STORE中储存了Ticket与Token的对应关系,这就使得管理人员或者本单点登录***以外的其他***在用户在线时,可以根据Ticket找到对应的Token,进而获取Token中携带的用户访问数据,从而可以追踪出用户访问数据。
当然,在实际应用中,SSO-STORE中还可储存其他信息,比如用户标识与Ticket的对应关系,用户标识和关键信息的对应关系等,这里只是对SSO-STORE中储存的信息进行示例性地说明,不进行具体地限定。
其中,关键信息可以是用户访问数据中指定信息,比如关键信息可包括:Ticekt、AppName(应用名称,也被称为用户可访问资源名称)、ASI(应用的标准信息)参数、存储有效期等。
此外,在本申请实施例中,在生成Ticket之后,子SSO服务器将所述Ticket返回给所述用户终端,以使所述用户终端将所述Ticket添加至所述业务访问请求中并发送给所述业务***。
在实现时,子SSO服务器可将Ticket返回给用户终端。
用户终端可将Ticket写入到业务访问请求的cookie中,并重新将该业务访问请求发送给上述业务***。
2)业务请求中携带Ticket的场景
在本申请实施例中,当用户下线时,主SSO服务器可将SSO-STORE中与该用户的Ticket及其关联的Token删除,但是用户终端的浏览器中仍缓存有Ticket。当用户终端下线,但又在短时间内重新登录时,就会出现用户终端发送的业务请求携带有Ticket,但是对应的SSO-STORE中不存在该Ticket对应的Token的情形。
因此,当业务***检测到上述业务访问请求中携带Ticket、且该业务***域名对应的SSO-STORE中不存在与该Ticket对应的第一Token时,业务***可向用户终端返回用于指示第一Token无效的无效消息。
当用户终端接收到上述指示第一Token无效的无效消息时,用户终端可向主SSO服务器发送Token更新请求。该Token更新请求中携带有用户信息、该业务***域名、该用户终端对应的Ticket。
主SSO服务器在接收到Token更新请求后,可确定与该Token更新请求中携带的业务***域名对应的子SSO服务器,然后将该Token更新请求发送至该子SSO服务器。
子SSO服务器在接收到该Token更新请求后,获取Token更新请求携带的用户信息当前对应的用户访问数据并重新生成第二Token。其中,获取用户当前对应的用户访问数据并重新生成第二Token的方式如步骤204所示,这里不再赘述。
此外,子SSO服务器可将第二Token和所述Ticket关联储存至Token更新请求携带的业务***域名对应的SSO-STORE。
子SSO服务器还可向用户终端返回第二Token。用户终端在接收到第二Token后,可使用第二Token更新本地记录的第一Token,并展示第二Token。
此外,在本申请实施例中,当用户终端成功登录所述业务***时,可以更新该用户服务器中的用户登录行为记录。当然,还可以人工更新该用户服务器中的用户登录行为记录和权限服务器中的可访问资源列表。
当用户服务器存储的用户登录行为记录发生更新或者权限服务器存储的可访问资源列表发生更新时,用户服务器或者权限服务器可通知主SSO服务器,主SSO服务器可向用户终端发送用于指示用户访问数据被更新的消息。该用于指示用户访问数据被更新的消息中携带有业务***域名。
当用户终端接收到用于指示用户访问数据被更新的消息时,用户终端可向主SSO服务器发送Token更新请求。该Token更新请求中携带有用户信息、该业务***域名、该用户终端对应的Ticket。
主SSO服务器在接收到Token更新请求后,可确定与该Token更新请求中携带的业务***域名对应的子SSO服务器,然后将该Token更新请求发送至该子SSO服务器。
子SSO服务器在接收到该Token更新请求后,获取Token更新请求携带的用户信息当前对应的用户访问数据并重新生成第二Token。其中,获取用户当前对应的用户访问数据并重新生成第二Token的方式如步骤204所示,这里不再赘述。
此外,子SSO服务器可将第二Token和所述Ticket关联储存至Token更新请求携带的业务***域名对应的SSO-STORE。
子SSO服务器还可向用户终端返回第二Token。用户终端在接收到第二Token后,可使用第二Token更新本地记录的第一Token,并展示第二Token。
此外,本申请还提供用户终端退出登录的方式。
当用户终端退出登录时,需要将SSO-STORE中与该用户终端对应的Ticket及其Token删除、以及将用户终端对应的Ticket及其对应的用户标识删除、以及将包含该用户终端对应的Ticket的关键信息及其对应的用户标识删除。
在实现时,当用户登出业务***时,用户终端可向主SSO服务器发送登出请求。该登出请求中携带Ticket和登出的业务***域名。
主SSO服务器可确定与登出的业务***域名对应的SSO-STORE,然后在确定出的SSO-STORE中删除与该登出请求携带的Ticket以及该Ticket关联的Token。
参见图3,图3是本申请一示例性实施例示出的一种单点登录方法的流程图,该方法可应用在图1所示的单点登录***中的主SSO服务器,可包括如下所示步骤。
步骤301:主SSO服务器获取用户通过重定向页面提交的用户信息。所述重定向页面的链接是由所述业务***在检测到所述用户终端发送的业务访问请求中未携带Ticket时发送。
其中,该登录请求中携带有用户信息和用户所访问的业务***的业务***域名。
具体地,当用户需要访问图1所示单点登录***中的业务***时,用户终端可将用户的业务访问请求发送给业务***。
业务***在接收到该业务访问请求后,可检查该业务访问请求中是否携带有Ticket。
若该业务访问请求中未携带Ticket,说明该用户终端首次访问该业务***。此时,业务***则向所述用户终端返回重定向页面链接。
用户终端基于重定向页面链接获取重定向页面。
用户终端可展示该重定向页面。用户可在该重定向页面上输入用户信息。该用户信息可包括:用户名、密码等。
用户终端可获取用户输入的用户信息,并向主SSO服务器发送登录请求。该登录请求中携带有用户信息和所述业务***的域名。
步骤302:主SSO服务器确定与所述业务***对应的子SSO服务器。
在实现时,主SSO服务器上储存有业务***域名与子SSO服务器标识的对应关系,主SSO服务器可在该对应关系中,查找与该登录请求携带的业务***域名对应的子SSO服务器标识。
其中,子SSO服务器标识可包括:子SSO服务器的IP地址、设备ID等等,这里只是示例性地说明,不进行具体地限定。
步骤303:主SSO服务器可将所述登录请求转发给所述子SSO服务器,以使得所述子SSO服务器对所述用户信息进行校验,在校验通过后,基于所述用户信息生成Ticket并返回给所述用户终端,以使所述用户终端将所述Ticket添加至所述业务访问请求中并发送给所述业务***;以及以使得所述子SSO服务器获取与该用户信息对应的用户访问数据并生成第一Token,将生成的Ticket和第一Token关联储存至所述业务***对应的SSO-STORE。
在实现时,主SSO服务器可将所述登录请求转发给所述子SSO服务器。
子SSO服务器在接收到该登录请求后,可对所述用户信息进行校验,在校验通过后,基于所述用户信息生成Ticket并返回给所述用户终端。
用户终端将所述Ticket添加至所述业务访问请求中并发送给所述业务***。
此外,子SSO服务器在校验通过后,获取与该用户信息对应的用户访问数据并生成第一Token,将生成的Ticket和第一Token关联储存至所述业务***对应的SSO-STORE。
此外,在本申请实施例中,主SSO服务器接收用户终端发送的Token更新请求;所述Token更新请求中携带用户信息、所述业务***域名和该用户终端对应的Ticket;所述Token更新请求是由所述用户终端在接收到所述业务***返回的无效消息后发送,或者是由所述用户终端接收到用于指示用户访问数据被更新的消息后发送。
主SSO服务器可将Token更新请求转发至与所述业务***对应的所述子SSO服务器,以由所述子SSO服务器获取该用户信息当前对应的用户访问数据并重新生成第二Token,并将第二Token和所述Ticket关联储存至所述业务***对应的SSO-STORE,并向用户终端返回第二Token,以使用户终端展示第二Token。
在本申请实施例中,当用户登出业务***时,用户终端可向主SSO服务器发送登出请求。该登出请求中携带Ticket和登出的业务***域名。
主SSO服务器可确定与登出的业务***域名对应的SSO-STORE,然后在确定出的SSO-STORE中删除与该登出请求携带的Ticket以及该Ticket关联的Token。
参见图4,图4是本申请一示例性实施例示出的另一种单点登录方法的流程图,该方法可应用在图1所示单点登录***中的业务***上,可包括如下所示步骤。
步骤401:业务***接收用户终端发送的业务访问请求。
当用户需要访问图1所示单点登录***中的业务***时,用户终端可将用户的业务访问请求发送给业务***。
步骤402:业务***检测该业务访问请求中是否携带Ticket。
在实现时,业务***可检测业务访问请求的cookie或者指定参数中是否携带有Ticket。
步骤403:若该业务访问请求中未携带Ticket,则向用户终端返回重定向页面链接,以由所述用户终端通过重定向页面链接将用户输入的用户信息重定向至所述主SSO服务器,由所述主SSO服务器将用户信息转发给所述业务***对应的子SSO服务器,以由所述子SSO服务器在对用户信息校验通过后,基于所述用户信息生成Ticket并返回给所述用户终端,以使所述用户终端将所述Ticket添加至所述业务访问请求中并发送给所述业务***,以及以由所述子SSO服务器获取与该用户信息对应的用户访问数据并生成第一Token,将生成的Ticket和第一Token关联储存至所述业务***对应的SSO-STORE。
在实现时,若该业务访问请求中未携带Ticket,说明该用户终端首次访问该业务***。此时,业务***则向所述用户终端返回重定向页面链接。
用户终端基于重定向页面链接获取重定向页面。
用户终端获取用户在所述重定向页面上输入的用户信息,并向所述主SSO服务器发送携带有用户信息和所述业务***域名的登录请求。
所述主SSO服务器将登录请求转发给所述业务***域名对应的子SSO服务器。
所述子SSO服务器对所述用户信息进行校验,在校验通过后,基于所述用户信息生成Ticket并返回给所述用户终端。所述子SSO服务器还可获取与该用户信息对应的用户访问数据并生成第一Token,将生成的Ticket和第一Token关联储存至所述业务***域名对应的SSO-STORE。
所述用户终端将所述Ticket添加至所述业务访问请求中并发送给所述业务***。
在本申请实施例中,若业务访问请求中携带有Ticket,业务***可在本业务***域名对应的SSO-STORE中查找是否存在与该Ticket对应的第一Token。
若该SSO-STORE中存在与该Ticket对应的第一Token,则确定用户终端成功登录至所述业务***,并向用户终端返回所述业务访问请求所请求的资源。
若该SSO-STORE中不存在与该Ticket对应的第一Token,则向所述用户终端返回用于指示第一Token无效的无效消息,以使得所述用户终端向所述主SSO服务器发送携带有所述Ticket、用户信息和所述业务***域名的Token更新请求,以由所述主SSO服务器将该Token更新请求转发至所述子SSO服务器,以由所述子SSO服务器获取该用户信息当前对应的用户登录行为记录和可访问资源列表并重新生成第二Token,并将第二Token和所述Ticket关联储存至所述业务***域名对应的SSO-STORE,并向用户终端返回第二Token,以使用户终端展示第二Token。
其中,业务***中被配置了SSO客户端,SSO客户端以插件形式储存在业务***。业务***执行的针对单点登录的操作均可由SSO客户端来执行,比如,业务***的SSO客户端执行上述步骤401至步骤403。当然,业务***中还可以单独配置一段代码程序,由这段代码程序来执行上述单点登录操作,这里只是示例性地说明,不进行具体地限定。
由上述描述可知,一方面,在对用户信息校验通过后,子SSO服务器将为该用户生成的Ticket和包含有该用户的用户访问数据的Token关联储存在各业务***对应的SSO-STORE中,不仅实现对访问各业务***的用户的Ticket的管理,还可以在用户在线时,基于该Ticket追踪到用户访问数据。
另一方面,主服务器将针对不同业务***的请求(例如登录请求和Token更新请求)分配给不同的子SSO服务器,由子服务器处理自身对应的业务***的请求,实现了负载分担,提高了请求处理效率。
第三方面,本申请将用户访问数据的存储和管理从子SSO服务器中剥离出去,使得子SSO服务器只做请求处理,从而大大提高了子SSO服务器的处理性能。此外,将用户访问数据存储和管理从子SSO服务器剥离出去,即使子SSO服务器工作状态异常时,也不影响用户访问数据的存储和管理。
参见图5,图5是本申请一示例性实施例示出的一种单点登录方法的流程图。
该单点登录方法可应用于图1所示的单点登录***,该方法可包括如下所示步骤。
步骤501:响应于用户针对业务***1的触发操作,用户终端向业务***1发送业务访问请求1。
当用户在用户终端输入业务***1中某一应用的URL链接,或者点击业务***1中的某一应用时,用户终端可检测用户针对业务***1的触发操作。
用户终端可以基于该应用的URL链接,获取到用户访问的业务***1的业务***域名,并向业务***1发送携带有业务***1域名的业务访问请求1。
步骤502:业务***1的SSO客户端拦截业务访问请求1,并检测所述业务访问请求1中是否携带Ticket1;
若该业务访问请求1中未携带Ticket1,则执行步骤503至步骤518;
若该业务访问请求1中携带有Ticket1,则执行步骤519至步骤530。
步骤503:若该业务访问请求1中未携带Ticket1,业务***1的SSO客户端则向所述用户终端返回用于重定向页面链接。
该重定向页面链接用于指示用户终端基于该重定向页面链接获取重定向页面。
步骤504:用户终端基于重定向页面链接获取重定向页面,并获取用户在所述重定向页面上输入的用户信息。
该重定向页面用于指示用户在该重定向页面上输入用户信息。
其中,所述用户信息包括:用户名和密码等。这里只是对用户信息进行示例性地说明,不进行具体地限定。
步骤505:用户终端向所述主SSO服务器发送登录请求;所述登录请求携带所述用户信息和所述业务***1域名。
用户终端可基于用户信息和所要访问的业务***1域名,构造登录请求,并将该登录请求发送至主SSO服务器。
步骤506:主SSO服务器确定与所述业务***1域名对应的子SSO服务器1。
在实现时,主SSO服务器上储存有业务***域名与子SSO服务器标识的对应关系,主SSO服务器可在该对应关系中,查找与该登录请求携带的业务***域名对应的子SSO服务器标识(即子SSO服务器1的标识)。
步骤507:主SSO服务器将所述登录请求转发给所述子SSO服务器1。
主SSO服务器将该登录请求转发给步骤506中确定出的子SSO服务器标识所指示的子SSO服务器1。
步骤508:子SSO服务器1对所述登录请求中携带的身份信息进行校验。
若校验不通过,则执行步骤509;
若校验通过,则执行步骤510至步骤518。
步骤509:若校验不通过,子SSO服务器1则向用户终端返回提示消息。
该提示消息用于指示该用户终端的用户信息校验不通过。
步骤510:若校验通过,子SSO服务器基于该登录请求中携带的用户信息生成Ticket1。
在实现时,子SSO服务器可从用户信息中获取用户标识,比如UUID_A。该用户标识可以唯一标识一个用户。
子SSO服务器还可生成指定位数的随机数,如UUID_B。
然后,子SSO服务器基于获取到的用户标识和生成的随机数,生成Ticket1。比如,子SSO服务器可按照指定规则将UUID_A和UUID_B编译为Ticket1。
步骤511:子SSO服务器1向与该业务***域名对应的权限服务器1发送获取请求。
该获取请求中携带了所述用户信息。
步骤512:子SSO服务器1接收权限服务器1返回的与该用户信息对应的可访问资源列表。
权限服务器1在接收到该获取请求后,可查找与该用户信息对应的可访问资源列表,并将该可访问资源列表返回给子SSO服务器1。
步骤513:子SSO服务器1向与该业务***域名对应的用户服务器1发送获取请求。
该获取请求携带有用户信息。
步骤514:子SSO服务器1接收用户服务器1返回的与该用户信息对应的用户登录行为记录。
用户服务器1在接收到该获取请求后,可查找与该用户信息对应的用户登录行为记录,并将该用户登录行为记录返回给子SSO服务器1。
步骤515:子SSO服务器1基于获取到的用户登录行为记录和可访问资源列表生成Token1。
在实现时,子SSO服务器1可对用户登录行为记录和可访问资源列表拼接等操作,生成Token1。
步骤516:子SSO服务器1可将所述Ticket1和所述Token1关联储存至所述业务***域名对应的SSO-STORE1。
在实现时,子SSO服务器可将Ticket1作为Key,将Token1作为Value存储至该业务***域名对应的SSO-STORE中。
步骤517:子SSO服务器1向用户终端返回生成的Ticket1。
该Ticket1用于指示终端将该Ticket1添加该上述业务访问请求中,并将该业务访问请求重新发送至业务***1。
步骤518:子SSO服务器1向用户终端返回Token1。
用户终端可展示Token1,以使得用户可查看Token1中的用户登录行为记录和可访问资源列表。
步骤519:若该业务访问请求中携带Ticket1,则检测与该业务***域名对应的SSO-STORE1中是否存在与该Ticket1对应的Token1。
若SSO-STORE1中存在与该Ticket1对应的Token1,则执行步骤520;
若SSO-STORE1中不存在与该Ticket1对应的Token1,则执行步骤521至步骤530。
步骤520:若与该业务***域名对应的SSO-STORE中存在与该Ticket对应的Token1,则业务***1的SSO客户端向用户终端返回该业务访问请求所访问的资源。
若与该业务***域名对应的SSO-STORE中存在与该Ticket对应的Token1,则表明该用户终端成功登录该业务***1。业务***1的SSO客户端向用户终端返回该业务访问请求所访问的资源。
步骤521:若SSO-STORE1中不存在与该Ticket1对应的Token1,则向用户终端返回无效消息。
该无效消息用于指示Ticket1对应的Token1无效。
步骤522:用户终端向主SSO服务器发送Token更新消息。
所述Token更新请求携带有所述Ticket1、用户信息和所述业务***1域名;
步骤523:主SSO服务器将所述Token更新请求转发给业务***1域名对应的子SSO服务器1。
主SSO服务器可查找与该业务***1域名对应的子SSO服务器1,然后主SSO服务器可将Token更新请求转发给子SSO服务器1。
步骤524:子SSO服务器1向与该业务***域名对应的用户服务器1发送获取请求。
该获取请求携带有用户信息。
步骤525:子SSO服务器1接收用户服务器1返回的与该用户信息当前对应的用户登录行为记录。
用户服务器1在接收到该获取请求后,可查找与该用户信息对应的用户登录行为记录,并将该用户登录行为记录返回给子SSO服务器1。
步骤526:子SSO服务器1向与该业务***1域名对应的权限服务器1发送获取请求。
该获取请求携带有用户信息。
步骤527:子SSO服务器1接收权限服务器1返回的与该用户信息对应的可访问资源列表。
权限服务器1在接收到该获取请求后,可查找与该用户信息对应的可访问资源列表,并将该可访问资源列表返回给子SSO服务器1。
步骤528:子SSO服务器1基于获取到的用户登录行为记录和可访问资源列表生成Token2。
在实现时,子SSO服务器1可对用户登录行为记录和可访问资源列表拼接等操作,生成Token2。
步骤529:子SSO服务器可将所述Ticket1和所述Token2关联储存至所述业务***域名对应的SSO-STORE1。
在实现时,子SSO服务器可将Ticket1作为Key,将Token2作为Value存储至该业务***域名对应的SSO-STORE中。
步骤530:子SSO服务器1向用户终端返回Token2。
用户终端可展示Token2,以使得用户可查看Token2中的用户登录行为记录和可访问资源列表。
此外,本申请还提供了一种Token的更新方法,参见图6,图6是本申请一示例性实施例示出的一种Token更新方法的流程图。
仍以图5所示的例子为例,假设权限服务器1储存的用户可访问资源列表被更新、或者用户服务器1储存的用户登录行为记录被更新,权限服务器或者用户服务器可以通知主SSO服务器用户访问数据已被更新。在该用户访问数据被更新后,可执行步骤601至步骤610。
步骤601:主SSO服务器向用户终端发送用于指示用户访问数据被更新的消息。
该被更新消息中携带有被更新的用户访问数据对应的用户信息和业务***1的域名。
步骤602:用户终端向主SSO服务器发送Token更新请求。
所述Token请求中携带有该用户终端对应的Ticket、用户信息和业务***1域名。
步骤603:主SSO服务器将该Token更新请求转发给该Token更新请求携带的业务***1域名对应的子SSO服务器1。
主SSO服务器可查找与该业务***1域名对应的子SSO服务器1,然后主SSO服务器可将Token更新请求转发给子SSO服务器1。
步骤604:子SSO服务器1向与该业务***1域名对应的用户服务器1发送获取请求。
该获取请求携带有用户信息。
步骤605:子SSO服务器1接收用户服务器1返回的与该用户信息当前对应的用户登录行为记录。
用户服务器1在接收到该获取请求后,可查找与该用户信息对应的用户登录行为记录,并将该用户登录行为记录返回给子SSO服务器1。
步骤606:子SSO服务器1向与该业务***1域名对应的权限服务器1发送获取请求。
该获取请求携带有用户信息。
步骤607:子SSO服务器1接收权限服务器1返回的与该用户信息对应的可访问资源列表。
权限服务器1在接收到该获取请求后,可查找与该用户信息对应的可访问资源列表,并将该可访问资源列表返回给子SSO服务器1。
步骤608:子SSO服务器1基于获取到的用户登录行为记录和可访问资源列表生成Token3。
在实现时,子SSO服务器1可对用户登录行为记录和可访问资源列表拼接等操作,生成Token3。
步骤609:子SSO服务器1可将所述Ticket1和所述Token3关联储存至所述业务***1域名对应的SSO-STORE1。
在实现时,子SSO服务器可将Ticket1作为Key,将Token3作为Value存储至该业务***域名对应的SSO-STORE中。
步骤610:子SSO服务器1向用户终端返回Token3。
用户终端可展示Token3,以使得用户可查看Token2中的用户登录行为记录和可访问资源列表。
此外,本申请还提供一种登出方法,参见图7,图7是本申请示出的一种登出方法的流程图,该方法可包括如下所示步骤。
假设用户登出业务***1,当用户退出业务***1时可执行步骤701至步骤704。
步骤701:用户终端响应于用户触发的登出操作,向主SSO服务器发送登出请求。
所述登出请求中携带有Ticket1和登出的业务***1域名。
步骤702:主SSO服务器确定与该登出的业务***1域名对应的SSO-STORE1。
主SSO服务器上还预配置了各业务***域名与各SSO-STORE标识的对应关系,主SSO服务器可在该对应关系中,查找业务***1域名对应的SSO-STORE标识,查找出的SSO-STORE标识所指示的SSO-STORE即为SSO-STORE1。
步骤703:主SSO服务器向SSO-STORE1发送删除指令。
所述删除指令中携带Ticket1;
步骤704:SSO-STORE1删除本地储存的该Ticket1以及该Ticket1对应的Token1。
SSO-STORE1可响应该删除指令,删除本地储存的该Ticket1以及该Ticket1对应的Token1。
参见图8,图8是本申请一示例性实施例示出的一种子SSO服务器的硬件结构图。
该子SSO服务器包括:通信接口801、处理器802、机器可读存储介质803和总线804;其中,通信接口801、处理器802和机器可读存储介质803通过总线404完成相互间的通信。处理器802通过读取并执行机器可读存储介质803中与单点登录控制逻辑对应的机器可执行指令,可执行上文描述的单点登录方法。
本文中提到的机器可读存储介质803可以是任何电子、磁性、光学或其它物理存储装置,可以包含或存储信息,如可执行指令、数据,等等。例如,机器可读存储介质可以是:易失存储器、非易失性存储器或者类似的存储介质。具体地,机器可读存储介质803可以是RAM(Radom Access Memory,随机存取存储器)、闪存、存储驱动器(如硬盘驱动器)、固态硬盘、任何类型的存储盘(如光盘、DVD等),或者类似的存储介质,或者它们的组合。
参见图9,图9是本申请一示例性实施例示出的一种单点登录装置的框图。该单点登录装置可应用在图8所述的子SSO服务器上,所述单点登录***还包括:多个SSO-STORE、多个业务***、主SSO服务器;每个业务***对应有一个或多个子SSO服务器,以及一个或多个SSO-STORE,所述装置包括:
接收单元901,用于接收所述主SSO服务器发送的用户信息;所述用户信息由用户通过重定向页面提交;所述重定向页面的链接是由所述业务***在检测到所述用户终端发送的业务访问请求中未携带Ticket时发送;
生成单元902,用于在对所述用户信息校验通过后,基于所述用户信息生成Ticket;
获取单元903,用于获取与所述用户信息对应的用户访问数据,生成第一Token;
储存单元904,用于将所述Ticket和所述第一Token关联储存至所述业务***对应的SSO-STORE。
可选的,所述装置还包括:
返回单元905,用于将所述Ticket返回给所述用户终端,以使所述用户终端将所述Ticket添加至所述业务访问请求中并发送给所述业务***。
可选的,所述生成单元902,具体用于从所述用户信息中获取用户标识;随机生成指定位数的随机数;基于所述用户标识和所述随机数生成Ticket。
可选的,所述用户访问数据包括:用户登录行为记录和可访问资源列表;
所述单点登录***还包括:与所述业务***对应的权限服务器和用户服务器;所述用户服务器至少储存有各用户信息对应的用户登录行为记录;所述权限服务器至少存储有各用户信息对应的可访问资源列表;
所述获取单元903,具体用于从所述用户服务器中获取与所述用户信息对应的用户登录行为记录;从所述权限服务器中获取与所述用户信息对应的可访问资源列表。
可选的,所述储存单元904,具体用于将所述Ticket作为键,第一Token作为键值储存至所述SSO-STORE。
可选的,所述接收单元901,还用于接收到所述主SSO服务器转发的来自于用户终端的Token更新请求;所述Token更新请求携带有所述Ticket、用户信息和所述业务***域名;
所述获取单元903,还用于获取该用户信息当前对应的用户访问数据并生成第二Token;
所述储存单元904,还用于将第二Token和所述Ticket关联储存至所述业务***域名对应的SSO-STORE。
参见图10,图10是本申请一示例性实施例示出的一种主SSO服务器的硬件结构图。
该主SSO服务器包括:通信接口1001、处理器1002、机器可读存储介质1003和总线1004;其中,通信接口1001、处理器1002和机器可读存储介质1003通过总线1004完成相互间的通信。处理器1002通过读取并执行机器可读存储介质1003中与单点登录控制逻辑对应的机器可执行指令,可执行上文描述的单点登录方法。
本文中提到的机器可读存储介质1003可以是任何电子、磁性、光学或其它物理存储装置,可以包含或存储信息,如可执行指令、数据,等等。例如,机器可读存储介质可以是:易失存储器、非易失性存储器或者类似的存储介质。具体地,机器可读存储介质1003可以是RAM(Radom Access Memory,随机存取存储器)、闪存、存储驱动器(如硬盘驱动器)、固态硬盘、任何类型的存储盘(如光盘、DVD等),或者类似的存储介质,或者它们的组合。
参见图11,图11是本申请一示例性实施例示出的另一种单点登录装置的框图。所述单点登录***还包括:多个子SSO服务器、多个SSO-STORE、用户终端以及至少一个业务***;每个业务***对应有一个或多个子SSO服务器,以及一个或多个SSO-STORE。
所述装置包括:
获取单元1101,用于获取用户通过重定向页面提交的用户信息;所述重定向页面的链接是由所述业务***在检测到所述用户终端发送的业务访问请求中未携带Ticket时发送;
第一确定单元1102,用于确定与所述业务***对应的子SSO服务器;
第一转发单元1103,用于将所述用户信息转发给所述子SSO服务器,以使得所述子SSO服务器在对所述用户信息校验通过后,获取与该用户信息对应的用户访问数据并生成第一Token,将生成的Ticket和第一Token关联储存至所述业务***的域名对应的SSO-STORE。
可选的,所述装置还包括:
第一接收单元1104,用于接收由所述用户终端发送的Token更新请求;所述Token更新请求中携带用户信息和所述业务***的域名;所述Token更新请求是由所述用户终端在接收到所述业务***返回的无效消息后发送,或者是由所述用户终端接收到用于指示用户访问数据被更新的消息后发送;
第二转发单元1105,用于将所述Token更新请求转发至与所述业务***对应的所述子SSO服务器,以由所述子SSO服务器获取该用户信息当前对应的用户访问数据并生成第二Token,并将第二Token和所述Ticket关联储存至所述业务***对应的SSO-STORE。
可选的,所述装置还包括:
第二接收单元1106,用于接收所述用户终端发送的登出请求;所述登出请求中携带有Ticket和登出的业务***的域名;
第二确定单元1107,用于确定与所述登出的业务***对应的SSO-STORE;
删除单元1108,用于在查找到的SSO-STORE中删除该登出请求携带的Ticket及其关联的Token。
参见图12,图12是本申请一示例性实施例示出的一种业务***的硬件结构图。
该业务***包括:通信接口1201、处理器1202、机器可读存储介质1203和总线1204;其中,通信接口1201、处理器1202和机器可读存储介质1203通过总线1204完成相互间的通信。处理器1202通过读取并执行机器可读存储介质1203中与单点登录控制逻辑对应的机器可执行指令,可执行上文描述的单点登录方法。
本文中提到的机器可读存储介质1203可以是任何电子、磁性、光学或其它物理存储装置,可以包含或存储信息,如可执行指令、数据,等等。例如,机器可读存储介质可以是:易失存储器、非易失性存储器或者类似的存储介质。具体地,机器可读存储介质1203可以是RAM(Radom Access Memory,随机存取存储器)、闪存、存储驱动器(如硬盘驱动器)、固态硬盘、任何类型的存储盘(如光盘、DVD等),或者类似的存储介质,或者它们的组合。
参见图13,图13是本申请一示例性实施例示出的另一种单点登录装置的框图。该装置可应用在图12所示的业务***中。所述单点登录***还包括:多个子SSO服务器、多个SSO-STORE、用户终端和主SSO服务器;每个业务***对应有一个或多个子SSO服务器,以及一个或多个SSO-STORE;
所述装置包括:
接收单元1301,用于接收到所述用户终端发送业务访问请求;
检测单元1302,用于检测所述业务访问请求中是否携带Ticket;
返回单元1303,用于若否,则向用户终端返回指向所述主SSO服务器的重定向页面的链接,以由主SSO服务器,用于将用户通过所述重定向页面提交的用户信息发给所述业务***对应的子SSO服务器,由所述子SSO服务器对所述用户信息进行校验,并在校验通过后,基于所述用户信息生成票据Ticket,并获取与该用户信息对应的用户访问数据并生成第一Token,将生成的Ticket和第一令牌Token关联储存至所述业务***对应的SSO-STORE。
可选的,所述装置还包括:
查找单元1304,用于若是,则在本业务***对应的SSO-STORE中查找是否存在与该Ticket对应的第一Token;若存在,则向用户终端返回所述业务访问请求所访问的资源;若不存在,则向所述用户终端返回用于指示第一Token无效的无效消息,以使得所述用户终端向所述主SSO服务器发送携带有所述Ticket、用户信息和所述业务***的Token更新请求,以由所述主SSO服务器将该Token更新请求转发至所述子SSO服务器,以由所述子SSO服务器获取该用户信息当前对应的用户访问数据并重新生成第二Token,并将第二Token和所述Ticket关联储存至所述业务***对应的SSO-STORE。
上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本申请方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。

Claims (28)

1.一种单点登录***,其特征在于,所述***包括:主单点登录SSO服务器、多个子SSO服务器、多个业务***、多个单点登录仓库SSO-STORE;每个业务***对应有一个或多个子SSO服务器,以及一个或多个SSO-STORE;
所述业务***,用于在接收到用户终端发送业务访问请求后,检测所述业务访问请求中是否携带票据Ticket;若否,则向所述用户终端返回指向所述主SSO服务器的重定向页面的链接;
主SSO服务器,用于将用户通过所述重定向页面提交的用户信息发送给所述业务***对应的子SSO服务器;
所述子SSO服务器,用于对所述用户信息进行校验,并在校验通过后,基于所述用户信息生成Ticket,并获取与该用户信息对应的用户访问数据,并基于获取到的用户访问数据生成第一令牌Token,将生成的Ticket和第一Token关联储存至所述业务***对应的SSO-STORE。
2.根据权利要求1所述的***,其特征在于,
所述子SSO服务器还用于将所述Ticket返回所述用户终端,以使所述用户终端将所述Ticket添加至所述业务访问请求中并发送给所述业务***。
3.根据权利要求1所述的***,其特征在于,
所述业务***,还用于在检测到所述业务访问请求中携带有Ticket时,在本业务***对应的SSO-STORE中查找是否存在与该Ticket对应的第一Token;若存在,则向用户终端返回所述业务访问请求所访问的资源。
4.根据权利要求3所述的***,其特征在于,
所述业务***,还用于在本业务***对应的SSO-STORE中未查找到与该Ticket对应的第一Token时,向所述用户终端返回用于指示第一Token无效的无效消息;
所述用户终端在接收到该无效消息后,向所述主SSO服务器发送Token更新请求;所述Token更新请求携带有所述Ticket、用户信息和所述业务***域名;
所述主SSO服务器将所述Token更新请求转发给与所述业务***对应的子SSO服务器;
所述子SSO服务器获取该用户信息当前对应的用户访问数据并生成第二Token,并将第二Token和所述Ticket关联储存至所述业务***对应的SSO-STORE。
5.根据权利要求1所述的***,其特征在于,
所述主SSO服务器,还用于在接收到用户终端发送的登出请求后,确定与登出请求携带的业务***的域名对应的SSO-STORE,并在查找到的SSO-STORE中删除该登出请求携带的Ticket及其关联的Token。
6.根据权利要求1至5任一所述的***,其特征在于,所述用户访问数据包括:用户登录行为记录和可访问资源列表。
7.一种单点登录方法,其特征在于,所述方法应用于单点登录***中的任一子SSO服务器;所述单点登录***还包括:多个单点登录仓库SSO-STORE、多个业务***、主SSO服务器;每个业务***对应有一个或多个子SSO服务器,以及一个或多个SSO-STORE;
所述方法包括:
接收所述主SSO服务器发送的用户信息;所述用户信息由用户通过重定向页面提交;所述重定向页面的链接是由所述业务***在检测到用户终端发送的业务访问请求中未携带票据Ticket时发送;
在对所述用户信息校验通过后,基于所述用户信息生成Ticket;
获取与所述用户信息对应的用户访问数据,并基于获取到的用户访问数据生成第一Token;
将所述Ticket和所述第一Token关联储存至所述业务***对应的SSO-STORE。
8.根据权利要求7所述的方法,其特征在于,在所述基于所述用户信息生成Ticket之后,所述方法还包括:
将所述Ticket返回给所述用户终端,以使所述用户终端将所述Ticket添加至所述业务访问请求中并发送给所述业务***。
9.根据权利要求7所述的方法,其特征在于,所述基于所述用户信息生成Ticket,包括:
从所述用户信息中获取用户标识;
随机生成指定位数的随机数;
基于所述用户标识和所述随机数生成Ticket。
10.根据权利要求7所述的方法,其特征在于,所述用户访问数据包括:用户登录行为记录和可访问资源列表;
所述单点登录***还包括:与所述业务***对应的权限服务器和用户服务器;所述用户服务器至少储存有各用户信息对应的用户登录行为记录;所述权限服务器至少存储有各用户信息对应的可访问资源列表;
所述获取与所述用户信息对应的用户访问数据,包括:
从所述用户服务器中获取与所述用户信息对应的用户登录行为记录;
从所述权限服务器中获取与所述用户信息对应的可访问资源列表。
11.根据权利要求7所述的方法,其特征在于,所述将所述Ticket和所述第一Token关联储存至所述业务***的域名对应的SSO-STORE,包括:
将所述Ticket作为键,第一Token作为键值储存至所述SSO-STORE。
12.根据权利要求7所述的方法,其特征在于,所述方法还包括:
接收到所述主SSO服务器转发的来自于用户终端的Token更新请求;所述Token更新请求携带有所述Ticket、用户信息和所述业务***域名;
获取该用户信息当前对应的用户访问数据并生成第二Token;
将第二Token和所述Ticket关联储存至所述业务***对应的SSO-STORE。
13.一种单点登录方法,其特征在于,所述方法应用于单点登录***中的主SSO服务器,所述单点登录***还包括:多个子SSO服务器、多个单点登录仓库SSO-STORE、用户终端以及至少一个业务***;每个业务***对应有一个或多个子SSO服务器,以及一个或多个SSO-STORE;
所述方法包括:
获取用户通过重定向页面提交的用户信息;所述重定向页面的链接是由所述业务***在检测到所述用户终端发送的业务访问请求中未携带票据Ticket时发送;
确定与所述业务***对应的子SSO服务器;
将所述用户信息转发给所述子SSO服务器,以使得所述子SSO服务器在对所述用户信息校验通过后,获取与该用户信息对应的用户访问数据,并基于获取到的用户访问数据生成第一Token,将生成的Ticket和第一Token关联储存至所述业务***对应的SSO-STORE。
14.根据权利要求13所述的方法,其特征在于,所述方法还包括:
接收由所述用户终端发送的Token更新请求;所述Token更新请求中携带用户信息和所述业务***的域名;所述Token更新请求是由所述用户终端在接收到所述业务***返回的无效消息后发送,或者是由所述用户终端接收到用于指示用户访问数据被更新的消息后发送;
将所述Token更新请求转发至与所述业务***对应的所述子SSO服务器,以由所述子SSO服务器获取该用户信息当前对应的用户访问数据并生成第二Token,并将第二Token和所述Ticket关联储存至所述业务***对应的SSO-STORE。
15.根据权利要求13所述的方法,其特征在于,所述方法还包括:
接收所述用户终端发送的登出请求;所述登出请求中携带有Ticket和登出的业务***的域名;
确定与所述登出的业务***对应的SSO-STORE;
在查找到的SSO-STORE中删除该登出请求携带的Ticket及其关联的Token。
16.一种单点登录方法,其特征在于,所述方法应用于单点登录***中的任一业务***,所述单点登录***还包括:多个子SSO服务器、多个单点登录仓库SSO-STORE、用户终端和主SSO服务器;每个业务***对应有一个或多个子SSO服务器,以及一个或多个SSO-STORE;
所述方法包括:
接收到所述用户终端发送业务访问请求;
检测所述业务访问请求中是否携带票据Ticket;
若否,则向用户终端返回指向所述主SSO服务器的重定向页面的链接,以由主SSO服务器将用户通过所述重定向页面提交的用户信息发给所述业务***对应的子SSO服务器,由所述子SSO服务器对所述用户信息进行校验,并在校验通过后,基于所述用户信息生成Ticket,并获取与该用户信息对应的用户访问数据,并基于获取到的用户访问数据生成第一Token,将生成的Ticket和第一令牌Token关联储存至所述业务***对应的SSO-STORE。
17.根据权利要求16所述的方法,其特征在于,所述方法还包括:
若是,则在本业务***对应的SSO-STORE中查找是否存在与该Ticket对应的第一Token;
若存在,则向用户终端返回所述业务访问请求所访问的资源;
若不存在,则向所述用户终端返回用于指示第一Token无效的无效消息,以使得所述用户终端向所述主SSO服务器发送携带有所述Ticket、用户信息和所述业务***的Token更新请求,以由所述主SSO服务器将该Token更新请求转发至所述子SSO服务器,以由所述子SSO服务器获取该用户信息当前对应的用户访问数据并重新生成第二Token,并将第二Token和所述Ticket关联储存至所述业务***对应的SSO-STORE。
18.一种单点登录装置,其特征在于,所述装置应用于单点登录***中的任一子SSO服务器;所述单点登录***还包括:多个单点登录仓库SSO-STORE、多个业务***、主SSO服务器;每个业务***对应有一个或多个子SSO服务器,以及一个或多个SSO-STORE,所述装置包括:
接收单元,用于接收所述主SSO服务器发送的用户信息;所述用户信息由用户通过重定向页面提交;所述重定向页面的链接是由所述业务***在检测到所述用户终端发送的业务访问请求中未携带票据Ticket时发送;
生成单元,用于在对所述用户信息校验通过后,基于所述用户信息生成Ticket;
获取单元,用于获取与所述用户信息对应的用户访问数据,并基于获取到的用户访问数据生成第一Token;
储存单元,用于将所述Ticket和所述第一Token关联储存至所述业务***对应的SSO-STORE。
19.根据权利要求18所述的装置,其特征在于,所述装置还包括:
返回单元,用于将所述Ticket返回给所述用户终端,以使所述用户终端将所述Ticket添加至所述业务访问请求中并发送给所述业务***。
20.根据权利要求18所述的装置,其特征在于,所述生成单元,具体用于从所述用户信息中获取用户标识;随机生成指定位数的随机数;基于所述用户标识和所述随机数生成Ticket。
21.根据权利要求18所述的装置,其特征在于,所述用户访问数据包括:用户登录行为记录和可访问资源列表;
所述单点登录***还包括:与所述业务***对应的权限服务器和用户服务器;所述用户服务器至少储存有各用户信息对应的用户登录行为记录;所述权限服务器至少存储有各用户信息对应的可访问资源列表;
所述获取单元,具体用于从所述用户服务器中获取与所述用户信息对应的用户登录行为记录;从所述权限服务器中获取与所述用户信息对应的可访问资源列表。
22.根据权利要求18所述的装置,其特征在于,所述储存单元,具体用于将所述Ticket作为键,第一Token作为键值储存至所述SSO-STORE。
23.根据权利要求18所述的装置,其特征在于,
所述接收单元,还用于接收到所述主SSO服务器转发的来自于用户终端的Token更新请求;所述Token更新请求携带有所述Ticket、用户信息和所述业务***域名;
所述获取单元,还用于获取该用户信息当前对应的用户访问数据并生成第二Token;
所述储存单元,还用于将第二Token和所述Ticket关联储存至所述业务***域名对应的SSO-STORE。
24.一种单点登录装置,其特征在于,所述装置应用于单点登录***中的主SSO服务器,所述单点登录***还包括:多个子SSO服务器、多个单点登录仓库SSO-STORE、用户终端以及至少一个业务***;每个业务***对应有一个或多个子SSO服务器,以及一个或多个SSO-STORE;
所述装置包括:
获取单元,用于获取用户通过重定向页面提交的用户信息;所述重定向页面的链接是由所述业务***在检测到所述用户终端发送的业务访问请求中未携带票据Ticket时发送;
第一确定单元,用于确定与所述业务***对应的子SSO服务器;
第一转发单元,用于将所述用户信息转发给所述子SSO服务器,以使得所述子SSO服务器在对所述用户信息校验通过后,获取与该用户信息对应的用户访问数据,并基于获取到的用户访问数据生成第一Token,将生成的Ticket和第一Token关联储存至所述业务***的域名对应的SSO-STORE。
25.根据权利要求24所述的装置,其特征在于,所述装置还包括:
第一接收单元,用于接收由所述用户终端发送的Token更新请求;所述Token更新请求中携带用户信息和所述业务***的域名;所述Token更新请求是由所述用户终端在接收到所述业务***返回的无效消息后发送,或者是由所述用户终端接收到用于指示用户访问数据被更新的消息后发送;
第二转发单元,用于将所述Token更新请求转发至与所述业务***对应的所述子SSO服务器,以由所述子SSO服务器获取该用户信息当前对应的用户访问数据并生成第二Token,并将第二Token和所述Ticket关联储存至所述业务***对应的SSO-STORE。
26.根据权利要求24所述的装置,其特征在于,所述装置还包括:
第二接收单元,用于接收所述用户终端发送的登出请求;所述登出请求中携带有Ticket和登出的业务***的域名;
第二确定单元,用于确定与所述登出的业务***对应的SSO-STORE;
删除单元,用于在查找到的SSO-STORE中删除该登出请求携带的Ticket及其关联的Token。
27.一种单点登录装置,其特征在于,所述装置应用于单点登录***中的任一业务***,所述单点登录***还包括:多个子SSO服务器、多个单点登录仓库SSO-STORE、用户终端和主SSO服务器;每个业务***对应有一个或多个子SSO服务器,以及一个或多个SSO-STORE;
所述装置包括:
接收单元,用于接收到所述用户终端发送业务访问请求;
检测单元,用于检测所述业务访问请求中是否携带票据Ticket;
返回单元,用于若否,则向用户终端返回指向所述主SSO服务器的重定向页面的链接,以由主SSO服务器,用于将用户通过所述重定向页面提交的用户信息发给所述业务***对应的子SSO服务器,由所述子SSO服务器对所述用户信息进行校验,并在校验通过后,基于所述用户信息生成Ticket,并获取与该用户信息对应的用户访问数据,并基于获取到 的用户访问数据生成第一Token,将生成的Ticket和第一令牌Token关联储存至所述业务***对应的SSO-STORE。
28.根据权利要求27所述的装置,其特征在于,所述装置还包括:
查找单元,用于若是,则在本业务***对应的SSO-STORE中查找是否存在与该Ticket对应的第一Token;若存在,则向用户终端返回所述业务访问请求所访问的资源;若不存在,则向所述用户终端返回用于指示第一Token无效的无效消息,以使得所述用户终端向所述主SSO服务器发送携带有所述Ticket、用户信息和所述业务***的Token更新请求,以由所述主SSO服务器将该Token更新请求转发至所述子SSO服务器,以由所述子SSO服务器获取该用户信息当前对应的用户访问数据并重新生成第二Token,并将第二Token和所述Ticket关联储存至所述业务***对应的SSO-STORE。
CN201910736510.8A 2019-08-09 2019-08-09 一种单点登录方法、装置及*** Active CN110519240B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910736510.8A CN110519240B (zh) 2019-08-09 2019-08-09 一种单点登录方法、装置及***

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910736510.8A CN110519240B (zh) 2019-08-09 2019-08-09 一种单点登录方法、装置及***

Publications (2)

Publication Number Publication Date
CN110519240A CN110519240A (zh) 2019-11-29
CN110519240B true CN110519240B (zh) 2021-04-27

Family

ID=68623975

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910736510.8A Active CN110519240B (zh) 2019-08-09 2019-08-09 一种单点登录方法、装置及***

Country Status (1)

Country Link
CN (1) CN110519240B (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111371811B (zh) * 2020-04-23 2022-08-09 Oppo广东移动通信有限公司 一种资源调用方法、资源调用装置、客户端及业务服务器
CN111447245A (zh) * 2020-05-27 2020-07-24 杭州海康威视数字技术股份有限公司 一种认证方法、装置、电子设备和服务端
CN112487390A (zh) * 2020-11-27 2021-03-12 网宿科技股份有限公司 一种微服务切换方法及***
CN114765548B (zh) * 2020-12-30 2023-09-05 成都鼎桥通信技术有限公司 目标业务的处理方法及装置
CN112597472B (zh) * 2021-03-03 2021-06-04 北京视界云天科技有限公司 单点登录方法、装置及存储介质
CN113626840A (zh) * 2021-07-23 2021-11-09 曙光信息产业(北京)有限公司 接口认证方法、装置、计算机设备和存储介质
CN114884724B (zh) * 2022-05-06 2024-03-22 杭州联吉技术有限公司 一种云服务器交互方法、装置、可读存储介质及终端设备

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102946603A (zh) * 2012-10-31 2013-02-27 重庆市电力公司 电力云***中基于社交特性的统一身份认证方法
CN108200050A (zh) * 2017-12-29 2018-06-22 重庆金融资产交易所有限责任公司 单点登录服务器、方法及计算机可读存储介质
CN109063457A (zh) * 2018-06-22 2018-12-21 杭州才云科技有限公司 一种跨平台登录统一认证对接方法、存储介质、电子设备
CN110032842A (zh) * 2019-03-03 2019-07-19 北京立思辰安科技术有限公司 同时支持单点登录及第三方登录的方法

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030188193A1 (en) * 2002-03-28 2003-10-02 International Business Machines Corporation Single sign on for kerberos authentication
US9961069B2 (en) * 2015-07-22 2018-05-01 Ca, Inc. Ticket generator for alternate authentication environments
CN110062005A (zh) * 2019-04-30 2019-07-26 郝向伟 用户终端、服务器、验证***及方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102946603A (zh) * 2012-10-31 2013-02-27 重庆市电力公司 电力云***中基于社交特性的统一身份认证方法
CN108200050A (zh) * 2017-12-29 2018-06-22 重庆金融资产交易所有限责任公司 单点登录服务器、方法及计算机可读存储介质
CN109063457A (zh) * 2018-06-22 2018-12-21 杭州才云科技有限公司 一种跨平台登录统一认证对接方法、存储介质、电子设备
CN110032842A (zh) * 2019-03-03 2019-07-19 北京立思辰安科技术有限公司 同时支持单点登录及第三方登录的方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
《多数据库单点登录身份认证模型研究》;张蓝;《中国优秀硕士学位论文全文数据库 信息科技辑》;20171015;第三章-第五章 *

Also Published As

Publication number Publication date
CN110519240A (zh) 2019-11-29

Similar Documents

Publication Publication Date Title
CN110519240B (zh) 一种单点登录方法、装置及***
CN107948203B (zh) 一种容器登录方法、应用服务器、***及存储介质
CN112597472B (zh) 单点登录方法、装置及存储介质
US9692747B2 (en) Authenticating linked accounts
US9350739B2 (en) Recovery from rolling security token loss
CN102891826B (zh) 网页访问的控制方法、设备和***
CN110602216B (zh) 多终端使用单账号的方法、装置、云服务器及存储介质
CN108600177A (zh) 一种权限控制方法和装置
EP4161012A1 (en) Authentication method and apparatus, electronic device, server, program, and storage medium
CN105141605B (zh) 会话方法、网站服务器及浏览器
CN101540755B (zh) 一种修复数据的方法、***和装置
US8375424B2 (en) Replicating selected secrets to local domain controllers
CN104519018A (zh) 一种防止针对服务器的恶意请求的方法、装置和***
CN101764808B (zh) 自动登录的认证处理方法、服务器和***
US20110131339A1 (en) Data access control method and system
US10951510B2 (en) Communication device and communication method
US8352442B2 (en) Determination of an updated data source from disparate data sources
CN112118269A (zh) 一种身份认证方法、***、计算设备及可读存储介质
CN110197075A (zh) 资源访问方法、装置、计算设备以及存储介质
CN111988295A (zh) 一种数据库审计方法、装置、web服务器、数据库审计***和存储介质
CN109522462B (zh) 一种基于区块链的云查询方法、装置、设备及存储介质
KR20110092896A (ko) 웹 사이트 자동 로그인 방법 및 시스템
CN111917732B (zh) 一种大数据组件的访问方法、装置、***及电子设备
CN117834270A (zh) 一种登录管理方法、***、装置及存储介质
CN116318841A (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
GR01 Patent grant
GR01 Patent grant