一种实现单点登录系统中账户同步的方法及装置与流程

文档序号:14490555阅读:690来源:国知局
一种实现单点登录系统中账户同步的方法及装置与流程

本发明涉及单点登录技术领域,具体涉及一种实现单点登录系统中账户同步的方法及装置。



背景技术:

计算机系统常常需要对访问者的身份进行识别,识别该访问者为系统的用户后,才针对该用户提供相应的服务。不同的服务由不同的服务提供端(sp,serviceprovider)提供,而每个sp均需进行用户信息验证才可提供服务。用户在需要使用不同服务时,每次先输入用户账户信息进行登录操作,才能访问提供服务的sp,操作繁琐。这时,为了简化用户操作,单点登录(sso,singlesign-on)系统应运而生。

一般的,在单点登录系统中包括身份提供端(idp,identityprovider)和sp,idp用于进行用户账户信息的校验;sp用于为校验通过后的用户提供服务。单点登录系统的技术实现机制可以为:当访问者通过某一服务终端(如浏览器等)第一次访问单点登录系统中的某一sp时,由被访问的sp引导访问者到idp中进行用户账户信息校验;idp进行该用户账户信息的校验,如果校验通过,idp确定该访问者为单点登录系统的用户且具有访问该sp的权限,向用户所在服务终端返回一标识;用户通过该服务终端再访问单点登录系统中另一sp时,该另一sp将服务终端中的标识发给idp进行验证,如果idp验证该访问者也具有访问该另一sp的权限,用户无须再次进行登录操作即可访问该另一sp。通过上述实现机制,用户无需重复进行各个sp的登录,从而方便了用户对不同sp的访问。

在现有的单点登录系统中,sp获取用户账户信息的途径是idp在用户请求登录该sp后进行登录验证成功时向该sp返回该用户的用户账户信息,但是,在一些场景下,sp需要对全部具有登录该sp权限的用户账户信息进行操作,例如进行内部权限管理等,而如果用户没有登录则sp无从得知这些用户的用户账户信息,也就无法进行一些特定的操作,即在现有技术中sp无法实现与idp的账户同步。



技术实现要素:

有鉴于此,本发明提供一种实现单点登录系统中账户同步的方法及装置,以解决现有技术中sp无法实现与idp的账户同步。

为解决上述问题,本发明提供的技术方案如下:

一种实现单点登录系统中账户同步的方法,所述方法包括:

接收服务提供端sp发送的获取账户信息请求;

获取所述获取账户信息请求中的请求时间;

判断所述sp是否发送过所述获取账户信息请求;

如果所述sp发送过所述获取账户信息请求且所述请求时间在所记录的最晚的请求时间之后,向所述sp发送在第一时间段内与所述sp相关的发生变化的用户账户信息并记录所述请求时间,所述第一时间段为所述请求时间与所记录的最晚的请求时间之间的时间段。

相应的,所述方法还包括:

如果所述sp发送过所述获取账户信息请求同时所述请求时间小于或等于第一时间且大于第二时间,向所述sp发送在第二时间段内与所述sp相关的发生变化的用户账户信息,所述第二时间段为所述第二时间到所述第一时间的时间段,所述第一时间与所述第二时间为所记录的请求时间中相邻的两个请求时间。

相应的,所述方法还包括:

如果所述sp未发送过所述获取账户信息请求,向所述sp发送当前全部与所述sp相关的用户账户信息并记录所述请求时间;

如果所述sp发送过所述获取账户信息请求且所述请求时间为所记录的最早的请求时间或者在所记录的最早的请求时间之前,向所述sp发送当前全部与所述sp相关的用户账户信息。

相应的,所述判断所述sp是否发送过所述获取用户信息请求,包括:

根据是否记录有所述sp发送的获取账户信息请求中的请求时间判断所述sp是否发送过所述获取用户信息请求。

