一种分布式系统的控制方法及登录系统转让专利

申请号 : CN201610213133.6

文献号 : CN107276966B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 韩松

申请人 : 北京京东尚科信息技术有限公司北京京东世纪贸易有限公司

摘要 :

本发明公开了一种分布式系统的控制方法,所述分布式系统包括登录系统和业务系统,该方法包括:登录系统接收到输入的业务系统信息,并确认审核通过后,动态生成带有所述业务系统标识的客户端登录程序包,所述客户端登录程序包包括用于对登录cookie值进行解密的cookie解密程序包;登录系统将所述cookie解密程序包推送到所述业务系统的每个服务器上,用于所述业务系统启动后加载所述cookie解密程序包,解密登录cookie值。本发明还公开了一种分布式系统中的登录系统。采用本发明能够确保系统的登录安全。

权利要求 :

1.一种分布式系统的控制方法,所述分布式系统包括登录系统和业务系统,该方法包括:登录系统接收到输入的业务系统信息,并确认审核通过后,动态生成带有所述业务系统标识的客户端登录程序包,所述客户端登录程序包包括用于对登录cookie值进行解密的cookie解密程序包;

登录系统将所述cookie解密程序包推送到所述业务系统的每个服务器上,用于所述业务系统启动后加载所述cookie解密程序包,解密登录cookie值。

2.如权利要求1所述的方法,其特征在于,所述客户端登录程序包还包括用于业务系统动态获取密钥列表的程序包;

登录系统推送所述cookie解密程序包的同时,还将所述用于业务系统动态获取密钥列表的程序包推送到所述业务系统的每个服务器上,以使业务系统的服务器根据所述用于业务系统动态获取密钥列表的程序包定时向登录系统发送动态获取密钥列表的请求。

3.如权利要求1或2所述的方法,其特征在于,所述业务系统信息输入在客户端记录表中,包括所述业务系统标识,及业务系统所在的多个服务器IP地址;

所述登录系统根据每个服务器的IP地址,将所述cookie解密程序包或者用于业务系统动态获取密钥列表的程序包推送到所述业务系统的每个服务器上。

4.如权利要求3所述的方法,其特征在于,所述客户端记录表中每个业务系统所在的多个服务器IP地址形成一个IP列表;该方法进一步包括:登录系统接收到业务系统的服务器定时发送的动态获取密钥列表的请求后,获取所述业务系统的标识以及该服务器的IP地址,并通过所述业务系统的标识查询客户端记录表,确认该服务器的IP地址是否存在于所述业务系统标识对应的IP列表中,如果存在,则将登录系统当前密钥列表同步到该服务器上。

5.如权利要求3所述的方法,其特征在于,所述客户端记录表还包括客户端登录程序包版本,该方法进一步包括:在客户端登录程序包升级后,登录系统将升级后的客户端登录程序包推送到所述业务系统的每个服务器上,并更新客户端记录表中客户端登录程序包版本号。

6.如权利要求3所述的方法,其特征在于,所述客户端记录表还包括对业务系统信息的审核状态,客户端登录程序包推送是否完成的标志;该方法进一步包括:在登录系统确认对业务系统信息的审核通过后,更新客户端记录表中该业务系统信息的审核状态为通过;

在登录系统完成客户端登录程序包的推送后,更新客户端记录表中推送标志为完成。

7.如权利要求2所述的方法,其特征在于,所述登录系统采用了实时修改的密钥列表,该密钥列表包括多个密钥值,每个密钥值对应有密钥状态和密钥版本。

8.一种分布式系统中的登录系统,该登录系统包括:

生成单元,接收到输入的业务系统信息,并确认审核通过后,动态生成带有所述业务系统标识的客户端登录程序包,所述客户端登录程序包包括用于对登录cookie值进行解密的cookie解密程序包;

推送单元,将所述cookie解密程序包推送到所述业务系统的每个服务器上,用于所述业务系统启动后加载所述cookie解密程序包,解密登录cookie值。

9.如权利要求8所述的登录系统,其特征在于,所述客户端登录程序包还包括用于业务系统动态获取密钥列表的程序包;

所述推送单元,推送所述cookie解密程序包的同时,还将所述用于业务系统动态获取密钥列表的程序包推送到所述业务系统的每个服务器上,以使业务系统的服务器根据所述用于业务系统动态获取密钥列表的程序包定时向登录系统发送动态获取密钥列表的请求。

