一种统一认证方法、分布式系统和计算机可读存储介质与流程

文档序号:16926005发布日期:2019-02-22 19:52阅读:166来源:国知局
一种统一认证方法、分布式系统和计算机可读存储介质与流程

本发明涉及计算机技术领域,更具体地,涉及一种统一认证方法、分布式系统和计算机可读存储介质。



背景技术:

随着各行各业对信息化应用的提升,使用的业务系统也逐渐增加,用于分布式系统(即该系统的各个子系统分别位于不同的物理服务器处)的登录方法愈加重要。

在现有技术中,用户访问位于不同的物理服务器处的多个子系统时针需要对每个子系统均执行一次常规的登录操作。这使得用户需要频繁地登录多个子系统,因此整个系统的效率较低。并且,由于每个子系统均需要部署和维护相互独立的登录组件以及相关联的加密算法,因此代码复用性和可维护性较差。



技术实现要素:

有鉴于此,本发明提供一种统一认证方法、分布式系统和计算机可读存储介质,以提高登录认证的效率、可靠性以及代码的复用性和可维护性。

第一方面,本发明实施例提供一种统一认证方法,应用于分布式系统,所述分布式系统包括多个子系统,所述方法包括:

接收客户端的登录请求消息,所述登录请求消息包括用户标识、密码和数字证书;

响应于所述登录请求消息查询对应的准入列表并生成令牌,所述准入列表为所述用户标识能够登录的子系统列表;

向所述客户端返回登录结果,所述登录结果包括令牌和准入列表;

接收子系统的令牌验证请求,所述令牌验证请求包括所述客户端发送给所述子系统的令牌;

对所述令牌进行验证并向所述子系统返回验证结果。

进一步地,接收子系统的令牌验证请求包括:

通过数据交换系统接收所述令牌验证请求,其中,所述数据交换子系统被配置为给多个所述子系统提供通信服务。

进一步地,所述方法还包括:

在所述令牌被验证通过后,接收所述客户端的模板列表请求,所述模板列表为所述客户端请求的消息列表;

响应于所述模板列表请求查询对应的模板列表并返回给所述客户端。

进一步地,所述登录请求消息还包括登录模式标识,所述登录模式包括代理登录模式,在所述登录模式为代理登录时,所述方法还包括:

响应于所述登录请求消息查询被代理用户的机构代码和准入列表,并生成令牌;

向所述客户端返回代理登录结果,所述代理登录结果包括被代理用户的机构代码、准入列表和令牌。

进一步地,所述方法还包括:

响应于所述客户端的注销请求注销所述用户标识。

进一步地,注销所述用户名包括:

在接收到所述注销请求后,将所述令牌失效并将所述用户标识被注销的消息通知给对应的子系统。

进一步地,以微服务技术方式执行所述统一认证方法的各步骤以提高所述统一认证方法的复用性。

第二方面,本发明实施例提供一种统一认证方法,应用于分布式系统,所述分布式系统包括认证服务器和至少一个子系统,所述方法包括:

向所述认证服务器发送登录请求消息,所述登录请求消息包括用户标识、密码和数字证书;

接收登录结果,所述登录结果包括令牌和准入列表,所述令牌由所述认证服务器生成;

向对应的所述子系统发送准入请求消息以验证所述令牌并获取准入请求结果,所述准入请求消息包括所述令牌,其中,所述令牌由所述认证服务器验证。

进一步地,所述方法还包括:

向所述认证服务器发送模板列表请求并接收模板列表,所述模板列表为所述客户端请求的消息列表。

进一步地,所述方法还包括:

向所述认证服务器发送登录请求消息并接收代理登录结果;其中,所述登录请求包括用户标识、密码、数字证书和代理登录模式的标识,所述登录结果包括被代理用户的机构代码、准入列表和令牌。

进一步地,所述方法还包括:

在所述认证服务器宕机时,向对应的所述子系统发送应急登录请求及接收应急登录结果,所述应急登录请求包括用户标识和密码。

进一步地,所述方法还包括:

向所述认证服务器发送注销请求,所述注销请求包括用户标识。

第三方面,本发明实施例提供一种分布式系统,包括:

