一種單點登錄方法、代理服務(wù)器及系統(tǒng)的制作方法
【專利摘要】本發(fā)明公開了一種單點登錄方法,所述方法為:接收客戶端向應(yīng)用系統(tǒng)發(fā)送用戶的登錄請求;通過分析所述客戶端與所述應(yīng)用系統(tǒng)間的通信協(xié)議,根據(jù)接收的登錄請求生成認證數(shù)據(jù)包并發(fā)送給所述應(yīng)用系統(tǒng);接收所述應(yīng)用系統(tǒng)返回的認證結(jié)果,并將接收的認證結(jié)果返回所述客戶端;其中所述認證結(jié)果是所述應(yīng)用系統(tǒng)對接收的認證數(shù)據(jù)包進行認證后生成的。本發(fā)明還公開了用于實現(xiàn)所述方法的代理服務(wù)器及單點登錄系統(tǒng)。本發(fā)明便于在現(xiàn)有的應(yīng)用系統(tǒng)中實施,實現(xiàn)簡便,降低實施成本。
【專利說明】一種單點登錄方法、代理服務(wù)器及系統(tǒng)【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及通信領(lǐng)域,尤其涉及一種單點登錄方法、代理服務(wù)器及系統(tǒng)。
【背景技術(shù)】
[0002]不同的應(yīng)用系統(tǒng)可能具有不同的硬件平臺、操作系統(tǒng)和認證模式,而在單點登錄(Single Sign On, SS0)機制中,用戶只需要登錄一次(即輸入一次用戶名和用戶密碼)就可以訪問所有相互信任的應(yīng)用系統(tǒng)。該機制是目前比較流行的企業(yè)業(yè)務(wù)整合的解決方案之
一
[0003]單點登錄方法大體可以分為兩類:基于票據(jù)的方法(ticket-based approaches)和基于憑證保險庫的方法(credential vault approaches)。
[0004]基于票據(jù)的方法更具有安全性。其應(yīng)用了 Kerberos協(xié)議,Kerberos協(xié)議建立在對稱密鑰的密碼系統(tǒng)之上,可以供不同用戶在不安全的網(wǎng)絡(luò)系統(tǒng)中采用安全的方式進行交流。但基于票據(jù)的方法通常需要修改SSO的應(yīng)用系統(tǒng)以支持對票據(jù)的認證和解密。
[0005]基于憑證保險庫的方法采用安全地方式來存儲用戶的憑證(通常包括用戶在不同系統(tǒng)中的用戶名稱和密碼),例如可以通過加密數(shù)據(jù)庫進行存儲。用戶可以通過輸入一次用戶名稱和密碼來登錄所有的應(yīng)用系統(tǒng),其中客戶端工具可以在憑證保險庫中查詢用戶的憑證信息,且通過輸入用戶名和用戶密碼來模擬用戶輸入?;趹{證保險庫的方法不需要對SSO系統(tǒng)的應(yīng)用系統(tǒng)進行任何修改,因此使用較為廣泛。
[0006]基于憑證保險庫的方法多數(shù)情況下是由客戶端工具(也稱作密碼管理器)來完成,其具有一定的缺陷:
[0007]密碼管理器需配置在各用戶終端上,而這樣會增加管理和維護的復(fù)雜度。
【發(fā)明內(nèi)容】
[0008]有鑒于此,本發(fā)明的目的是提供一種單點登錄機制,以便于在現(xiàn)有的應(yīng)用系統(tǒng)中實施,實現(xiàn)簡便,降低實施成本。
[0009]根據(jù)本發(fā)明的一個實施例,一種單點登錄方法,包括以下步驟:
[0010]接收客戶端向應(yīng)用系統(tǒng)發(fā)送用戶的登錄請求;
[0011]通過分析所述客戶端與所述應(yīng)用系統(tǒng)間的通信協(xié)議,根據(jù)接收的登錄請求生成認證數(shù)據(jù)包并發(fā)送給所述應(yīng)用系統(tǒng);
[0012]接收所述應(yīng)用系統(tǒng)返回的認證結(jié)果,并將接收的認證結(jié)果返回所述客戶端;其中所述認證結(jié)果是所述應(yīng)用系統(tǒng)對接收的認證數(shù)據(jù)包進行認證后生成的。
[0013]根據(jù)本發(fā)明的一個實施例,一種代理服務(wù)器,包括:
[0014]接收模塊,用于接收客戶端向應(yīng)用系統(tǒng)發(fā)送的登錄請求,及接收所述應(yīng)用系統(tǒng)返回的認證結(jié)果;其中所述認證結(jié)果是所述應(yīng)用系統(tǒng)對接收的認證數(shù)據(jù)包進行認證后生成的;
[0015]生成模塊,用于通過分析所述客戶端與所述應(yīng)用系統(tǒng)間的通信協(xié)議,根據(jù)接收的登錄請求生成所述認證數(shù)據(jù)包;
[0016]發(fā)送模塊,用于向所述應(yīng)用系統(tǒng)發(fā)送所述認證數(shù)據(jù)包,及向所述客戶端返回所述認證結(jié)果。
[0017]根據(jù)本發(fā)明的一個實施例,一種單點登錄系統(tǒng),包括:
[0018]客戶端,用于向應(yīng)用系統(tǒng)發(fā)送用戶的登錄請求,及接收代理服務(wù)器返回的認證結(jié)果;
[0019]所述代理服務(wù)器,用于接收所述登錄請求,通過分析所述客戶端與所述應(yīng)用系統(tǒng)間的通信協(xié)議,根據(jù)接收的登錄請求生成認證數(shù)據(jù)包并發(fā)送給所述應(yīng)用系統(tǒng),接收所述應(yīng)用系統(tǒng)返回的認證結(jié)果,及向所述客戶端返回所述認證結(jié)果;
[0020]所述應(yīng)用系統(tǒng),用于對接收的認證數(shù)據(jù)包進行認證,將認證結(jié)果返回所述客戶端?!緦@綀D】
【附圖說明】
[0021]下文將以明確易懂的方式通過對優(yōu)選實施方式的說明并結(jié)合附圖來對本發(fā)明上述特性、技術(shù)特征、優(yōu)點及其實施方式予以進一步說明,其中:
[0022]圖1是本發(fā)明實施例中憑證保險庫位于代理服務(wù)器外部時單點登錄系統(tǒng)的主要結(jié)構(gòu)圖;
[0023]圖2是本發(fā)明實施例中單點登錄方法的主要流程圖;
[0024]圖3是本發(fā)明實施例中基于Telnet協(xié)議的單點登錄方法的流程圖;
[0025]圖4A是FTP協(xié)議下現(xiàn)有技術(shù)中使用的登錄方法的流程圖;
[0026]圖4B是本發(fā)明實施例中在FTP協(xié)議下單點登錄的流程圖;
[0027]圖5A是SSH-1協(xié)議下現(xiàn)有技術(shù)中使用的登錄方法的流程圖;
[0028]圖5B是本發(fā)明實施例中在SSH-1協(xié)議下單點登錄的流程圖。
【具體實施方式】
[0029]為對本發(fā)明的技術(shù)特征,目的和效果有更加清楚的理解,現(xiàn)對照【專利附圖】
【附圖說明】本發(fā)明的【具體實施方式】,在各圖中相同的標號表示相同的部分。為清楚表示各部件的相互關(guān)系,附圖中各部件的比例關(guān)系僅為示意性的,并不表示實際結(jié)構(gòu)的比例關(guān)系。
[0030]圖1為本發(fā)明實施例中單點登錄系統(tǒng)的主要結(jié)構(gòu)圖。其主要包括:客戶端101、代理服務(wù)器102和應(yīng)用系統(tǒng)103。所述系統(tǒng)還可以包括憑證保險庫104。圖1中憑證保險庫104位于代理服務(wù)器102外部。
[0031]客戶端101用于向應(yīng)用系統(tǒng)103發(fā)送用戶的登錄請求,代理服務(wù)器102接收所述登錄請求,通過分析客戶端101與應(yīng)用系統(tǒng)103間的通信協(xié)議,根據(jù)接收的登錄請求生成認證數(shù)據(jù)包并發(fā)送給應(yīng)用系統(tǒng)103,接收應(yīng)用系統(tǒng)103返回的認證結(jié)果,向客戶端101返回所述認證結(jié)果。
[0032]在發(fā)送登錄請求前,客戶端101可以先通過代理服務(wù)器102與應(yīng)用系統(tǒng)103進行握手過程,具體握手的次數(shù)需根據(jù)具體協(xié)議確定,握手過程由客戶端101首先發(fā)起或由應(yīng)用系統(tǒng)103首先發(fā)起均可。握手過程結(jié)束時,認證過程開始,客戶端101用于發(fā)送用戶登錄應(yīng)用系統(tǒng)103的登錄請求,其發(fā)送的登錄請求經(jīng)代理服務(wù)器102接收。
[0033]如果單點登錄系統(tǒng)是C/S(客戶端/服務(wù)器)架構(gòu),則本發(fā)明實施例中的客戶端101可以是應(yīng)用系統(tǒng)的客戶端,如果單點登錄系統(tǒng)是B/S(瀏覽器/服務(wù)器)架構(gòu),則本發(fā)明實施例中的客戶端101可以是瀏覽器。本領(lǐng)域的技術(shù)人員也應(yīng)當明了,如果單點登錄系統(tǒng)采用其它架構(gòu),則本發(fā)明實施例中的客戶端101可以進行相應(yīng)改變以與單點登錄系統(tǒng)的架構(gòu)相適應(yīng)。只要客戶端101能夠與應(yīng)用系統(tǒng)103交互并用于發(fā)送用戶的登錄請求,則其均在本發(fā)明的保護范圍之內(nèi)。
[0034]在一個單點登錄系統(tǒng)中,客戶端101可以有多個,可能有不同的用戶通過不同的客戶端101向應(yīng)用系統(tǒng)103發(fā)送登錄請求;也可能有多個用戶通過一個客戶端101向應(yīng)用系統(tǒng)103發(fā)送登錄請求。本發(fā)明實施例中,無論在有多個客戶端101,還是有多個用戶使用一個客戶端101的應(yīng)用場景中,其均可以共用一個代理服務(wù)器102,無需增加更多的設(shè)備,因而簡化了系統(tǒng)實施的復(fù)雜度,降低了系統(tǒng)實施的成本。
[0035]代理服務(wù)器102用于接收所述登錄請求,通過分析客戶端101與應(yīng)用系統(tǒng)103間的通信協(xié)議,根據(jù)接收的登錄請求生成認證數(shù)據(jù)包并發(fā)送給應(yīng)用系統(tǒng)103,接收所述應(yīng)用系統(tǒng)103返回的認證結(jié)果,及向客戶端101發(fā)送所述認證結(jié)果。當代理服務(wù)器102接收到用戶A的登錄請求時,可以根據(jù)該用戶A的用戶標識,在憑證保險庫104中查詢該用戶A在應(yīng)用系統(tǒng)103中的憑證信息,并根據(jù)查詢到的所述憑證信息生成用于認證用戶身份的認證數(shù)據(jù)包,將該認證數(shù)據(jù)包發(fā)送給應(yīng)用系統(tǒng)103。如果在憑證保險庫104中未查詢到與該用戶A相應(yīng)的憑證信息,則無法進行認證,代理服務(wù)器102可以向客戶端101返回無法認證的消肩、O
[0036]本發(fā)明實施例中,所述憑證信息可以包括該用戶在應(yīng)用系統(tǒng)103中的用戶標識和用戶密碼,或者所述憑證信息可以包括該用戶在應(yīng)用系統(tǒng)103中的票據(jù),或者所述憑證信息也可以是其他彳目息。
[0037]代理服務(wù)器102還可用于接收應(yīng)用系統(tǒng)103發(fā)送的認證響應(yīng)消息。如果選擇了挑戰(zhàn)應(yīng)答(challenge-response)認證機制,則所述認證響應(yīng)消息中包括挑戰(zhàn)數(shù)據(jù)(challengedata),例如,挑戰(zhàn)數(shù)據(jù)的一種實現(xiàn)方式為隨機數(shù)。代理服務(wù)器102接收應(yīng)用系統(tǒng)103發(fā)送的攜帶隨機數(shù)的認證響應(yīng)消息,對該認證響應(yīng)消息進行分析,具體分析過程根據(jù)協(xié)議的不同而有所差異。
[0038]例如,一般來說,使用何種協(xié)議通常通過端口號區(qū)分,例如:http (超文本傳輸協(xié)議)一般使用80端口,ftp (文件傳輸協(xié)議)一般使用21端口,telnet (遠程登錄)協(xié)議一般使用23端口,SSH (安全外殼)協(xié)議一般使用22端口,SMTP (簡單郵件傳輸協(xié)議)一般使用25端口,等等,當然在客戶端101和應(yīng)用系統(tǒng)103之間也可以協(xié)商協(xié)議的端口號,如果此時部署了代理服務(wù)器102,則代理服務(wù)器102負責代替客戶端101與應(yīng)用系統(tǒng)103協(xié)商協(xié)議所使用的端口。通過端口知道了所使用的協(xié)議后,代理服務(wù)器102便可通過其協(xié)議狀態(tài)機分析客戶端101與應(yīng)用系統(tǒng)103間交互的消息,代替客戶端101向應(yīng)用系統(tǒng)103提供相應(yīng)憑證信息。
[0039]如果根據(jù)協(xié)議分析,需根據(jù)該隨機數(shù)生成應(yīng)答數(shù)據(jù),則代理服務(wù)器102生成應(yīng)答數(shù)據(jù)并將應(yīng)答數(shù)據(jù)發(fā)送給應(yīng)用系統(tǒng)103。
[0040]當代理服務(wù)器102接收到應(yīng)用系統(tǒng)103返回的認證成功消息或認證失敗消息時,可以將該認證結(jié)果返回給客戶端101。
[0041]整個認證過程對于用戶101和應(yīng)用系統(tǒng)103來說是可以透明的,用戶和應(yīng)用系統(tǒng)可以完全不知道代理服務(wù)器102的存在。
[0042]應(yīng)用系統(tǒng)103用于對接收的認證數(shù)據(jù)包進行認證,將認證結(jié)果發(fā)送給代理服務(wù)器
102。應(yīng)用系統(tǒng)103接收代理服務(wù)器102發(fā)送的認證數(shù)據(jù)包,該認證數(shù)據(jù)包可以包含用戶標識及該用戶對應(yīng)的憑證信息。應(yīng)用系統(tǒng)103根據(jù)接收的該認證數(shù)據(jù)包生成認證響應(yīng)消息,如果選擇了挑戰(zhàn)應(yīng)答機制,則該消息中可以包含隨機信息,所述隨機信息可以是挑戰(zhàn)數(shù)據(jù)的一種實現(xiàn)方式。挑戰(zhàn)應(yīng)答機制為應(yīng)用系統(tǒng)103的一種認證機制,可以防止重放攻擊和暴力破解。
[0043]憑證保險庫(credential vault) 104可以位于代理服務(wù)器102內(nèi),也可以是位于代理服務(wù)器102外的存儲裝置,用于存儲用戶的在登錄各系統(tǒng)時的憑證信息,在憑證保險庫104中,可以將每個用戶的用戶標識與其憑證信息一一對應(yīng)存儲。以供代理服務(wù)器102根據(jù)用戶標識查詢相應(yīng)的憑證信息。其中,所述用戶標識也可以就是相應(yīng)憑證信息或相應(yīng)憑證信息的一部分,例如,所述用戶標識可以就是用戶名,則代理服務(wù)器102可以根據(jù)用戶名查詢相應(yīng)的用戶密碼。本發(fā)明實施例中,憑證保險庫104可以設(shè)置有密碼,或者有其它安全措施,以保證所存儲數(shù)據(jù)的安全性。
[0044]采用本發(fā)明實施例的技術(shù)方案,只需對一個代理服務(wù)器102進行維護和管理,而無需重新配置客戶端101,使維護管理過程更為簡便,且節(jié)約了成本。本發(fā)明實施例中代理服務(wù)器102獨立于客戶端101及應(yīng)用系統(tǒng)103之外,可以適用于不同類型不同版本的客戶端應(yīng)用程序,且代理服務(wù)器102位于客戶端101及應(yīng)用系統(tǒng)103之間,不必修改客戶端101和應(yīng)用系統(tǒng)103的配置和應(yīng)用環(huán)境,便于進行配置。
[0045]為了更好地對本發(fā)明的思想進行說明,以下通過實現(xiàn)流程來介紹本發(fā)明實施例中單點登錄的方法。
[0046]參見圖2,本發(fā)明實施例中單點登錄的主要方法流程如下,所述方法可以應(yīng)用于代理服務(wù)器102側(cè):
[0047]步驟201:接收客戶端101向應(yīng)用系統(tǒng)103發(fā)送用戶的登錄請求。
[0048]步驟202:通過協(xié)議分析,根據(jù)接收的登錄請求生成認證數(shù)據(jù)包并發(fā)送給應(yīng)用系統(tǒng) 103。
[0049]步驟203:接收應(yīng)用系統(tǒng)103返回的認證結(jié)果,并將接收的認證結(jié)果返回客戶端
101;其中所述認證結(jié)果是所述應(yīng)用系統(tǒng)對接收的認證數(shù)據(jù)包進行認證后生成的。
[0050]在本發(fā)明的實施例中,假設(shè)客戶端101和應(yīng)用系統(tǒng)103有一個協(xié)商好的秘密函數(shù)f (其中,對于應(yīng)用系統(tǒng)103來說,認為該秘密函數(shù)f是其與客戶端101協(xié)商生成的,但實際上,在協(xié)商該秘密函數(shù)時,是代理服務(wù)器102接收了應(yīng)用系統(tǒng)103發(fā)送的信息,并與應(yīng)用系統(tǒng)進行信息交互協(xié)商生成了該秘密函數(shù)f,因此實際上該秘密函數(shù)f是代理服務(wù)器102與應(yīng)用系統(tǒng)103協(xié)商生成的),挑戰(zhàn)應(yīng)答認證過程:應(yīng)用系統(tǒng)103發(fā)送一個隨機消息m給客戶端101,為挑戰(zhàn)過程,代理服務(wù)器102接收該隨機消息m,根據(jù)該隨機信息進行計算,向應(yīng)用系統(tǒng)103回應(yīng)m的變形r=f(m),為應(yīng)答過程。應(yīng)用系統(tǒng)103可以通過獨立計算r來驗證代理服務(wù)器102返回的r是否正確,如果正確,則可以向客戶端101返回認證成功的消息,代理服務(wù)器102可以接收該認證成功的消息。如果不正確,則應(yīng)用系統(tǒng)103可以向客戶端101返回認證失敗的消息,代理服務(wù)器102接收該認證失敗的消息,即應(yīng)用系統(tǒng)103相當于將認證結(jié)果發(fā)送給了代理服務(wù)器102。例如,代理服務(wù)器102可以使用單向Hash (哈希)函數(shù),根據(jù)用戶名、憑證信息和隨機信息生成一個字節(jié)串作為應(yīng)答信息發(fā)送給應(yīng)用系統(tǒng)103,應(yīng)用系統(tǒng)103接收到代理服務(wù)器102的應(yīng)答信息后,將應(yīng)答信息與自身的計算結(jié)果進行比較,若二者相同,則可以向客戶端101返回認證成功的消息,代理服務(wù)器102接收該認證成功的消息,否則認證失敗,可以向客戶端101返回認證失敗的消息,代理服務(wù)器102接收該認證失敗的消息?;蛘撸J證過程也可以不選擇挑戰(zhàn)應(yīng)答機制,也可以根據(jù)需要選擇其它的認證機制。
[0051]以下通過實現(xiàn)流程示例來介紹本發(fā)明實施例中單點登錄的方法。
[0052]一、以Telnet協(xié)議為例進行介紹。
[0053]首先簡單介紹在Telnet協(xié)議下,現(xiàn)有技術(shù)中使用的登錄方法:
[0054]步驟一、終端向應(yīng)用系統(tǒng)發(fā)送登錄請求。其中,在Telnet協(xié)議下,握手過程與用戶認證的交互過程沒有關(guān)系,此處予以省略。
[0055]步驟二、應(yīng)用系統(tǒng)向終端回應(yīng)login (登錄)提示信息。
[0056]步驟三、終端用戶輸入用戶名。
[0057]步驟四、應(yīng)用系統(tǒng)生成“密碼”提示信息,并提示終端用戶輸入用戶密碼。
[0058]步驟五、終端輸入用戶密碼。
[0059]步驟六、應(yīng)用系統(tǒng)驗證用戶身份認證信息,向終端回應(yīng)“歡迎”信息。認證過程完成。
[0060]在認證過程中,可能有不同的終端需要認證,則可能在每個終端上都需配置密碼管理器,增加了管理維護的復(fù)雜程度。如果有多個終端需要認證,雖然每個終端都有相同的目的服務(wù)器,也工作在相同的協(xié)議下,但每個終端可能都有不同類型和不同版本的客戶端應(yīng)用程序,這也增加了工作難度。
[0061]參見圖3,為本發(fā)明實施例中在Telnet協(xié)議下單點登錄的詳細方法流程:
[0062]步驟301:客戶端101向應(yīng)用系統(tǒng)103發(fā)送用戶的登錄請求。
[0063]實際上客戶端101是通過代理服務(wù)器102向應(yīng)用系統(tǒng)103發(fā)送登錄請求,而代理服務(wù)器102從中接收了該登錄請求??赡苡胁煌挠脩敉ㄟ^一個客戶端101向應(yīng)用系統(tǒng)103發(fā)送登錄請求,每個用戶都有自己的憑證信息,這些憑證信息及相應(yīng)的用戶標識都可以存儲在憑證保險庫104中。
[0064]步驟302:代理服務(wù)器102直接轉(zhuǎn)發(fā)所述登錄請求。
[0065]步驟303:應(yīng)用系統(tǒng)103向客戶端101提示“l(fā)ogin”信息。代理服務(wù)器102接收該“ login”信息。例如,該“ login”信息可以是提示用戶輸入用戶名。
[0066]步驟304,代理服務(wù)器102根據(jù)接收的登錄請求中的用戶的用戶標識,在憑證保險庫104中查詢該用戶在應(yīng)用系統(tǒng)103中相應(yīng)的憑證信息,如用戶名和密碼。
[0067]步驟305:代理服務(wù)器102根據(jù)用戶名生成回應(yīng)數(shù)據(jù)包,并發(fā)送給應(yīng)用系統(tǒng)103。
[0068]步驟306:服務(wù)器向客戶端101提示“Password”信息。代理服務(wù)器102接收該“password”信息。例如,該“Password”信息可以是提示用戶輸入用戶密碼。
[0069]步驟307:代理服務(wù)器102根據(jù)用戶密碼生成第二回應(yīng)數(shù)據(jù)包,并發(fā)送給應(yīng)用系統(tǒng)103。
[0070]步驟308:應(yīng)用系統(tǒng)103對用戶信息進行認證,向客戶端101返回認證結(jié)果。代理服務(wù)器102接收該認證結(jié)果。如果認證成功,則可以向客戶端101返回“welcome (歡迎)”信息,如果認證失敗,可以向客戶端101返回認證失敗的信息。認證過程結(jié)束。
[0071]步驟309:代理服務(wù)器102將接收的認證結(jié)果返回客戶端101。
[0072]二、以FTP協(xié)議為例進行介紹。
[0073]參見圖4A,首先簡單介紹在FTP協(xié)議下,現(xiàn)有技術(shù)中使用的登錄方法:
[0074]步驟一、終端向應(yīng)用系統(tǒng)發(fā)送登錄請求。其中,在FTP協(xié)議下,握手過程與用戶認證的交互過程沒有關(guān)系,此處予以省略。
[0075]步驟二:應(yīng)用系統(tǒng)與終端進行協(xié)商。
[0076]步驟三:協(xié)商完畢后應(yīng)用系統(tǒng)向終端回復(fù)響應(yīng)消息。該響應(yīng)消息可以是提示終端輸入用戶名。
[0077]步驟四:終端向應(yīng)用系統(tǒng)輸入用戶名。
[0078]步驟五:應(yīng)用系統(tǒng)回復(fù)響應(yīng)消息。該響應(yīng)消息可以是提示應(yīng)用系統(tǒng)輸入密碼。
[0079]步驟六、終端輸入用戶密碼。
[0080]步驟七、應(yīng)用系統(tǒng)驗證用戶身份認證信息,向終端回應(yīng)“歡迎”信息。認證過程完成。
[0081]參見圖4B,為本發(fā)明實施例中在FTP協(xié)議下單點登錄的詳細方法流程:
[0082]步驟401:客戶端101向應(yīng)用系統(tǒng)103發(fā)送用戶的登錄請求。
[0083]實際上客戶端101是通過代理服務(wù)器102向應(yīng)用系統(tǒng)103發(fā)送登錄請求,而代理服務(wù)器102直接轉(zhuǎn)發(fā)該登錄請求??赡苡胁煌挠脩敉ㄟ^一個客戶端101向應(yīng)用系統(tǒng)103發(fā)送登錄請求,每個用戶都有自己的憑證信息,這些憑證信息及相應(yīng)的用戶標識都可以存儲在憑證保險庫104中。
[0084]步驟402:應(yīng)用系統(tǒng)103通過代理服務(wù)器102與客戶端101進行協(xié)商。
[0085]步驟403:協(xié)商完畢后,應(yīng)用系統(tǒng)103向客戶端101回復(fù)響應(yīng)消息。代理服務(wù)器102接收該響應(yīng)消息,該響應(yīng)消息可以是提示用戶輸入用戶名。
[0086]例如,應(yīng)用系統(tǒng)103向客戶端101提示“l(fā)ogin”信息。代理服務(wù)器102接收該“l(fā)ogin” 信息。
[0087]步驟404,代理服務(wù)器102根據(jù)接收的登錄請求中的用戶的用戶標識,在憑證保險庫104中查詢該用戶在應(yīng)用系統(tǒng)103中相應(yīng)的憑證信息,如用戶名和密碼。
[0088]步驟405:代理服務(wù)器102根據(jù)用戶名生成回應(yīng)數(shù)據(jù)包,并發(fā)送給應(yīng)用系統(tǒng)103。
[0089]步驟406:應(yīng)用系統(tǒng)103向客戶端101回復(fù)響應(yīng)消息。代理服務(wù)器102接收該響應(yīng)消息,該響應(yīng)消息可以是提示用戶輸入密碼。
[0090]例如,應(yīng)用系統(tǒng)103向客戶端101提示“Password”信息。代理服務(wù)器102接收該“password” 信息。
[0091]步驟407:代理服務(wù)器102根據(jù)用戶密碼生成第二回應(yīng)數(shù)據(jù)包,并發(fā)送給應(yīng)用系統(tǒng)103。
[0092]步驟408:應(yīng)用系統(tǒng)103對用戶信息進行認證,向客戶端101返回認證結(jié)果。代理服務(wù)器102接收該認證結(jié)果。
[0093]步驟409:代理服務(wù)器102將接收的認證結(jié)果返回客戶端101。
[0094]認證過程結(jié)束。
[0095]三、以SSH-1協(xié)議為例進行介紹。[0096]參見圖5A,先簡單介紹在SSH-1協(xié)議下,現(xiàn)有技術(shù)中使用的登錄方法:
[0097]步驟一:終端與應(yīng)用程序進行協(xié)商版本。
[0098]步驟二:終端與應(yīng)用程序協(xié)商運算法則。
[0099]步驟三:終端輸入用戶名。
[0100]步驟四:應(yīng)用程序回復(fù)響應(yīng)消息。該響應(yīng)消息可以是提示應(yīng)用系統(tǒng)輸入密碼。
[0101]步驟五、終端輸入用戶密碼。
[0102]步驟六、應(yīng)用系統(tǒng)驗證用戶身份認證信息,向終端回應(yīng)“歡迎”信息。認證過程完成。
[0103]參見圖5B,為本發(fā)明實施例中在SSH-1協(xié)議下單點登錄的詳細方法流程:
[0104]步驟501:客戶端101通過代理服務(wù)器102與應(yīng)用程序103協(xié)商版本。
[0105]步驟502:客戶端101通過代理服務(wù)器102與應(yīng)用程序103協(xié)商運算法則。
[0106]步驟503:代理服務(wù)器102接收應(yīng)用程序103向客戶端101返回的響應(yīng)消息。該響應(yīng)消息可以是提示用戶輸入用戶名。
[0107]例如,應(yīng)用系統(tǒng)103向客戶端101提示“SSH_CMSG_USER”信息。代理服務(wù)器102接收該 “ SSH_CMSG_USER” 信息。
[0108]步驟504:代理服務(wù)器102根據(jù)用戶名生成回應(yīng)數(shù)據(jù)包,并發(fā)送給應(yīng)用系統(tǒng)103。
[0109]步驟505:代理服務(wù)器接收應(yīng)用系統(tǒng)103向客戶端101回復(fù)的響應(yīng)消息。該響應(yīng)消息可以是提示用戶輸入密碼。
[0110]例如,應(yīng)用系統(tǒng)103向客戶端101提示“SSH_CMSG_PASSWORD”信息。代理服務(wù)器
102接收該 “SSH_CMSG_PASSWORD” 信息。
[0111]步驟506:代理服務(wù)器102根據(jù)用戶密碼生成第二回應(yīng)數(shù)據(jù)包,并發(fā)送給應(yīng)用系統(tǒng)
103。
[0112]步驟507:應(yīng)用系統(tǒng)103對用戶信息進行認證,向客戶端101返回認證結(jié)果。代理服務(wù)器102接收該認證結(jié)果。
[0113]步驟508:代理服務(wù)器102將接收的認證結(jié)果返回客戶端101。
[0114]認證過程結(jié)束。
[0115]根據(jù)本發(fā)明的實施例,代理服務(wù)器102中可以包括接收模塊、生成模塊和發(fā)送模塊。
[0116]接收模塊用于接收客戶端101向應(yīng)用系統(tǒng)103發(fā)送的登錄請求,及接收所述應(yīng)用系統(tǒng)103返回的認證結(jié)果。
[0117]生成模塊用于通過分析所述客戶端與所述應(yīng)用系統(tǒng)間的通信協(xié)議,根據(jù)接收的登錄請求生成認證數(shù)據(jù)包。
[0118]在本發(fā)明的實施例中,生成模塊具體可以用于根據(jù)接收的登錄請求中的用戶標識在憑證保險庫中查詢該用戶在所述應(yīng)用系統(tǒng)103中的憑證信息,根據(jù)該用戶的所述憑證信息生成認證數(shù)據(jù)包。
[0119]發(fā)送模塊用于向所述應(yīng)用系統(tǒng)103發(fā)送所述認證數(shù)據(jù)包,及向所述客戶端101返回所述認證結(jié)果。
[0120]本發(fā)明實施例中,在客戶端101與應(yīng)用系統(tǒng)103之間設(shè)置代理服務(wù)器102,該代理服務(wù)器102可以通過協(xié)議分析的方法為客戶端101代為獲取相應(yīng)憑證信息,因而解決了現(xiàn)有技術(shù)中需在不同客戶端101分別部署客戶端工具的問題。
[0121]增加一個位于客戶端101及應(yīng)用系統(tǒng)103之間的代理服務(wù)器102,登錄過程可以通過代理服務(wù)器102與應(yīng)用系統(tǒng)103進行信息交互來完成,無需在客戶端101上配置密碼管理器,只需維護管理一個代理服務(wù)器102即可,節(jié)省維護管理的步驟及費用,且因為沒有了密碼管理器,也就沒有了客戶端應(yīng)用程序?qū)γ艽a管理器的限制,使工作更為簡便??梢怨┎煌慕K端進行認證,不會增加管理維護的復(fù)雜程度。
[0122]現(xiàn)有技術(shù)中,不同用戶很可能通過不同類型和版本的客戶終端程序來登錄目的設(shè)備,雖然這些密碼管理器具有相同的目的設(shè)備且工作在相同的協(xié)議下,但還必須根據(jù)不同類型和版本的客戶終端程序來配置密碼管理器,這樣也增加了工作的難度,且多數(shù)密碼管理器僅支持基于微軟的Windows平臺(一種操作系統(tǒng))的客戶終端程序,而不支持LinuxX-Windows (一種操作系統(tǒng))或其他類型的客戶終端程序。而采用本發(fā)明的方法后,因無需在客戶端上安裝密碼管理器,自然也無需根據(jù)不同的客戶終端程序來配置密碼管理器,減輕了工作量,也無需考慮密碼管理器不支持某些類型的客戶終端程序的問題,增強了通用性。
[0123]需要說明的是,上述各流程和各裝置結(jié)構(gòu)圖中不是所有的步驟和模塊都是必須的,可以根據(jù)實際的需要忽略某些步驟或模塊。各步驟的執(zhí)行順序不是固定的,可以根據(jù)需要進行調(diào)整。上述各實施例中描述的模塊結(jié)構(gòu)可以是物理結(jié)構(gòu),也可以是邏輯結(jié)構(gòu),即,有些模塊可能由同一物理實體實現(xiàn),或者,有些模塊可能分由多個物理實體實現(xiàn),或者,可以由多個獨立設(shè)備中的某些部件共同實現(xiàn)。
[0124]以上各實施例中,硬件單元可以通過機械方式或電氣方式實現(xiàn)。例如,一個硬件單元可以包括永久性專用的電路或邏輯(如專門的處理器,F(xiàn)PGA或ASIC)來完成相應(yīng)操作。硬件單元還可以包括可編程邏輯或電路(如通用處理器或其它可編程處理器),可以由軟件進行臨時的設(shè)置以完成相應(yīng)操作。具體的實現(xiàn)方式(機械方式、或?qū)S玫挠谰眯噪娐?、或者臨時設(shè)置的電路)可以基于成本和時間上的考慮來確定。
[0125]本發(fā)明還提供了一種機器可讀介質(zhì),存儲用于使一機器執(zhí)行如本文所述的單點登錄的方法的指令。具體地,可以提供配有存儲介質(zhì)的系統(tǒng)或者裝置,在該存儲介質(zhì)上存儲著實現(xiàn)上述實施例中任一實施例的功能的軟件程序代碼,且使該系統(tǒng)或者裝置的計算機(或CPU或MPU)讀出并執(zhí)行存儲在存儲介質(zhì)中的程序代碼。
[0126]在這種情況下,從存儲介質(zhì)讀取的程序代碼本身可實現(xiàn)上述實施例中任何一項實施例的功能,因此程序代碼和存儲程序代碼的存儲介質(zhì)構(gòu)成了本發(fā)明的一部分。
[0127]用于提供程序代碼的存儲介質(zhì)實施例包括軟盤、硬盤、磁光盤、光盤(如CD-ROM、CD-R、CD-RW、DVD-ROM、DVD-RAM、DVD-RW、DVD+RW)、磁帶、非易失性存儲卡和 ROM??蛇x擇地,可以由通信網(wǎng)絡(luò)從服務(wù)器計算機上下載程序代碼。
[0128]此外,應(yīng)該清楚的是,不僅可以通過執(zhí)行計算機所讀出的程序代碼,而且可以通過基于程序代碼的指令使計算機上操作的操作系統(tǒng)等來完成部分或者全部的實際操作,從而實現(xiàn)上述實施例中任意一項實施例的功能。
[0129]此外,可以理解的是,將由存儲介質(zhì)讀出的程序代碼寫到插入計算機內(nèi)的擴展板中所設(shè)置的存儲器中或者寫到與計算機相連接的擴展單元中設(shè)置的存儲器中,隨后基于程序代碼的指令使安裝在擴展板或者擴展單元上的CPU等來執(zhí)行部分和全部實際操作,從而實現(xiàn)上述實施例中任一實施例的功能。
[0130]上文通過附圖和優(yōu)選實施方式對本發(fā)明進行了詳細展示和說明,然而本發(fā)明不限于這些已揭示的實施方式,本領(lǐng)域技術(shù)人員從中推導(dǎo)出來的其它方案也在本發(fā)明的保護范圍之內(nèi)。
【權(quán)利要求】
1.一種單點登錄方法,其特征在于,包括以下步驟: 接收客戶端向應(yīng)用系統(tǒng)發(fā)送的用戶的登錄請求; 通過分析所述客戶端與所述應(yīng)用系統(tǒng)間的通信協(xié)議,根據(jù)接收的登錄請求生成認證數(shù)據(jù)包并發(fā)送給所述應(yīng)用系統(tǒng); 接收所述應(yīng)用系統(tǒng)返回的認證結(jié)果,并將接收的認證結(jié)果返回所述客戶端;其中所述認證結(jié)果是所述應(yīng)用系統(tǒng)對接收的認證數(shù)據(jù)包進行認證后生成的。
2.如權(quán)利要求1所述的方法,其特征在于,根據(jù)接收的登錄請求生成認證數(shù)據(jù)包并發(fā)送給所述應(yīng)用系統(tǒng)的步驟包括:根據(jù)接收的登錄請求中的用戶標識在憑證保險庫中查詢該用戶在所述應(yīng)用系統(tǒng)中的憑證信息,根據(jù)該用戶的所述憑證信息生成認證數(shù)據(jù)包,并發(fā)送給所述應(yīng)用系統(tǒng)。
3.如權(quán)利要求2所述的方法,其特征在于,所述憑證信息包括該用戶在所述應(yīng)用系統(tǒng)中的用戶標識和用戶密碼;或所述憑證信息包括該用戶在所述應(yīng)用系統(tǒng)中的票據(jù)。
4.一種代理服務(wù)器,包括: 接收模塊,用于接收客戶端向應(yīng)用系統(tǒng)發(fā)送的登錄請求,及接收所述應(yīng)用系統(tǒng)返回的認證結(jié)果;其中所述認證結(jié)果是所述應(yīng)用系統(tǒng)對接收的認證數(shù)據(jù)包進行認證后生成的; 生成模塊,用于通過分析所述客 戶端與所述應(yīng)用系統(tǒng)間的通信協(xié)議,根據(jù)接收的登錄請求生成所述認證數(shù)據(jù)包; 發(fā)送模塊,用于向所述應(yīng)用系統(tǒng)發(fā)送所述認證數(shù)據(jù)包,及向所述客戶端返回所述認證結(jié)果。
5.如權(quán)利要求4所述的代理服務(wù)器,其特征在于,所述生成模塊具體用于根據(jù)接收的登錄請求中的用戶標識在憑證保險庫中查詢該用戶在所述應(yīng)用系統(tǒng)中的憑證信息,根據(jù)該用戶的所述憑證信息生成所述認證數(shù)據(jù)包。
6.如權(quán)利要求5所述的代理服務(wù)器,其特征在于,所述憑證信息包括該用戶在所述應(yīng)用系統(tǒng)中的用戶標識和用戶密碼;或所述憑證信息包括該用戶在所述應(yīng)用系統(tǒng)中的票據(jù)。
7.一種單點登錄系統(tǒng),其特征在于,包括: 客戶端,用于向應(yīng)用系統(tǒng)發(fā)送用戶的登錄請求,及接收代理服務(wù)器返回的認證結(jié)果; 所述代理服務(wù)器,用于接收所述登錄請求,通過分析所述客戶端與所述應(yīng)用系統(tǒng)間的通信協(xié)議,根據(jù)接收的登錄請求生成認證數(shù)據(jù)包并發(fā)送給所述應(yīng)用系統(tǒng),接收所述應(yīng)用系統(tǒng)返回的認證結(jié)果,及向所述客戶端返回所述認證結(jié)果; 所述應(yīng)用系統(tǒng),用于對接收的認證數(shù)據(jù)包進行認證,將認證結(jié)果返回所述客戶端。
8.如權(quán)利要求7所述的系統(tǒng),其特征在于,還包括:憑證保險庫,用于對應(yīng)存儲用戶標識及與其相應(yīng)的憑證信息; 所述代理服務(wù)器還用于根據(jù)接收的登錄請求中的用戶標識在所述憑證保險庫中查詢該用戶在所述應(yīng)用系統(tǒng)中的憑證信息,及根據(jù)該用戶的所述憑證信息生成認證數(shù)據(jù)包。
9.如權(quán)利要求8所述的系統(tǒng),其特征在于,所述憑證信息包括該用戶在所述應(yīng)用系統(tǒng)中的用戶標識和用戶密碼;或所述憑證信息包括該用戶在所述應(yīng)用系統(tǒng)中的票據(jù)。
10.如權(quán)利要求7所述的系統(tǒng),其特征在于,所述應(yīng)用系統(tǒng)還用于采用挑戰(zhàn)應(yīng)答機制對接收的認證數(shù)據(jù)包進行認證。
11.如權(quán)利要求10所述的系統(tǒng),其特征在于,所述應(yīng)用系統(tǒng)還用于向所述客戶端發(fā)送挑戰(zhàn)數(shù)據(jù),及將接收的應(yīng)答數(shù)據(jù)與自身生成的應(yīng)答數(shù)據(jù)進行比較,若二者相同,則所述用戶認證通過,否則認證失敗; 所述代理服務(wù)器還用于接收所述挑戰(zhàn)數(shù)據(jù),根據(jù)接收的挑戰(zhàn)數(shù)據(jù)生成應(yīng)答數(shù)據(jù),并發(fā)送給所述應(yīng)用 系統(tǒng)。
【文檔編號】H04L29/06GK103716285SQ201210376039
【公開日】2014年4月9日 申請日期:2012年9月29日 優(yōu)先權(quán)日:2012年9月29日
【發(fā)明者】劉彥, 劉康, 黃琛 申請人:西門子公司