10.如权利要求8或9所述的登录系统,其特征在于,所述业务系统信息输入在客户端记录表中,包括所述业务系统标识,及业务系统所在的多个服务器IP地址;

所述推送单元,根据每个服务器的IP地址,将所述cookie解密程序包或者用于业务系统动态获取密钥列表的程序包推送到所述业务系统的每个服务器上。

11.如权利要求10所述的登录系统,其特征在于,所述客户端记录表中每个业务系统所在的多个服务器IP地址形成一个IP列表;

所述登录系统还包括处理单元,接收到业务系统的服务器定时发送的动态获取密钥列表的请求后,获取所述业务系统的标识以及该服务器的IP地址,并通过所述业务系统的标识查询客户端记录表,确认该服务器的IP地址是否存在于所述业务系统标识对应的IP列表中,如果存在,则将登录系统当前密钥列表同步到该服务器上。

12.如权利要求10所述的登录系统,其特征在于,所述客户端记录表还包括客户端登录程序包版本,所述推送单元,在客户端登录程序包升级后,登录系统将升级后的客户端登录程序包推送到所述业务系统的每个服务器上,并更新客户端记录表中客户端登录程序包版本号。

13.如权利要求10所述的登录系统,其特征在于,所述客户端记录表还包括对业务系统信息的审核状态,客户端登录程序包推送是否完成的标志;

所述推送单元,

在登录系统确认对业务系统信息的审核通过后,更新客户端记录表中该业务系统信息的审核状态为通过;

在登录系统完成客户端登录程序包的推送后,更新客户端记录表中推送标志为完成。

说明书 :

一种分布式系统的控制方法及登录系统

技术领域

[0001] 本发明涉及分布式系统技术领域,特别涉及一种分布式系统的控制方法及登录系统。

背景技术

[0002] 随着网络的蓬勃发展,分布式系统已经成为大型系统网站的必要手段,将复杂的业务系统进行拆分,拆分成若干个功能系统,形成大规模的分布式系统应用。这样,就涉及到若干个功能系统的统一登录问题,即单点登录。即从登录系统登录后,访问其他业务系统时可以不再登录,即可访问对应的功能。
[0003] 现有技术方案是用户每次通过单点登录系统,输入账号密码进行登录验证,验证成功后登录系统会通过唯一的密钥生成加密信息(登录cookie值),同时,将加密信息放置到cookie中返回给用户客户端浏览器。之后,用户再通过浏览器访问各个业务系统时,每个业务系统都会从用户的请求中获取登录cookie值,用与单点登录系统相同的密钥进行cookie值解密,并校验解密结果是否合法。如果不合法,则跳回登录页面重新登录;如果合法,则正常处理用户的请求。
[0004] 需要说明的是,每个业务都需要接入单点登录系统,接入的方式即为将客户端登录程序包引入该业务系统,客户端登录程序包包括用于对登录cookie值进行解密的cookie解密程序包,是用来进行cookie解密的客户端程序,与登录系统的cookie值加密逻辑为逆向过程。
[0005] 现有技术方案存在客户端登录程序包被业务系统能随意获取、反编译,可以分析登录cookie解密代码,同时,获取cookie密钥的方法、地址等都能被容易地获取到,登录系统存在很大的安全风险。

发明内容