认证服务器,被配置为接收客户端的登录请求消息,所述登录请求消息包括用户标识、密码和数字证书;

其中,所述认证服务器还被配置为响应于所述登录请求消息查询对应的准入列表并生成令牌,所述准入列表为所述用户标识能够登录的子系统列表;所述认证服务器还被配置为向所述客户端返回登录结果,所述登录结果包括令牌和准入列表;

至少一个子系统,被配置为向所述认证服务器发送令牌验证请求,所述令牌验证请求包括所述客户端发送给所述子系统的令牌;

所述认证服务器还被配置为对所述令牌进行验证并向所述子系统返回验证结果。

进一步地,所述分布式系统还包括:

数据交换系统,被配置为给所述分布式系统中的多个子系统提供通信服务;

所述子系统被配置为通过所述数据交换系统将所述令牌验证请求发送给所述认证服务器。

第四方面,本发明实施例提供一种计算机可读存储介质,其上存储计算机程序指令,所述计算机程序指令在被处理器执行时实现如本发明实施例第一方面所述的方法。

第五方面,本发明实施例提供一种计算机可读存储介质,其上存储计算机程序指令,所述计算机程序指令在被处理器执行时实现如本发明实施例第二方面所述的方法。

本发明实施例的技术方案通过使得认证服务器响应于客户端的登录请求消息生成令牌,并对来自子系统的令牌进行验证以完成客户端的统一认证,从而提高登录认证的效率、可靠性以及代码的复用性和可维护性。

附图说明

通过以下参照附图对本发明实施例的描述,本发明的上述以及其它目的、特征和优点将更为清楚,在附图中:

图1是本发明实施例的统一认证方法的流程图;

图2是本发明实施例的统一认证系统的示意图;

图3是本发明实施例的客户端采用用户登录的认证方法的流程图;

图4是本发明实施例的客户端采用代理登录的认证方法的流程图;

图5是本发明实施例的客户端采用应急登录的认证方法的流程图;

图6是本发明实施例的电子设备的示意图。

具体实施方式

以下基于实施例对本发明进行描述,但是本发明并不仅仅限于这些实施例。在下文对本发明的细节描述中,详尽描述了一些特定的细节部分。对本领域技术人员来说没有这些细节部分的描述也可以完全理解本发明。为了避免混淆本发明的实质,公知的方法、过程、流程、元件和电路并没有详细叙述。

此外,本领域普通技术人员应当理解,在此提供的附图都是为了说明的目的,并且附图不一定是按比例绘制的。

除非上下文明确要求,否则整个说明书和权利要求书中的“包括”、“包含”等类似词语应当解释为包含的含义而不是排他或穷举的含义;也就是说,是“包括但不限于”的含义。

在本发明的描述中,需要理解的是,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性。此外,在本发明的描述中,除非另有说明,“多个”的含义是两个或两个以上。

图1是本发明实施例的统一认证方法的流程图。如图1所示,本实施例的统一认证方法包括以下步骤:

在步骤s110,认证服务器接收客户端的登录请求消息,登录请求消息包括用户标识、密码和数字证书。其中,数字证书与用户所属机构进行绑定,因此可以通过用户所属机构在ldap(lightweightdirectoryaccessprotocol,轻量目录访问协议)中获取合法的数字证书的识别码。采用ldap协议使得数据和数据库内容同步提高了获取数据的速度。

优选地,在接收到客户端的登录请求消息之后,认证服务器需要对登录请求消息中的参数进行验证。具体地,1、判断该用户标识对应的用户是否是第一次登录或密码是否过期。若用户是第一次登陆(或密码已过期),则给客户端发送修改密码的消息。应理解,在分布式系统中,首次登录的密码一般为管理人员设置的,因此一般在用户第一次登录时需要修改密码。2、判断数字证书是否合法。由于合法的数字证书与用户所属机构绑定,因此可以通过用户所属机构在ldap中获取合法的数字证书的识别码以判断登录请求消息中的数字证书的合法性。3、对密码进行验证签名。例如,若登录请求消息中的密码采用pk7算法进行签名,则认证服务器采用pk7算法验证签名。4、验证用户标识和密码。根据密码的加密类型调用对应的函数验证用户标识和密码。例如,密码的加密类型为cfcasm3算法,则调用对应的函数(哈希函数)进行验证。其中,pk7算法和cfcasm3算法均是国家密码管理局编制的商用算法,用于密码应用中的数字签名和验证,消息认证码的生成与验证以及随机数的生成。