相应的,所述与所述sp相关的用户账户信息包括具有登录所述sp权限用户的用户账户信息;所述与所述sp相关的发生变化的用户账户信息包括新增的具有登录所述sp权限用户的用户账户信息以及具有登录所述sp权限的用户更新后的用户账户信息。

一种实现单点登录系统中账户同步的装置,所述装置包括:

接收单元,用于接收服务提供端sp发送的获取账户信息请求;

获取单元,用于获取所述获取账户信息请求中的请求时间;

判断单元,用于判断所述sp是否发送过所述获取账户信息请求;

第一发送单元,用于如果所述判断单元的判断结果为所述sp发送过所述获取账户信息请求,且所述请求时间在所记录的最晚的请求时间之后,向所述sp发送在第一时间段内与所述sp相关的发生变化的用户账户信息并记录所述请求时间,所述第一时间段为所述请求时间与所记录的最晚的请求时间之间的时间段。

相应的,所述装置还包括:

第二发送单元,用于如果所述sp发送过所述获取账户信息请求同时所述请求时间小于或等于第一时间且大于第二时间,向所述sp发送在第二时间段内与所述sp相关的发生变化的用户账户信息,所述第二时间段为所述第二时间到所述第一时间的时间段,所述第一时间与所述第二时间为所记录的请求时间中相邻的两个请求时间。

相应的,所述装置还包括:

第三发送单元,用于如果所述判断单元的判断结果为所述sp未发送过所述获取账户信息请求,向所述sp发送当前全部与所述sp相关的用户账户信息并记录所述请求时间;

第四发送单元,用于如果所述判断单元的判断结果为所述sp发送过所述获取账户信息请求,且所述请求时间为所记录的最早的请求时间或者在所记录的最早的请求时间之前,向所述sp发送当前全部与所述sp相关的用户账户信息。

相应的,所述判断单元具体用于:

根据是否记录有所述sp发送的获取账户信息请求中的请求时间判断所述sp是否发送过所述获取用户信息请求。

相应的,所述与所述sp相关的用户账户信息包括具有登录所述sp权限用户的用户账户信息;所述与所述sp相关的发生变化的用户账户信息包括新增的具有登录所述sp权限用户的用户账户信息以及具有登录所述sp权限的用户更新后的用户账户信息。

由此可见,本发明实施例具有如下有益效果:

本发明实施例sp主动向idp发送获取账户信息请求,idp根据获取账户信息请求中的请求时间向该sp发送相应的用户账户信息并记录请求时间,以使sp可以得到全部用户账户信息以实现账户同步,从而sp可以进行某些特定操作,具体的,如果该sp未发送过获取账户信息请求时,idp向sp发送全部具有登录该sp权限的用户账户信息,而如果该sp发送过获取账户信息请求时,idp可以向该sp发送当前请求时间与上一次请求时间之间发生变化的用户账户信息,从而将idp中用户账户信息变化同步至sp中,且不用再传输全部用户账户信息;另外,根据请求时间还可以重新向sp发送指定时间段内发生变化的用户账户信息,从而避免sp因为网络故障等原因未接收到某时间段内的用户账户信息,以保证账户同步的准确性。

附图说明

图1为本发明实施例中提供的实现单点登录系统中账户同步的方法实施例的流程图;

图2为本发明为本发明实施例中提供的实现单点登录系统中账户同步的方法实施例的时间轴示意图;

图3为本发明实施例中提供的实现单点登录系统中账户同步的装置实施例一的示意图;

图4为本发明实施例中提供的实现单点登录系统中账户同步的装置实施例二的示意图。

具体实施方式

为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明实施例作进一步详细的说明。

本发明实施例中提供的实现单点登录系统中账户同步的方法及装置,是针对现有技术中sp需要进行对现有用户账户信息管理等操作时,只能在用户登录后才能从idp得到登录用户的用户账户信息,而如果用户没有登录,sp则无从得知未登录用户的用户账户信息,也就无法进行某些特定操作的技术问题,提出sp主动向idp请求获取用户账户信息,idp根据获取用户账户信息请求中的请求时间,向sp发送用户账户信息,即在idp中提供帮助sp实现同步用户账户信息的方法,使得在基于sso的登录系统中,实现sp可以对用户账户信息进行预操作与管理。