[0006] 本发明的目的在于提供一种分布式系统的控制方法及登录系统,能够确保系统的登录安全。
[0007] 为实现上述发明目的,本发明提供了一种分布式系统的控制方法,所述分布式系统包括登录系统和业务系统,该方法包括:登录系统接收到输入的业务系统信息,并确认审核通过后,动态生成带有所述业务系统标识的客户端登录程序包,所述客户端登录程序包包括用于对登录cookie值进行解密的cookie解密程序包;登录系统将所述cookie解密程序包推送到所述业务系统的每个服务器上,用于所述业务系统启动后加载所述cookie解密程序包,解密登录cookie值。
[0008] 为实现上述发明目的,本发明还提供了一种分布式系统中的登录系统,该登录系统包括:生成单元,接收到输入的业务系统信息,并确认审核通过后,动态生成带有所述业务系统标识的客户端登录程序包,所述客户端登录程序包包括用于对登录cookie值进行解密的cookie解密程序包;推送单元,统将所述cookie解密程序包推送到所述业务系统的每个服务器上,用于所述业务系统启动后加载所述cookie解密程序包,解密登录cookie值。
[0009] 为实现上述发明目的,本发明还提供了一种分布式系统的控制装置,其特征在于,[0010] 包括:
[0011] 存储器;以及
[0012] 耦接至所述存储器的处理器,所述处理器被配置为基于存储在所述存储器中的指令,执行上述任一项所述的方法。
[0013] 为实现上述发明目的,本发明还提供了一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现上述任一项所述的方法。
[0014] 综上所述,本发明实施例的分布式系统的控制方法,所述分布式系统包括登录系统和业务系统,该方法包括:登录系统接收到输入的业务系统信息,并确认审核通过后,动态生成带有所述业务系统标识的客户端登录程序包,所述客户端登录程序包包括用于对登录cookie值进行解密的cookie解密程序包;登录系统将所述cookie解密程序包推送到所述业务系统的每个服务器上,用于所述业务系统启动后加载所述cookie解密程序包,解密登录cookie值。由此可以看出,本发明的方案中,登录系统在确认业务系统信息审核通过后,自动将客户端登录程序包推送给业务系统。业务系统的开发人员并不会知晓,可以防止恶意人员获取客户端登录程序包进行cookie破解、密钥偷取等操作,因此提高了业务系统的安全性。

附图说明

[0015] 图1为本发明实施例分布式系统的控制方法的流程示意图。
[0016] 图2为本发明实施例登录系统的结构示意图。

具体实施方式

