发明内容
本发明的目的是提供一种登录方法及系统,以解决linux系统上运用现有技术实现单点登录时开发复杂性大、运维的改造大以及性能和扩展性不佳的问题。
本发明提出一种登录方法,所述登录方法包括第一登录方式和第二登录方式,其中,在以所述第一登录方式进行登录后,以供后续在预设时间段内以所述第二登录方式进行自动登录,所述第一登录方式利用输入的动态密码来进行验证和登录,并在验证通过后生成静态登录信息,从而在后续根据所述静态登录信息而以所述第二登录方式进行自动登录。
依照本发明较佳实施例所述的登录方法,在以所述第二登录方式自动登录后,生成新的静态登录信息。
依照本发明较佳实施例所述的登录方法,以所述第二登录方式自动登录时还包括:判定所述静态登录信息是否超时,若超时则销毁所述静态登录信息,并重新以第一登录方式进行登录。
依照本发明较佳实施例所述的登录方法,所述第一登录方式包括:
设置用户端和动态密码验证服务器;
所述动态密码验证服务器接收从所述用户端发送来的动态密码;
所述动态密码验证服务器验证所述动态密码;
若验证通过,则所述动态密码验证服务器生成静态登录信息;
所述动态密码验证服务器向用户端返回静态登录信息,允许用户端登录对应的应用服务器,并由用户端储存所述静态登录信息;
依照本发明较佳实施例所述的登录方法,所述第二登录方式包括:
设置静态信息验证服务器;
所述静态信息验证服务器接收从所述用户端自动发送来的静态登录信息;
所述静态信息验证服务器验证所述静态登录信息;
若验证通过,则允许所述用户端登录对应的应用服务器。
依照本发明较佳实施例所述的登录方法,还包括:
设置服务端,且所述服务端与用户端之间的通讯遵循安全外壳协议;
所述第一登录方式中的所述动态密码验证服务器接收从所述用户端发送来的动态密码的步骤包括:
用户端将动态密码发送给所述服务端;
所述动态密码验证服务器接收所述服务端发送来的动态密码;
所述第二登录方式中的所述静态信息验证服务器接收从所述用户端自动发送来的静态登录信息的步骤包括:
用户端自动将静态登录信息发送给所述服务端;
所述静态信息验证服务器接收所述服务端发送来的静态登录信息。
依照本发明较佳实施例所述的登录方法,还包括:
设置插件式鉴别模块;
所述服务端通过所述插件式鉴别模块与所述动态密码验证服务器及静态信息验证服务器进行通信,以及所述用户端通过所述插件式鉴别模块接收所述动态密码验证服务器及静态信息验证服务器发送来的静态登录信息,并进行储存。
依照本发明较佳实施例所述的登录方法,还包括:
设置转接服务器;
所述动态密码验证服务器接收从所述用户端发送来的动态密码的步骤包括:所述转接服务器接收所述用户端发送来的动态密码,并进行备份后以负载均衡的规则发送给所述动态密码验证服务器;
所述静态信息验证服务器接收从所述用户端自动发送来的静态登录信息的步骤包括:所述转接服务器接收所述用户端发送来的静态登录信息,并进行备份后以负载均衡的规则发送给所述静态信息验证服务器。
本发明另提出一种登录系统,包括:
至少一个用户端,用于登录应用服务器,以及供用户输入动态密码和保存静态登录信息;
动态密码验证服务器,用于在用户以第一登录方式登录时,接收并验证从所述用户端发送来的动态密码,以及在验证通过后生成静态登录信息并将所述静态登录信息返回给所述用户端;
静态信息验证服务器,用于在以第一登录方式登录之后的预设时间段内,用户以第二登录方式自动登录时,接收并验证从所述用户端自动发送来的静态登录信息。
依照本发明较佳实施例所述的登录系统,所述静态信息验证服务器还包括:
静态登录信息生成模块,用于在以所述第二登录方式自动登录后,生成新的静态登录信息,并将所述新的静态登录信息返回给所述用户端。
依照本发明较佳实施例所述的登录系统,所述静态信息验证服务器还包括:
超时判别模块,用于判别从所述用户端发送来的静态登录信息是否超时;
销毁模块,用于将超时的静态登录信息销毁。
依照本发明较佳实施例所述的登录系统,所述登录系统还包括:
至少一个服务端,每个所述服务端与至少一个用户端连接,用于接收所述用户端发出的动态密码或静态登录信息,并向所述动态密码验证服务器或所述静态信息验证服务器发出,且所述服务端与所述用户端之间的通讯遵循安全外壳协议。
依照本发明较佳实施例所述的登录系统,所述登录系统还包括:
至少一个插件式鉴别模块,每个插件式鉴别模块与一个服务端连接,所述服务端通过所述插件式鉴别模块向所述动态密码验证服务器或所述静态信息验证服务器发出动态密码或静态登录信息,以及所述用户端通过所述插件式鉴别模块接收静态登录信息。
依照本发明较佳实施例所述的登录系统,所述登录系统包括复数个动态密码验证服务器和复数个静态信息验证服务器;
所述登录系统还包括:至少一个转接服务器,分别与所述动态密码验证服务器和所述静态信息验证服务器连接,用于接收并备份从所述用户端发送来的动态密码和静态登录信息,并均衡地发送给所述动态密码验证服务器和所述静态信息验证服务器进行验证处理。
相对于现有技术,本发明的有益效果是:
1、本发明在实现单点登录的基础上,结合动态密码和静态登录信息的验证,使系统具有很高的安全性。
2、本发明可以和linux系统现有的登录方式无缝对接,对系统运维无需大改造,构建成本低。
3、本发明在登录验证的过程中,可以采用容灾和负载均衡的功能,不仅提升了系统的处理能力,减少用户等待响应的时间,还可以在系统因意外停止工作时提供系统恢复的功能。
当然,实施本发明的任一产品并不一定需要同时达到以上所述的所有优点。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其他目的、特征和优点能够更明显易懂,以下特举较佳实施例,并配合附图,详细说明如下。
具体实施方式
为更进一步阐述本发明达成预定发明目的所采取的技术手段及功效,以下结合附图及较佳实施例,对依据本发明提出的登录方法及系统其具体实施方式、方法、步骤及功效,详细说明如后。
有关本发明的前述及其他技术内容、特点及功效,在以下配合参考图式的较佳实施例详细说明中将可清楚的呈现。通过具体实施方式的说明,当可对本发明为达成预定目的所采取的技术手段及功效得以更加深入且具体的了解,然而所附图式仅是提供参考与说明之用,并非用来对本发明加以限制。
本发明主要是为了实现仅通过一次验证过程,便可以访问多个不同应用服务器的目的。请参见图2,其为本发明实施例的一种登录系统结构图,其包括至少一个用户端21、动态密码验证服务器22以及静态信息验证服务器23。用户端21分别与动态密码验证服务器22和静态信息验证服务器23连接。
用户端21用于供用户登录应用服务器,以及输入动态密码和保存静态登录信息。本发明所述的动态密码(token)属于一种硬件密码系统,用户通过其持有的硬件设备可以得到一个密码,这个密码会随时间的变化而动态变化,而在动态密码验证服务器22端可以通过一定的算法和因子计算出同一个密码,从而通过密码的比对可以达到验证的目的,相对传统的静态密码来说更加安全。本发明所述的静态登录信息(ticket)是一种加密的字符串,包含了用户的各种登陆信息,用于登陆应用服务器时进行用户的鉴权。
本发明对应用服务器的登录方式分为第一登录方式和第二登录方式,在以第一登录方式登录一个应用服务器时,需要进行验证,而在以第一登录方式登录后的一个预设时间段内,用户可以通过第二登录方式自动登录其它的应用服务器,从而实现单点登录。
当用户以第一登录方式登录一个应用服务器时,用户端21会向用户请求输入动态密码,用户将动态密码输入到用户端21之后,用户端21便会将动态密码发送给动态密码验证服务器22进行验证。若验证通过,则应用服务器提供相应的服务给用户端21。在验证通过的同时,动态密码验证服务器22还会生成一个静态登录信息,并返回给用户端21。用户端21接收到静态登录信息后,将其保存在本地的存储器中。
当用户以第二登录方式登录一个应用服务器时(即已经过以第一登录方式登录验证),此时用户端21存储有静态登录信息,用户端21会自动获取保存在本地的静态登录信息,并发送给静态信息验证服务器23进行验证,若验证通过,则应用服务器提供相应的服务给用户端21。从而实现单点登录。
本发明登录系统在实现单点登录的基础上,结合动态密码和静态登录信息的验证,使系统具有很高的安全性。
请参见图3,其为本发明实施例的另一种登录系统结构图,其包括至少一个用户端21、至少一个服务端24、至少一个插件式鉴别模块25、至少一个转接服务器26、至少一个动态密码验证服务器22以及至少一个静态信息验证服务器23。其中,每个服务端24与至少一个用户端21连接,本实施例为便于说明,一个服务端24连接一个用户端21;每个插件式鉴别模块25与一个服务端24连接;转接服务器26分别与插件式鉴别模块25、动态密码验证服务器22以及静态信息验证服务器23连接。此外,每个静态信息验证服务器23还包括超时判别模块231、销毁模块232及静态登录信息生成模块233。
服务端24安装与应用服务器端,用于接收用户端21发出的动态密码或静态登录信息,并向动态密码验证服务器22或静态信息验证服务器23发出,且服务端24与用户端21之间的通讯遵循安全外壳协议(Secure Shell,SSH)。SSH属于linux系统下基于SSL(SecureSockets Layer,安全套接层)的安全登录和命令交互套件,因此遵循SSH协议的服务端24和用户端21可以和linux系统现有的登录方式无缝对接,对系统运维无需大改造,节约了系统构建成本。而且,遵循SSH协议的服务端24与用户端21,它们之间传输的数据是进行加密和压缩的,因此进一步提高了系统的安全性以及加快了数据的传输速度。
插件式鉴别模块25采用PAM(Pluggable Authentication Modules,可插拔认证模块)机制,属于linux系统下插件式的安全认证接口,可以与linux系统无缝对接。插件式鉴别模块25的作用是:服务端24通过插件式鉴别模块25向动态密码验证服务器22或静态信息验证服务器23发出动态密码或静态登录信息,以及用户端21通过插件式鉴别模块25来接收静态登录信息。而且,由于PAM机制采用模块化设计和插件功能,因此可以轻易地在应用程序中插入新的鉴别模块或替换原先的组件,而不必对应用程序做任何修改,从而使软件的定制、维持和升级更加轻松,也使得系统的构建、维护成本得到进一步的降低。
转接服务器26在本实施例中可以起到容灾和负载均衡的功能。所谓容灾的功能即是在转接服务器26接收到从用户端21发送来的动态密码和静态登录信息时进行备份,以在系统因意外停止工作时提供系统恢复的功能。所谓负载均衡的功能即是在转接服务器26接收到从用户端21发送来的动态密码和静态登录信息后,均衡地发送给动态密码验证服务器22和静态信息验证服务器23进行验证处理,从而可以在出现大数据流量时,将数据平衡地分担到各个动态密码验证服务器22和静态信息验证服务器23上,从而提升系统的处理能力,也减少用户等待响应的时间。
下面介绍本实施例系统单点登录的认证过程:
当用户以第一登录方式登录应用服务器时,用户端21会向用户请求输入动态密码,用户将动态密码输入到用户端21之后,用户端21便会将动态密码发送给服务端24。服务端24收到动态密码后,将其转给插件式鉴别模块25,并由插件式鉴别模块25将动态密码通过转接服务器26发送给动态密码验证服务器22进行验证。验证成功后,动态密码验证服务器22会产生一个静态登录信息,并通过转接服务器26将静态登录信息和验证成功的信息一起返回给插件式鉴别模块25。插件式鉴别模块25收到静态登录信息后,将其发送给用户端21,并由用户端21进行保存。同时插件式鉴别模块25向服务端24发送验证成功的信息,则应用服务器提供相应的服务给用户端21。
当用户以第二登录方式登录一个应用服务器时(即已经过以第一登录方式登录验证),此时用户端21存储有静态登录信息,用户端21会自动获取保存在本地的静态登录信息,并发送给服务端24。服务端24收到静态登录信息后,将其转发给插件式鉴别模块25,并由插件式鉴别模块25通过转接服务器26发送给静态信息验证服务器23进行验证。验证过程中,静态信息验证服务器23会通过超时判别模块231判别静态登录信息是否超时(即判别两次登录的时间间隔是否过长),若超时则由销毁模块232将超时的静态登录信息销毁,并向用户端21返回对帐失败的信息,使用户端21重新以第一登录方式进行验证登录。若超时判别模块231判别静态登录信息未超时,且对静态登录信息的验证成功后,则由静态登录信息生成模块233生成一个新的静态登录信息。静态信息验证服务器23会通过转接服务器26将验证成功的信息以及新的静态登录信息发送给插件式鉴别模块25。插件式鉴别模块25收到新的静态登录信息后,将其发送给用户端21进行储存,同时向服务端24发送验证成功的信息,则应用服务器提供相应的服务给用户端21。至此实现单点登录。
本发明还提出一种登录方法,包括第一登录方式和第二登录方式,其中,在以所述第一登录方式进行登录后,以供后续在预设时间段内以所述第二登录方式进行自动登录,所述第一登录方式利用输入的动态密码来进行验证和登录,并在验证通过后生成静态登录信息,从而在后续根据所述静态登录信息而以所述第二登录方式进行自动登录。
请参见图4,其为本发明实施例的一种登录方法流程图,其包括以第一登录方式的登录过程S400和以第二登录方式的登录过程S410。为便于理解,现结合相关硬件用户端、动态密码验证服务器、静态信息验证服务器来进行说明。其中,以第一登录方式的登录过程S400包括以下步骤:
S401,设置用户端、动态密码验证服务器。
S402,动态密码验证服务器接收从用户端发送来的动态密码。
S403,动态密码验证服务器验证所述动态密码。
S404,若验证通过,则动态密码验证服务器生成静态登录信息。
S405,动态密码验证服务器向用户端返回静态登录信息,并由用户端储存所述静态登录信息。
S406,用户端访问对应的应用服务器。
以第二登录方式登录过程S410包括以下步骤:
S411,设置静态信息验证服务器。
S412,静态信息验证服务器接收从用户端自动发送来的静态登录信息。
S413,静态信息验证服务器验证所述静态登录信息。
S414,若验证通过,则用户端登录对应的应用服务器。
这里所述的动态密码(token)属于一种硬件密码系统,用户通过其持有的硬件设备可以得到一个密码,这个密码会随时间的变化而动态变化,而在验证动态密码的一端可以通过一定的算法和因子计算出同一个密码,从而通过密码的比对可以达到验证的目的,相对传统的静态密码来说更加安全。所述的静态登录信息(ticket)是一种加密的字符串,包含了用户的各种登陆信息,用于登陆应用服务器时进行用户的鉴权。本发明登录方法在实现单点登录的前提下,结合动态密码和静态登录信息的验证,使系统具有很高的安全性。
请参见图5,其为本发明实施例的另一种登录方法流程图,其包括以第一登录方式登录过程S500和以第二登录方式登录过程S510。其中,以第一登录方式登录过程S500包括以下步骤:
S501,设置至少一个用户端、至少一个动态密码验证服务器、至少一个服务端、至少一个插件式鉴别模块以及至少一个转接服务器。每个所述服务端与至少一个用户端连接,所述服务端与用户端之间的通讯遵循安全外壳协议(Secure Shell,SSH),属于linux系统下基于SSL(Secure Sockets Layer,安全套接层)的安全登录和命令交互套件。每个插件式鉴别模块与一个服务端连接,插件式鉴别模块采用PAM(Pluggable AuthenticationModules,可插拔认证模块)机制,属于linux系统下插件式的安全认证接口。因此服务端和插件式鉴别模块均可以和linux系统现有的登录方式无缝对接,对系统运维无需大改造,构建成本低。
S502,用户端将动态密码发送给服务端。
S503,转接服务器接收服务端通过插件式鉴别模块发送来的动态密码。
S504,转接服务器将动态密码进行备份后以负载均衡的规则发送给动态密码验证服务器。基于转接服务器的存在,可以起到容灾和负载均衡的作用,提升系统的处理能力,减少用户等待响应的时间,以及在系统因意外停止工作时提供系统恢复的功能。
S505,动态密码验证服务器验证所述动态密码。
S506,若验证通过,则动态密码验证服务器生成静态登录信息。
S507,通过插件式鉴别模块向用户端返回静态登录信息,并由用户端储存所述静态登录信息。
S508,用户端访问对应的应用服务器。
以第二登录方式登录过程S510包括以下步骤:
S511,设置静态信息验证服务器。
S512,用户端自动将静态登录信息发送给所述服务端。
S513,转接服务器接收服务端通过插件式鉴别模块发送来的静态登录信息。
S514,转接服务器将静态登录信息进行备份后以负载均衡的规则发送给静态信息验证服务器。
S515,静态信息验证服务器验证静态登录信息。
S516,判别从所述用户端发送来的静态登录信息是否超时。若超时,则将超时的静态登录信息销毁,向用户端返回对帐失败的信息,并重新以第一登录方式进行登录,以防止两次登录的间隔多长而影响静态登录信息的保密性。
S517,若验证通过,则生成新的静态登录信息,并将新的静态登录信息通过插件式鉴别模块返回给用户端,并允许用户端登录对应的应用服务器。
请参见图6,其为本发明实施例的再一种登录系统结构图,其包括用户端(SSHClient)、服务端(SSH Server)、插件式鉴别模块(PAM)、转接服务器(Interface)、动态密码验证服务器(Token Server)、以及静态信息验证服务器(Ticket Server)。
SSH Client用于用户发起S SH(Secure Shell,安全外壳协议)的连接,如果用户是首次登陆机器,而且没有进行登陆验证,会向用户请求输入Token(动态密码),然后将Token发送给SSH Server;如果用户已经进行了登陆验证,会将保存在本地对应的Ticket(静态登录信息)转发到SSH Server。
SSH Server接收SSH Client的登陆请求,并将其提交的Token或Ticket转交给PAM进行验证,如果验证成功,则允许SSH Client登陆和操作服务器。
PAM接收SSH Server发送来的Token或者Ticket,并发给Interface进行验证,验证成功则将返回的Ticket保持在服务器中,并返回验证成功结果给到SSH Server;如果验证失败则给SSH Server返回验证失败。
Interface用于接收从服务器的PAM模块发送来的请求,并根据请求的内容,发送到后面对应的服务器进行处理,同时其兼备容灾和负载均衡的功能。
Token Server用于对用户提交的Token进行验证,如果验证成功则生成新的Ticket返回,如果验证失败则返回失败。
Ticket Server用于Ticket的生成,验证和销毁,其自带超时机制,根据一定的规则淘汰超时的Ticket。
图7是以第一登录方式登录一个应用服务器时(即首次登录),通过图6的系统的验证过程示意图:
1)SSH Client将用户输入的Token发送给SSH Server。
2)SSH Server将收到的Token转给PAM验证。
3)PAM将Token通过Interface转发给Token Server认证。
4)Token Server认证成功后产生一个Ticket通过Interface返回给PAM。
5)PAM将Ticket保存在本地,同时返回验证成功消息给SSH Server。
图8是第二登录方式登录应用服务器时(即再次登录),通过图6的系统进行验证过程示意图:
1)发起登陆的SSH Client自动从本机获取Ticket。
2)Ticket发送到SSH Server后,发送给PAM验证。
3)PAM通过Interface转发Ticket给Ticket Server验证。
4)Ticket Server验证Ticket成功后,会产生一个新的Ticket,并通过Interface转发给PAM。
5)PAM接收到新的Ticket后,存储到本服务器,并且返回验证成功消息给SSHServer。
6)SSH Server获取PAM发送的验证成功消息后,允许客户端进行登陆。
本发明在实现单点登录的基础上,结合动态密码和静态登录信息的验证,使系统具有很高的安全性。而且,本发明可以和linux系统现有的登录方式无缝对接,对系统运维无需大改造,构建成本低。此外,本发明在登录验证的过程中,可以采用容灾和负载均衡的功能,不仅提升了系统的处理能力,减少用户等待响应的时间,还可以在系统因意外停止工作时提供系统恢复的功能。
以上所述,仅是本发明的较佳实施例而已,并非对本发明作任何形式上的限制,虽然本发明已以较佳实施例揭露如上,然而并非用以限定本发明,任何熟悉本专业的技术人员,在不脱离本发明技术方案范围内,当可利用上述揭示的技术内容作出些许更动或修饰为等同变化的等效实施例,但凡是未脱离本发明技术方案内容,依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化与修饰,均仍属于本发明技术方案的范围内。