基于上述思想,参见图1所示,示出了本发明实施例中提供的实现单点登录系统中账户同步的方法实施例的流程图,本实施例可以应用于sso系统中的idp,本实施例可以包括以下步骤:

步骤101:接收sp发送的获取账户信息请求。

sso系统中可以包括至少一个sp,在sp需要获取具有登录本sp权限的用户的账户信息时,向sso系统中的idp发送获取账户信息请求,在获取账户信息请求中可以包括该sp的标识以及请求时间。idp接收sp发送的获取账户信息请求,可以获知具体哪一个sp需要获取用户账户信息。

步骤102:获取该获取账户信息请求中的请求时间。

在获取到sp发送的获取账户信息请求后,还可以获取该获取账户信息请求中的请求时间,请求时间可以包括日期以及时间,时间可以精确到秒或者根据实际情况进行设定。

步骤103:判断sp是否发送过获取账户信息请求。

idp可以根据sp的标识判断出该sp是否发送过获取账户信息请求,根据判断结果向该sp发送相应的用户账户信息。

在本发明的一些可能的实现方式中,本步骤可以根据是否记录有sp发送的获取账户信息请求中的请求时间判断sp是否发送过获取用户信息请求。

在本实施例中,idp在接收到sp发送的获取账户信息请求后会向sp发送相应的用户账户信息,同时会记录获取账户信息请求中的请求时间,这样则可以根据是否记录有请求时间判断出sp是否发送过获取用户信息请求。

步骤104:如果sp发送过获取账户信息请求且请求时间在所记录的最晚的请求时间之后,向sp发送在第一时间段内与sp相关的发生变化的用户账户信息并记录请求时间,第一时间段为请求时间与所记录的最晚的请求时间之间的时间段。

在本发明的一些可能的实现方法中,本发明实施例中提供的实现单点登录系统中账户同步的方法还可以包括:如果sp未发送过获取账户信息请求,向sp发送当前全部与sp相关的用户账户信息并记录请求时间。在本发明的一些可能的实现方法中,本发明实施例中提供的实现单点登录系统中账户同步的方法还可以包括:

如果sp发送过获取账户信息请求同时请求时间小于或等于第一时间且大于第二时间,向sp发送在第二时间段内与sp相关的发生变化的用户账户信息,第二时间段为第二时间到第一时间的时间段,第一时间与第二时间为所记录的请求时间中相邻的两个请求时间。

在本发明的一些可能的实现方法中,本发明实施例中提供的实现单点登录系统中账户同步的方法还可以包括:

如果sp发送过获取账户信息请求且请求时间为所记录的最早的请求时间或者在所记录的最早的请求时间之前,向sp发送当前全部与sp相关的用户账户信息。

也就是说,如果idp判断得到发送获取账户信息请求的sp是首次发送获取账户信息请求,则向该sp发送当前全部与该sp相关的用户账户信息并记录请求时间,与该sp相关的用户账户信息包括具有登录该sp权限用户的用户账户信息。

而如果idp判断得到发送获取账户信息请求的sp发送过获取账户信息请求,则可以根据记录的请求时间分为三种情况处理:

第一种情况为请求时间在所记录的最晚的请求时间之后,例如获取账户信息请求中的请求时间为2016年10月1日15:00:00,所记录的最晚的请求时间即所记录的上一次的请求时间为2016年10月1日14:00:00,则向sp发送请求时间与所记录的最晚的请求时间之间的时间段(本实施例中称为第一时间段,例如基于上述举例的2016年10月1日14:00:00至2016年10月1日15:00:00之间的时间段)内与该sp相关的发生变化的用户账户信息并记录请求时间。与sp相关的发生变化的用户账户信息可以包括新增的具有登录该sp权限用户的用户账户信息以及具有登录该sp权限的用户更新后的用户账户信息。