[0017] 为使本发明的目的、技术方案及优点更加清楚明白,以下参照附图并举实施例,对本发明所述方案作进一步地详细说明。
[0018] 本发明的方案针对现有系统中存在的缺陷,采用登录系统统一管理客户端登录程序包的方式,并将客户端登录程序包自动推送到业务系统所在的服务器上(如Tomcat、Jboss上),这样能隔离登录程序与业务程序,让业务开发人员不能获取到客户端登录程序包,保证登录系统对开发人员的隔离。
[0019] 本发明实施例分布式系统的控制方法的流程示意图如图1所示,其中,所述分布式系统包括登录系统和业务系统,该方法包括以下步骤:
[0020] 步骤11、登录系统接收到输入的业务系统信息,并确认审核通过后,动态生成带有所述业务系统标识的客户端登录程序包,所述客户端登录程序包包括用于对登录cookie值进行解密的cookie解密程序包。
[0021] 步骤12、登录系统将所述cookie解密程序包推送到所述业务系统的每个服务器上,用于所述业务系统启动后加载所述cookie解密程序包,解密登录cookie值。
[0022] 进一步地,在步骤11中,动态生成的客户端登录程序包还包括用于业务系统动态获取密钥列表的程序包;在步骤12中,登录系统推送所述cookie解密程序包的同时,还将所述用于业务系统动态获取密钥列表的程序包推送到所述业务系统的每个服务器上,以使业务系统的服务器根据所述用于业务系统动态获取密钥列表的程序包定时向登录系统发送动态获取密钥列表的请求。
[0023] 其中,所述业务系统信息输入在客户端记录表中,包括所述业务系统标识,及业务系统所在的多个服务器IP地址;所述登录系统根据每个服务器的IP地址,将所述cookie解密程序包或者用于业务系统动态获取密钥列表的程序包推送到所述业务系统的每个服务器上。
[0024] 进一步地,所述客户端记录表中每个业务系统所在的多个服务器IP地址形成一个IP列表;该方法进一步包括:登录系统接收到业务系统的服务器定时发送的动态获取密钥列表的请求后,获取所述业务系统的标识以及该服务器的IP地址,并通过所述业务系统的标识查询客户端记录表,确认该服务器的IP地址是否存在于所述业务系统标识对应的IP列表中,如果存在,则将登录系统当前密钥列表同步到该服务器上。
[0025] 优选地,所述客户端记录表还包括客户端登录程序包版本,该方法进一步包括:在客户端登录程序包升级后,登录系统将升级后的客户端登录程序包推送到所述业务系统的每个服务器上,并更新客户端记录表中客户端登录程序包版本号。
[0026] 优选地,所述客户端记录表还包括对业务系统信息的审核状态,客户端登录程序包推送是否完成的标志;该方法进一步包括:在登录系统确认对业务系统信息的审核通过后,更新客户端记录表中该业务系统信息的审核状态为通过;在登录系统完成客户端登录程序包的推送后,更新客户端记录表中推送标志为完成。
[0027] 综上,本发明由登录系统自动向业务系统推送客户端登录程序包,并且登录系统根据业务系统服务器IP列表对业务系统向登录系统获取密钥列表的方式进行了限制,有效提高了系统的登录安全性。
[0028] 为清楚说明本发明,下面列举具体场景进行说明。
[0029] 1)业务系统的开发人员在登录系统的客户端记录表中录入本业务系统的信息。客户端记录表中可以包括业务系统的标识,业务系统所在的多个服务器IP地址形成的IP列表。
[0030] 例如,业务系统A,对应的IP列表(IP1,IP2,IP3)。当然,客户端记录表中还可以包括其他关于业务系统的信息,例如每个业务系统的负责人等信息。
[0031] 2)在审核人员对上述业务系统A的信息进行审核通过后,登录系统更新客户端记录表中该业务系统信息的审核状态为通过。
[0032] 3)登录系统动态生成客户端登录程序包,将该业务系统的标识A打入该客户端登录程序包中。
[0033] 4)登录系统将客户端登录程序包推送到业务系统A的每个服务器上,即推送到IP地址分别为IP1,IP2,IP3的服务器上。登录系统更新客户端记录表中业务系统A对应的推送标志为完成。
[0034] 其中,客户端登录程序包包括用于对登录cookie值进行解密的cookie解密程序包,还包括用于业务系统动态获取密钥列表的程序包。
[0035] cookie解密程序包是用来进行cookie解密的客户端程序,与登录系统的cookie值加密逻辑为逆向过程。业务系统启动后加载所述cookie解密程序包,然后利用密钥和该cookie解密程序包解密登录cookie值。
[0036] 用于业务系统动态获取密钥列表的程序包,是使业务系统的服务器根据所述用于业务系统动态获取密钥列表的程序包定时向登录系统发送动态获取密钥列表的请求。
[0037] 客户端记录表如表1所示。
[0038] 业务系统标识 IP列表 审核状态 客户端登录程序包版本 推送是否完成业务系统A IP1,IP2,IP3 通过 V1 是业务系统B IP11,IP12,IP13 通过 V2 否
[0039] 表1
[0040] 本发明实施例中,客户端记录表还包括客户端登录程序包版本,在客户端登录程序包升级后,登录系统将升级后的客户端登录程序包推送到所述业务系统的每个服务器上,并更新客户端记录表中客户端登录程序包版本号。
[0041] 其中,客户端记录表中关于业务系统B的信息的形成过程与业务系统A原理相同。业务系统B,对应的IP列表(IP11,IP12,IP13),审核状态为通过,客户端登录程序包版本为V2,客户端登录程序包推送未完成。
[0042] 这里需要注意的是,现有技术中登录系统并不存在密钥列表,只有一个唯一的密钥用来生成登录cookie值,该密钥也是业务系统用来解密登录cookie值的。进而,现有技术中,引入业务系统的客户端登录程序包也不需要包含用于业务系统动态获取密钥列表的程序包。而本发明的方案中登录系统采用了实时修改的密钥列表,该密钥列表包括多个密钥值,每个密钥值对应有密钥状态和密钥版本。也就是说,登录系统管理人员维护密钥列表,因此密钥列表可以实时修改,可以对现有的密钥进行失效处理等,也可以新增密钥。而且,更重要的是,本发明的方案客户端登录程序包包含用于业务系统动态获取密钥列表的程序包,该程序包被登录系统推送到业务系统后,业务系统根据所述用于业务系统动态获取密钥列表的程序包定时同步登录系统当前密钥列表。只是,本发明进一步对定时获取登录系统当前密钥列表的方式进行了限制,下面进行详细说明。
[0043] 登录系统接收到业务系统A的服务器(IP地址为IP1)定时发送的动态获取密钥列表的请求后,从请求中获取所述业务系统的标识A以及该服务器的IP地址(IP1),并通过所述业务系统的标识A查询客户端记录表,确认该服务器的IP地址是否存在于所述业务系统标识A对应的IP列表中,如果存在,则将登录系统当前密钥列表同步到该服务器上。如果不存在,则结束流程。
[0044] 根据上述描述,本发明分布式系统的登录验证方法可以包括以下步骤:
[0045] 步骤S1、登录系统在验证客户端的账号密码成功后,采用密钥列表中最高版本的有效密钥生成带有该最高版本号的登录cookie值,并将所述登录cookie值返回给客户端;
[0046] 步骤S2、业务系统接收到客户端携带有所述登录cookie值的业务请求后,获取登录cookie值的密钥版本,通过所述密钥版本在同步得到的密钥列表中查询对应的密钥;利用该密钥和推送得到的cookie解密程序包解密登录cookie值,在校验解密结果合法后,处理正常的业务请求。
[0047] 其中,业务系统的密钥列表是在业务系统启动后,根据推送得到的用于业务系统动态获取密钥列表的程序包,定时同步登录系统当前密钥列表,并且校验IP地址通过后得到的。
[0048] 需要说明的是,本发明除了将客户端登录程序包推送到业务系统服务器上外,也可以将客户端登录程序包推送到服务器的某个路径上,之后将该路径加入到系统路径,便于业务程序能够访问到该程序包,采用本地方法调用的方式(如JAVA本能地方法的方式),也可以达到一致的效果。
[0049] 基于同样的发明构思,本发明公开了一种登录系统,结构示意图如图2所示。该登录系统包括:
[0050] 生成单元201,接收到输入的业务系统信息,并确认审核通过后,动态生成带有所述业务系统标识的客户端登录程序包,所述客户端登录程序包包括用于对登录cookie值进行解密的cookie解密程序包;
[0051] 推送单元202,将所述cookie解密程序包推送到所述业务系统的每个服务器上,用于所述业务系统启动后加载所述cookie解密程序包,解密登录cookie值。
[0052] 所述客户端登录程序包还包括用于业务系统动态获取密钥列表的程序包;
[0053] 所述推送单元202,推送所述cookie解密程序包的同时,还将所述用于业务系统动态获取密钥列表的程序包推送到所述业务系统的每个服务器上,以使业务系统的服务器根据所述用于业务系统动态获取密钥列表的程序包定时向登录系统发送动态获取密钥列表的请求。
[0054] 所述业务系统信息输入在客户端记录表中,包括所述业务系统标识,及业务系统所在的多个服务器IP地址;
[0055] 所述推送单元202,根据每个服务器的IP地址,将所述cookie解密程序包或者用于业务系统动态获取密钥列表的程序包推送到所述业务系统的每个服务器上。
[0056] 所述客户端记录表中每个业务系统所在的多个服务器IP地址形成一个IP列表;
[0057] 所述登录系统还包括处理单元203,接收到业务系统的服务器定时发送的动态获取密钥列表的请求后,获取所述业务系统的标识以及该服务器的IP地址,并通过所述业务系统的标识查询客户端记录表,确认该服务器的IP地址是否存在于所述业务系统标识对应的IP列表中,如果存在,则将登录系统当前密钥列表同步到该服务器上。
[0058] 所述客户端记录表还包括客户端登录程序包版本,
[0059] 所述推送单元202,在客户端登录程序包升级后,登录系统将升级后的客户端登录程序包推送到所述业务系统的每个服务器上,并更新客户端记录表中客户端登录程序包版本号。
[0060] 所述客户端记录表还包括对业务系统信息的审核状态,客户端登录程序包推送是否完成的标志;
[0061] 所述推送单元202,
[0062] 在登录系统确认对业务系统信息的审核通过后,更新客户端记录表中该业务系统信息的审核状态为通过;
[0063] 在登录系统完成客户端登录程序包的推送后,更新客户端记录表中推送标志为完成。
[0064] 本发明的有益效果在于:
[0065] 一、本发明采用业务系统注册机制来管理登录的业务系统,采用业务系统服务器IP白名单的方式来对密钥的获取进行限制。既可以防止恶意人员获取客户端登录程序包进行cookie破解、密钥偷取等操作,又可以进行系统单点登录的监控管理、白名单控制等,可有效提高单点登录系统的登录安全系数。
[0066] 二、本发明由登录系统管理人员动态管理密钥列表,业务系统定时获取到登录系统的密钥列表,而业务系统的开发人员并不会知晓,因此进一步提高了业务系统的安全性。
[0067] 以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。