优选地,在接收到客户端的登录请求消息之后,认证服务器需要检查其是否处于服务时间内,其中,可以通过ldap获取其服务时间。若认证服务器不在服务时间内,则该用户登录失败。

在步骤s120,认证服务器响应于客户端的登录请求消息查询对应的准入列表并生成令牌。其中,准入列表为该用户标识能够登录的子系统列表。令牌是客户端能够登录对应的子系统的通行证。

在步骤s130,向客户端返回登录结果。其中,登录结果包括准入列表和令牌。

在步骤s140,接收子系统的令牌验证请求。具体地,客户端向对应的子系统发送准入请求消息,其中准入请求消息包括令牌。该子系统向认证服务器发送令牌验证请求,其中令牌验证请求包括客户端发送给该子系统的令牌。

在步骤s150,对令牌进行验证并向子系统返回验证结果。具体地,认证服务器对令牌进行验证。若该令牌被验证成功,则将令牌被验证成功的消息发送给子系统,该子系统将准入的消息发送给客户端。然后客户端可以向认证服务器发送模板请求。认证服务器查询对应模板列表并返回给客户端。其中,模板列表为客户端请求的消息列表。若令牌被验证失败,则将令牌被验证失败的消息发送给子系统,该子系统将不允许进入的消息发送给客户端,也即客户端登录该子系统失败。

优选地,子系统通过数据交换系统与认证服务器进行通信。也即,分布式系统中包括至少一个给多个子系统提供通信服务的数据交换系统,以使得分布式系统中各个子系统数据共享。

优选地,本实施例的统一认证方法还包括:认证服务器响应于客户端的注销请求注销该用户标识。具体地,客户端向认证服务器发送注销请求,认证服务器在接收到该注销请求后,将对应的令牌失效并将该用户标识被注销的消息通知对应的子系统。本发明实施例将用户标识被注销的消息(也即对应的令牌失效的消息)同步给各个子系统,以保证该用户标识被注销后不能再利用该令牌进入子系统来获取模板列表,从而提高统一认证的可靠性。

优选地,客户端的登录请求消息中还包括登录模式标识,登录模式包括代理登录模式。在登录模式标识为代理登录模式的标识时,本实施例的统一认证方法还包括:认证服务器响应于上述登录请求消息查询被代理用户的机构代码和准入列表,并生成令牌,将代理登录结果返回客户端。其中代理登录结果包括被代理用户的机构代码、准入列表和令牌等信息。

优选地,在本实施例中,以微服务技术方式执行统一认证方法的各个步骤以提高本实施例的统一认证方法的复用性。也即,通过微服务技术将统一认证方法封装成构件,对外提供调用接口。由于统一认证方法的构件与其他业务逻辑代码的耦合性很低,因此,在统一认证方法的构件升级时,不需相应地更改其他业务逻辑,同时,在其他业务逻辑升级时,也不需要相应地更改统一认证方法的构件。由此,提高了系统的可维护性。

微服务是指一个单个小型的但有业务功能的服务,每个微服务都有自己的处理和轻量通信机制,可以部署在单个或多个服务器上。微服务是一种松耦合(也即耦合度很低)的面向服务的架构。因此,采用微服务技术执行本实施例的统一认证方法可以进一步提高认证方法的复用性和可维护性。

本实施例的技术方案通过使得认证服务器响应于客户端的登录请求消息生成令牌,并对来自子系统的令牌进行验证以完成客户端的统一认证,从而提高登录认证的效率、可靠性以及代码的复用性和可维护性。

图2是本发明实施例的统一认证系统的示意图。如图2所示,本实施例的统一认证系统包括客户端21和分布式系统22。1分布式系统22包括认证服务器221、数据交换系统222以及至少一个子系统(图2中示出了三个子系统223'-223”')。在分布式系统22中,认证服务器221和多个子系统之间可以通过数据交换系统222进行数据同步。同时,各个子系统中部署了调用统一认证方法构件的应急登录接口。