第二种情况为请求时间小于(即早于)或等于第一时间且大于(即晚于)第二时间,第一时间与第二时间为所记录的请求时间中相邻的两个请求时间,第一时间大于(即晚于)第二时间,则向sp发送第二时间段与sp相关的发生变化的用户账户信息,第二时间段即为第二时间到第一时间的时间段。例如当前获取账户信息请求中的请求时间为2016年9月1日14:30:00,处于所记录的两个相邻请求时间2016年9月1日14:00:00以及2016年9月1日15:00:00之间,2016年9月1日15:00:00为第一时间,2016年9月1日14:00:00为第二时间,向sp发送2016年9月1日14:00:00到2016年9月1日15:00:00这个时间段内与sp相关的发生变化的用户账户信息。与sp相关的发生变化的用户账户信息可以包括新增的具有登录该sp权限用户的用户账户信息以及具有登录该sp权限的用户更新后的用户账户信息。这种情况是为了避免sp因为网络故障、数据丢失等原因未获取到或丢失某一时间段内的用户账户信息时,可以重新获取某一时间段内的用户账户信息。

第三种情况为请求时间为所记录的最早的请求时间或者在所记录的最早的请求时间之前,重新向sp发送当前全部与sp相关的用户账户信息。与该sp相关的用户账户信息包括具有登录该sp权限用户的用户账户信息。这种情况是为了避免sp因为网络故障、数据丢失等原因丢失全部的用户账户信息时,可以再次获取全部的用户账户信息。

参见图2所示,根据上述实施例中请求时间的时间轴,再对本发明实施例中提供的实现单点登录系统中账户同步的方法进行说明。

假设发送获取账户信息请求的sp为spx(即标识为x的sp),在spx第一次发送获取账户信息请求时,idp检测到spx从未发送过获取账户信息请求,返回当前全部与spx相关的用户账户信息并记录请求时间time1。

spx第二次发送获取账户信息请求时,idp检测到spx已经发送过获取账户信息请求,并且请求时间time2在最后一次请求时间time1之后,返回time2与time1之间发生变化的用户账户信息并记录请求时间time2。

spx第n次发送获取账户信息请求时,idp检测到spx已经发送过获取账户信息请求,并且请求时间timen在最后一次请求时间timen-1之后,返回timen与timen-1之间发生变化的用户账户信息并记录请求时间timen。

若spx因网络故障、数据丢失等原因,需要再次获取某一时间段内的用户账户信息时,只需要将该时间段内的请求时间timey(timey小于等于timex但大于timex-1,)作为请求时间携带在获取账户信息请求中发送给idp,即可获取该段时间(timex-1到timex)内的用户账户信息。

若spx在获取账户信息请求中携带的请求时间timet为第一次的请求时间time1或者在第一次的请求时间之前(timet小于等于time1),则idp向spx返回当前全部与spx相关的用户账户信息,以使spx重新获得全部的用户账户信息。

这样,本发明实施例sp主动向idp发送获取账户信息请求,idp根据获取账户信息请求中的请求时间向该sp发送相应的用户账户信息并记录请求时间,具体的,如果该sp未发送过获取账户信息请求时,idp向sp发送全部具有登录该sp权限的用户账户信息,以使sp得到全部用户账户信息以实现账户同步,从而sp可以进行某些特定操作,而如果该sp发送过获取账户信息请求时,idp可以向该sp发送当前请求时间与上一次请求时间之间发生变化的用户账户信息,从而将idp中用户账户信息变化同步至sp中,且不用再传输全部用户账户信息;另外,根据请求时间还可以重新向sp发送指定时间段内发生变化的用户账户信息,从而避免sp因为网络故障等原因未接收到某时间段内的用户账户信息,以保证账户同步的准确性。

参见图3所示,示出了本发明实施例中提供的实现单点登录系统中账户同步的装置实施例一的示意图,本实施例可以应用于sso系统中的idp,本实施例可以包括:

接收单元301,用于接收服务提供端sp发送的获取账户信息请求。