在本实施例中,当认证服务器221能够正常工作时,客户端21通常采用用户登录和代理登录的登录模式进行登录。当认证服务器221宕机时,客户端21可以采用应急登录来登录对应的子系统。在一种可选的实现方式中,客户端21在登录前,可以设置并保存登录模式以使得客户端21通过对应的登录模式进行登录。其中,代理登录指管理员在客户端21登录一个普通用户的用户标识,但此时管理员仅仅拥有查看权限并没有操作权限,这使得管理员可以及时帮助普通用户排查问题但又不影响普通用户的正常登录使用。

在客户端21的登录模式为用户登录时,客户端21被配置为向认证服务器221发送登录请求消息,其中登录请求消息包括用户标识、用户名、数字证书以及用户登录模式标识等信息。认证服务器221被配置为响应于登录请求消息查询对应的准入列表并生成令牌。其中,准入列表为该用户标识能够登录的子系统列表。应理解,认证服务器221在响应登录请求消息之前还用于根据登录请求消息判断客户端21的登录模式,并验证登录请求消息中参数的合法性。认证服务器221还被配置为将登录结果返回客户端21,登录结果包括准入列表和令牌。

客户端21被配置为向子系统223'发送准入请求消息。其中准入请求消息包括令牌和用户标识等信息。子系统223'被配置为接收客户端21的准入请求消息并通过数据交换系统222向认证服务器221发送令牌验证请求。其中令牌验证请求中包括上述令牌和用户标识等信息。认证服务器221被配置为对该令牌进行验证并向子系统返回验证结果。在一种可选的实现方式中,认证服务器221可以通过判断该令牌与系统中同步的令牌是否一致和/或验证该用户标识是否被注销来验证该令牌是否有效。子系统223'被配置为向客户端21发送准入请求结果。其中,在上述验证结果为令牌有效时,客户端21被准许进入子系统223'以获取相应的信息列表。

也就是说,在客户端21接收到被准许的准入请求结果后向认证服务器221发送模板列表请求。其中模板列表请求包括客户端21请求的消息列表。认证服务器221被配置为响应于模板列表请求查询对应的模板列表并返回给客户端21。客户端21可以通过获取的模板列表渲染界面。在客户端21接收到不被准许的准入请求结果时(也即令牌验证失败),客户端21的界面可以弹出错误提示等信息。

客户端21被配置为向认证服务器221发送注销请求,其中注销请求包括用户标识等信息。认证服务器221被配置为在接收到注销请求后,将对应的令牌失效并将该用户标识被注销的消息通过数据交换系统222通知给对应的其他子系统(可以为其他全部子系统,也可以为该用户标识对应的准入列表中包含的子系统)。

在客户端21的登录模式为代理登录时,客户端21被配置为向认证服务器221发送登录请求消息。其中,登录请求消息包括用户标识、密码、数字证书以及代理登录模式标识等信息。应理解,该登录请求消息中的用户标识为管理员的用户标识。认证服务器221被配置为响应于登录请求消息查询被代理用户的机构代码和准入列表并生成令牌。具体地,认证服务器221响应于登录请求消息查询机构列表并生成令牌,将机构列表和该令牌返回给客户端21。客户端21响应于机构选择指令选择用户所属机构,并向认证服务器221发送机构用户列表请求。认证服务器221响应于机构用户列表请求查询用户所属机构的用户列表并返回给客户端21。客户端21响应于用户选择指令选择其所代理的用户标识,并向认证服务器221发送代理信息请求。认证服务器221响应于代理信息请求查询被代理用户的信息并返回给客户端21。其中,被代理用户的信息包括用户所属机构的机构代码、用户基本信息(姓名等)、准入列表和权限等信息。应理解,认证服务器221在响应登录请求消息之前还用于根据登录请求消息判断客户端的登录模式,并验证登录请求消息中参数的合法性。

在客户端21的登录模式为代理登录时,客户端21在获取令牌和被代理用户的信息后与分布式系统22的交互过程与登录模式为用户登录时类似,在此不再赘述。

在认证服务器221宕机时,客户端21采用应急登录模式。在一种可选的实现方式中,可以通过设置使得当认证服务器221宕机时客户端21自动切换成应急登录模式进行登录。在另一种可选的实现方式中,也可以通过设置使得当认证服务器221宕机时显示应急登录的提示框进行提示,在得到确认指令后切换为应急登录模式进行登录。应理解,在某些特殊方式中,应急登录模式也可以在认证服务器没有宕机时被选择使用。

在客户端21的登录模式为应急登录时,客户端21向子系统223'发送应急登录请求。其中应急登录请求包括用户标识和密码。由于在分布式系统22中产生的数据是共享的,且子系统中部署了调用统一认证方法构件的应急登录接口。因此,客户端21可以直接向子系统请求登录。子系统223'接收并验证应急登录请求中参数的合法性,也即验证用户标识和密码是否匹配,是否首次登录和密码是否过期等。在应急登录请求中参数的合法性被验证通过后,子系统223'向客户端21返回登录成功标识等信息。客户端21向子系统223'发送模版列表请求以获取对应的模板列表。客户端21根据模板列表渲染界面。在操作完成后,客户端21可以向子系统223'发送注销请求以将该用户标识注销。

在本实施例中,采用应急登录时可以只验证用户标识和密码以简化验证过程,使得在认证服务器221宕机时,客户端能够通过应急登录模式快速登录子系统,以进一步提高了统一认证系统的可靠性。

本实施例通过使得认证服务器响应于客户端的登录请求消息生成令牌,并对来自子系统的令牌进行验证以完成客户端的统一认证,从而提高登录认证的效率、可靠性以及代码的复用性和可维护性。并且,本实施例通过设置代理登录模式使得管理员可以在被授权时登录普通用户的账户,以帮助普通用户排查问题,且不影响普通用户的正常登录。由于管理员代理登录时一般只有查看权限没有操作权限,保证了普通用户的账户安全性。本实施例还通过设置应急登录模式使得在认证服务器宕机时客户端可以直接登录子系统,进一步提高了统一认证系统的可靠性。

图3是本发明实施例的客户端采用用户登录的认证方法的流程图。如图3所示,客户端采用用户登录的认证方法包括以下步骤:

在步骤s1,客户端向认证服务器发送登录请求消息。其中,登录请求消息包括用户标识、密码、数字证书和用户登录模式标识等信息。

在步骤s2,认证服务器响应于登录请求消息查询对应的准入列表并生成令牌。其中,准入列表为用户标识能够登录的子系统列表。

应理解,在步骤s2之前,本实施例的认证方法还包括:认证服务器验证登录请求消息中参数的合法性。

在步骤s3,认证服务器将登录结果返回客户端。其中,登录结果包括准入列表和令牌等信息。

在步骤s4,客户端向对应的子系统发送准入请求消息。其中,准入请求消息包括用户标识和令牌等信息。

在步骤s5,该子系统向认证服务器发送令牌验证请求。其中,令牌验证请求包括用户标识和令牌等信息。

优选地,该子系统通过数据交换系统向认证服务器发送令牌验证请求。其中,数据交换系统被配置为在分布式系统中提供通信服务,以使得分布式系统中各个子系统能够数据共享。

在步骤s6,认证服务器响应于令牌验证请求对令牌进行验证并向子系统返回验证结果。

在步骤s7,子系统向客户端返回准入结果。其中,若上述验证结果为令牌被验证通过,则客户端被准许登录该子系统,执行步骤s8。若上述验证结果为令牌被验证失败,则客户端不被准许登录该子系统,提示错误信息。

在步骤s8,客户端向认证服务器发送模板列表请求。其中模板列表为客户端请求的消息列表。

在步骤s9,认证服务器响应于模板列表请求查询对应的模板列表并将模板列表返回客户端。

本实施例通过使得认证服务器响应于客户端的登录请求消息生成令牌,并对来自子系统的令牌进行验证以完成客户端的统一认证,从而提高登录认证的效率、可靠性以及代码的复用性和可维护性。

图4是本发明实施例的客户端采用代理登录的认证方法的流程图。如图4所示,客户端采用代理登录的认证方法包括以下步骤:

在步骤s11,客户端向认证服务器发送登录请求消息。其中,登录请求消息包括用户标识、密码、数字证书和代理登录模式的标识等信息。

在步骤s12,认证服务器响应于登录请求消息查询被代理用户的机构代码和准入列表并生成令牌。其中,准入列表为用户标识能够登录的子系统列表。具体地,认证服务器响应于登录请求消息查询机构列表并生成令牌,将机构列表和该令牌返回客户端。客户端响应于机构选择指令选择用户所属机构,并向认证服务器发送机构用户列表请求。认证服务器响应于机构用户列表请求查询用户所属机构的用户列表并返回客户端。客户端响应于用户选择指令选择其所代理的用户标识,并向认证服务器发送代理信息请求。认证服务器响应于代理信息请求查询被代理用户的信息并返回客户端。其中,被代理用户的信息包括用户所属机构的机构代码、用户基本信息(姓名等)、准入列表和权限等信息。应理解,在步骤s12之前,本实施例的认证方法还包括认证服务器根据登录请求消息判断客户端的登录模式,并验证登录请求消息中参数的合法性。

在步骤s13,认证服务器将登录结果返回客户端。其中,登录结果包括准入列表、令牌、用户所属机构的机构代码、用户基本信息及权限等信息。

在本实施例中,步骤s14-s19与图4中采用用户登录模式的认证方法中的步骤s4-s9类似,在此不再赘述。

本实施例通过使得认证服务器响应于客户端的登录请求消息生成令牌,并对来自子系统的令牌进行验证以完成客户端的统一认证,从而提高登录认证的效率、可靠性以及代码的复用性和可维护性。并且,本实施例通过设置代理登录模式使得管理员可以在被授权时登录普通用户的账户,以帮助普通用户排查问题,且不影响普通用户的正常登录。并且由于管理员代理登录时一般只有查看权限没有操作权限,保证了普通用户的账户安全性。

图5是本发明实施例的客户端采用应急登录的认证方法的流程图。如图5所示,客户端采用应急登录的认证方法包括以下步骤:

在步骤s210,子系统接收客户端的应急登录请求。其中,应急登录请求包括用户标识和密码。

在步骤s220,子系统验证应急登录请求中参数的合法性并返回应急登录结果。在参数的合法性验证通过时,执行步骤s230。在参数的合法性验证失败时,客户端显示错误提示信息。

在步骤s230,子系统接收客户端的模板列表请求。其中,模板列表为。客户端请求的消息列表。

在步骤s240,子系统响应于模板列表请求查询对应的模板列表并将模板列表返回客户端。

本实施例通过验证用户标识和密码以简化验证过程,使得在认证服务器宕机时,客户端能够通过应急登录模式快速登录子系统,以进一步提高了统一认证系统的可靠性。

图6是本发明实施例的电子设备的示意图。图6所示的电子设备为通用数据处理装置,其包括通用的计算机硬件结构,其至少包括处理器61和存储器62。处理器61和存储器62通过总线63连接。存储器62适于存储处理器61可执行的指令或程序。处理器61可以是独立的微处理器,也可以是一个或者多个微处理器集合。由此,处理器61通过执行存储器62所存储的指令,从而执行如上所述的本申请实施例的方法流程实现对于数据的处理和对于其它装置的控制。总线63将上述多个组件连接在一起,同时将上述组件连接到显示控制器64和显示装置以及输入/输出(i/o)装置65。输入/输出(i/o)装置65可以是鼠标、键盘、调制解调器、网络接口、触控输入装置、体感输入装置、打印机以及本领域公知的其他装置。典型地,输入/输出装置65通过输入/输出(i/o)控制器66与系统相连。

本领域的技术人员应明白,本申请的实施例可提供为方法、或计算机程序产品。本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可读存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品。

本申请是参照根据本申请实施例的方法、和计算机程序产品的流程图来描述的。应理解可由计算机程序指令实现流程图中的每一流程。

这些计算机程序指令可以存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现流程图一个流程或多个流程中指定的功能。

以上所述仅为本发明的优选实施例,并不用于限制本发明,对于本领域技术人员而言,本发明可以有各种改动和变化。凡在本发明的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

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