获取单元302,用于获取该获取账户信息请求中的请求时间。

判断单元303,用于判断sp是否发送过获取账户信息请求。

在本发明的一些可能的实现方式中,判断单元可以具体用于:

根据是否记录有sp发送的获取账户信息请求中的请求时间判断sp是否发送过获取用户信息请求。

第一发送单元304,用于如果判断单元的判断结果为sp发送过获取账户信息请求,且请求时间在所记录的最晚的请求时间之后,向sp发送在第一时间段内与sp相关的发生变化的用户账户信息并记录请求时间,第一时间段为请求时间与所记录的最晚的请求时间之间的时间段。

参见图4所示,示出了本发明实施例中提供的实现单点登录系统中账户同步的装置实施例二的示意图,基于上述实施例,本发明实施例中提供的实现单点登录系统中账户同步的装置还可以包括:

第二发送单元401,用于如果sp发送过获取账户信息请求同时请求时间小于或等于第一时间且大于第二时间,向sp发送在第二时间段内与sp相关的发生变化的用户账户信息,第二时间段为第二时间到第一时间的时间段,第一时间与第二时间为所记录的请求时间中相邻的两个请求时间。

第三发送单元402,用于如果判断单元的判断结果为sp未发送过获取账户信息请求,向sp发送当前全部与sp相关的用户账户信息并记录请求时间。

第四发送单元403,用于如果判断单元的判断结果为sp发送过获取账户信息请求,且请求时间为所记录的最早的请求时间或者在所记录的最早的请求时间之前,向sp发送当前全部与sp相关的用户账户信息。

在本发明的一些可能的实现方式中,与sp相关的用户账户信息可以包括具有登录sp权限用户的用户账户信息;与sp相关的发生变化的用户账户信息可以包括新增的具有登录sp权限用户的用户账户信息以及具有登录sp权限的用户更新后的用户账户信息。

所述实现单点登录系统中账户同步的装置包括处理器和存储器,上述接收单元、获取单元、判断单元、第一发送单元、第二发送单元、第三发送单元和第四发送单元等均作为程序单元存储在存储器中,由处理器执行存储在存储器中的上述程序单元来实现相应的功能。

处理器中包含内核,由内核去存储器中调取相应的程序单元。内核可以设置一个或以上,通过调整内核参数来实现单点登录系统中账户同步。

存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flashram),存储器包括至少一个存储芯片。

这样,本发明实施例sp主动向idp发送获取账户信息请求,idp根据获取账户信息请求中的请求时间向该sp发送相应的用户账户信息并记录请求时间,具体的,如果该sp未发送过获取账户信息请求时,idp向sp发送全部具有登录该sp权限的用户账户信息,以使sp得到全部用户账户信息以实现账户同步,从而sp可以进行某些特定操作,而如果该sp发送过获取账户信息请求时,idp可以向该sp发送当前请求时间与上一次请求时间之间发生变化的用户账户信息,从而将idp中用户账户信息变化同步至sp中,且不用再传输全部用户账户信息;另外,根据请求时间还可以重新向sp发送指定时间段内发生变化的用户账户信息,从而避免sp因为网络故障等原因未接收到某时间段内的用户账户信息,以保证账户同步的准确性。

本申请还提供了一种计算机程序产品,当在数据处理设备上执行时,适于执行初始化有如下方法步骤的程序代码:

接收服务提供端sp发送的获取账户信息请求;

获取所述获取账户信息请求中的请求时间;

判断所述sp是否发送过所述获取账户信息请求;

如果所述sp发送过所述获取账户信息请求且所述请求时间在所记录的最晚的请求时间之后,向所述sp发送在第一时间段内与所述sp相关的发生变化的用户账户信息并记录所述请求时间,所述第一时间段为所述请求时间与所记录的最晚的请求时间之间的时间段。

需要说明的是,本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的系统或装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。

还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动磁盘、cd-rom、或技术领域内所公知的任意其它形式的存储介质中。

对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1