客戶端零存儲的單點登錄方法
【專利摘要】本發(fā)明公開了一種客戶端零存儲的單點登錄方法,本方法中,所有應(yīng)用系統(tǒng)的登錄頁面都是由登錄認(rèn)證中心提供的,用戶登錄后的用戶信息存儲在登錄認(rèn)證中心,同時同步到應(yīng)用系統(tǒng)的服務(wù)器上,客戶端不存儲用戶信息、不存儲會話ID(或票據(jù))。運用本發(fā)明,用戶信息在登錄認(rèn)證中心和應(yīng)用服務(wù)上存儲、傳輸和同步,避免了在客戶端將不必要的信息傳來傳去,且不存在會話ID(或票據(jù))被盜用的風(fēng)險,簡化了單點登錄應(yīng)用系統(tǒng)的開發(fā)過程,提升了系統(tǒng)安全性能。
【專利說明】客戶端零存儲的單點登錄方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明適用于軟件領(lǐng)域,尤其是BS架構(gòu)的軟件更適合采用本方法以實現(xiàn)系統(tǒng)的單點登錄。
【背景技術(shù)】
[0002]現(xiàn)有的單點登錄方法多采用了諸如以下技術(shù)客戶電腦的USB 口上插入認(rèn)證介質(zhì),2客戶端存儲登錄后的用戶信息,3客戶保存單點登錄的話ID,4客戶端安裝單點登錄插件。
[0003]上述4種方案中,客戶電腦的USB插入USB認(rèn)證介質(zhì)種方案,其用戶數(shù)量必然收到限制,且介質(zhì)的分發(fā)、管理過程很麻煩;客戶端存儲登錄后的用戶信息是適合富客戶端的應(yīng)用;客戶端安裝插件會帶來用戶體驗上的下降。
[0004]客戶端存儲單點登錄會話ID (或票據(jù)),是在客戶端存儲信息最少的模式,大多數(shù)BS應(yīng)用都采用了這種方式,在當(dāng)前的BS應(yīng)用中,這個會話ID的保存方式通常有如下幾種:I保存在網(wǎng)頁的HTML文本中,2保存在網(wǎng)頁的腳本中,3保存的瀏覽器的地址欄,4保存在瀏覽器的Cookie中,總之,客戶端是需要存儲的。
[0005]客戶端存儲會話ID (或票據(jù))的方式存在如下不足會話ID (或票據(jù))對系統(tǒng)來說是一個無用的信息,必須轉(zhuǎn)化為用戶的ID才可被系統(tǒng)使用;2會話ID (或票據(jù))存儲在客戶端也是無用的,因為數(shù)據(jù)的讀取都是在服務(wù)端完成的;3客戶端存儲票據(jù)是不方便的,不像的服務(wù)端只在Sess1n中存儲一份即可,需要來回反復(fù)地在網(wǎng)頁間傳遞。
[0006]由此可見,設(shè)計出一種客戶端零存儲的單點登錄方法是非常必要的。
【發(fā)明內(nèi)容】
[0007]針對現(xiàn)有單點登錄方案中的不足,本發(fā)明公開了一種客戶端零存儲的單點登錄方法,應(yīng)用本方法用戶信息都存儲在服務(wù)端上,客戶端是零存儲的,既不保存用戶信息也不保存會話ID (或票據(jù)),無論客戶來自哪個應(yīng)用系統(tǒng),都得到登錄認(rèn)證中心進(jìn)行登錄,登錄認(rèn)證中心首先存儲了當(dāng)前的用戶信息,在接下來的訪問中,應(yīng)用服務(wù)器再從登錄認(rèn)證中心獲取當(dāng)前用戶并存儲到本地的服務(wù)器上,從而實現(xiàn)了登錄認(rèn)證中心、應(yīng)用服務(wù)的同步存儲,客戶端零存儲的軟件模型。
[0008]為實現(xiàn)上述目標(biāo),本發(fā)明采用了如下技術(shù)方案:
過程1:用戶在訪問應(yīng)用服務(wù)(A或B)時,如果應(yīng)用服務(wù)(A或B)本地沒有存儲當(dāng)前用戶的信息,就會將用戶導(dǎo)向登錄認(rèn)證中心(S)的登錄頁面。
[0009]過程2:用戶在登錄認(rèn)證中心(S)輸入用戶名和密碼,并成功登錄后,繼續(xù)訪問應(yīng)用服務(wù)(A或B)。
[0010]過程3:應(yīng)用服務(wù)(A或B)將登錄認(rèn)證中心(S)存儲的用戶信息同步到應(yīng)用服務(wù)(A或B)的本地。
[0011]在所述過程I中,用戶信息一般是應(yīng)用服務(wù)(A或B)和登錄認(rèn)證中心(S)同步存儲的,只有應(yīng)用服務(wù)(A或B)本地沒有存儲用戶信息的時候,才會向認(rèn)證中心發(fā)起請求,也就是頁面跳轉(zhuǎn)。
[0012]在所述過程I中,應(yīng)用服務(wù)(A或B)發(fā)起的頁面跳轉(zhuǎn),在此過程中有二個環(huán)節(jié),一是應(yīng)用服務(wù)(A或B)生成了一個調(diào)用guid,并存儲于應(yīng)用服務(wù)(A或B)本地,二是向登錄認(rèn)證中心(S)傳遞要返回的地址和調(diào)用guid,同時實現(xiàn)頁面跳轉(zhuǎn)。
[0013]如圖3所示,現(xiàn)對所述過程2分析如下:無論什么情況,只要是用戶(V)訪問到登錄認(rèn)證中心(S)的登錄頁面,就說明在應(yīng)用服務(wù)(A或B)端沒有存儲當(dāng)前用戶的信息,用戶在登錄認(rèn)證中心登錄完成后,要將用戶信息反饋給應(yīng)用服務(wù)(A或B);用戶在登錄認(rèn)證中心登錄成功后,或者發(fā)現(xiàn)已經(jīng)登錄(sess1n中存儲有用戶信息),必須跳轉(zhuǎn)至用戶原本要訪問的頁面,并返回用戶信息給應(yīng)用服務(wù)(A或B)。
[0014]如圖3所示,在所述過程2中,如果當(dāng)前用戶已經(jīng)通過其他應(yīng)用系統(tǒng)登錄過登錄認(rèn)證中心(S),也就是已登錄,對于已登錄的用戶,登錄認(rèn)證中心(S)直接執(zhí)行跳轉(zhuǎn)過程,對于未登錄的用戶,登錄認(rèn)證中心(S)導(dǎo)向登錄頁面,登錄成功后,登錄認(rèn)證中心(S)將當(dāng)前用戶的信息存儲與sess1n變量中,再執(zhí)行跳轉(zhuǎn)過程。
[0015]如圖2所示,在所述過程2中,登錄認(rèn)證中心(S)在用戶登錄成功后,或者發(fā)現(xiàn)用戶已經(jīng)登錄后,都會去執(zhí)行跳轉(zhuǎn)過程,該跳轉(zhuǎn)過程除了頁面跳轉(zhuǎn)外,還需要以應(yīng)用服務(wù)(A或B)傳遞的調(diào)用guid為關(guān)鍵字,在全局變量中存儲一份當(dāng)前用戶的信息。
[0016]在所述過程3中,在該過程中應(yīng)用服務(wù)(A或B)通過存儲與本地的調(diào)用guid為關(guān)鍵字,向單點登錄認(rèn)證中心(S)索取登錄到應(yīng)用服務(wù)(A或B)的當(dāng)前用戶的信息,也就是調(diào)用登錄認(rèn)證中心(S)的函數(shù),獲取到用戶信息后,將該信息存儲到本地的sess1n變量中,用戶在以后的訪問過程中,就不再訪問登錄認(rèn)證中心(S )。
[0017]本發(fā)明的優(yōu)點是:
用戶信息在登錄認(rèn)證中心和應(yīng)用服務(wù)上存儲、傳輸和同步,客戶端不存儲用戶信息,不存儲會話ID(或票據(jù)),避免了在客戶的應(yīng)用中將不必要的信息傳來傳去,不存在會話ID(或票據(jù))被盜用的風(fēng)險,簡化了單點登錄應(yīng)用系統(tǒng)的開發(fā)過程,提升了系統(tǒng)的安全性。
【專利附圖】
【附圖說明】
[0018]圖1:客戶端零存儲的單點登錄模型。
[0019]圖2:登錄認(rèn)證中心工作流程。
[0020]圖3:應(yīng)用服務(wù)工作流程。
【具體實施方式】
[0021]本發(fā)明客戶端零存儲的單點登錄方法,所有應(yīng)用系統(tǒng)的登錄頁面都是由登錄認(rèn)證中心提供的,用戶登錄后的用戶信息存儲在登錄認(rèn)證中心,同時同步到應(yīng)用系統(tǒng)的服務(wù)器上,客戶端不存儲用戶信息、不存儲會話ID (或票據(jù))。
[0022]如圖2所示,本發(fā)明的關(guān)鍵過程有3個:
過程1:用戶在訪問應(yīng)用服務(wù)A或應(yīng)用服務(wù)B時,如果應(yīng)用服務(wù)(A或B)本地沒有存儲當(dāng)前用戶的信息,就會將用戶導(dǎo)向登錄認(rèn)證中心的登錄頁面;
過程2:用戶在登錄認(rèn)證中心輸入用戶名和密碼,并成功登錄后,繼續(xù)訪問應(yīng)用服務(wù)(A或B);
過程3:應(yīng)用服務(wù)A或B將登錄認(rèn)證中心存儲的用戶信息同步到應(yīng)用服務(wù)(A或B)的本地。
[0023]在實際使用中,用戶信息常包含:用代碼、用戶名、所在部分、可操作的系統(tǒng),在各個系統(tǒng)中的角色,在各個系統(tǒng)中的權(quán)限等。
[0024]上述過程I中,也就是客戶通過瀏覽器訪問業(yè)務(wù)系統(tǒng)(A或B)頁面的過程,該過程檢查服務(wù)端是否存儲有用戶信息,如果沒有則將頁面跳轉(zhuǎn)至登錄認(rèn)證中心(S)的登錄頁面,這里有二個環(huán)節(jié),一是檢查用戶信息,二是跳轉(zhuǎn)頁面,只有本地沒有存儲用戶信息的時候,才會有頁面跳轉(zhuǎn),在實際使用中,一般提供一個輔助函數(shù)CheckUser,上述過程都是在這個函數(shù)中完成的,業(yè)務(wù)系統(tǒng)每個頁面Page_Load事件中都調(diào)用CheckUser函數(shù),該函數(shù)返回true時繼續(xù)處理當(dāng)前頁面的業(yè)務(wù),否則就終止操作,表示頁面的處理已經(jīng)交給了單點登錄認(rèn)證過程,從而,用戶訪問業(yè)務(wù)系統(tǒng)的任何頁面都會檢查用戶是否登錄。
[0025]未登錄的用戶訪問頁面時,其訪問過程有二個,一是首次訪問,二是用戶登錄完成后,再返回到該業(yè)務(wù)頁面。前面所述的過程3 (從登錄認(rèn)證中心同步用戶信息)一般就是在對業(yè)務(wù)頁面的第二次訪問過程中。
[0026]上述過程中的第二個環(huán)節(jié),也就是沒有檢查到用戶信息,跳轉(zhuǎn)到登錄認(rèn)證中心登錄頁面的環(huán)節(jié),這個過程是客戶瀏覽器上的頁面跳轉(zhuǎn),在實際過程中,通常是采用POST技術(shù)來完成,用POST技術(shù)既可以實現(xiàn)頁面的跳轉(zhuǎn),又可以傳遞參數(shù),規(guī)避了 GET技術(shù)將參數(shù)顯示在URL中的尷尬,這個過程中傳遞的參數(shù)有二個,一個參數(shù)是返回路徑,用戶登錄成功后將跳轉(zhuǎn)至該頁面,這個地址一般是用戶當(dāng)前訪問頁面的地址,也就是說,用戶在認(rèn)證完成后繼續(xù)當(dāng)前的工作;另一個參數(shù)是應(yīng)用服務(wù)器(A或B)臨時產(chǎn)生的用以與服務(wù)器會話的調(diào)用guid,該調(diào)用guid存儲在應(yīng)用服務(wù)器的sess1n中,應(yīng)用服務(wù)器在后續(xù)的過程中依此取回登錄到登錄認(rèn)證中心的當(dāng)前用戶。
[0027]上述過程2中,只有業(yè)務(wù)系統(tǒng)沒有存儲用戶信息的時候才會發(fā)生,該過程無論是首次登錄的系統(tǒng),還是連接其他的系統(tǒng),無論是有連接的進(jìn)入,還是瀏覽器的直接輸入,其處理過程都是一樣的,上述的過程I是進(jìn)入該過程的流程,該過程中,已經(jīng)將登錄成功后的返回地址和用以傳遞當(dāng)前用戶信息的調(diào)用guid傳遞過來了,此時用戶信息的傳遞是服務(wù)器對服務(wù)器的,應(yīng)用服務(wù)(A或B)要從單點登錄服務(wù)器上獲取用戶信息,該過程不能通過sess1n來進(jìn)行訪問,無論用戶是否已經(jīng)登錄,在跳轉(zhuǎn)至用于的返回地址前,都要用戶信息存儲于以調(diào)用guid為關(guān)鍵字的全局變量中。
[0028]上述過程3,其發(fā)生的時機(jī)是:應(yīng)用服務(wù)器(A或B)已經(jīng)生成過調(diào)用guid,該調(diào)用guid已經(jīng)傳遞到單點登錄認(rèn)證中心(S),用戶已經(jīng)輸入用戶名和密碼并通過權(quán)限驗證,且在上述的過程2中,登錄認(rèn)證中心(S)已經(jīng)將用戶信息存儲在以調(diào)用guid為關(guān)鍵字的全局變量中。在此過程中應(yīng)用服務(wù)(A或B)通過登錄認(rèn)證中心(S)提供的函數(shù),以調(diào)用guid為參數(shù)獲取用戶信息即可,獲取的用戶信息保存在用戶的sess1n中。在實際使用中,為確保該返回值是存儲在用戶的sess1n變量中,該調(diào)用過程植入在上述過程I中所述的CheckUser函數(shù)中,以保證單點登錄的開發(fā)過程最簡單,調(diào)用條件為本地的sess1n變量中存儲有調(diào)用guid,而沒有用戶信息。
[0029]本發(fā)明的優(yōu)點是: 用戶信息在登錄認(rèn)證中心和應(yīng)用服務(wù)上存儲、傳輸和同步,客戶端不存儲用戶信息,不存儲會話ID(或票據(jù)),避免了在客戶的應(yīng)用中將不必要的信息傳來傳去,不存在會話ID(或票據(jù))被盜用的風(fēng)險,簡化了單點登錄應(yīng)用系統(tǒng)的開發(fā)過程,提升了系統(tǒng)安全性能。
[0030]以上所述是本發(fā)明的較佳實施例及其所運用的技術(shù)原理,對于本領(lǐng)域的技術(shù)人員來說,在不背離本發(fā)明的精神和范圍的情況下,任何基于本發(fā)明技術(shù)方案基礎(chǔ)上的等效變換、簡單替換等顯而易見的改變,均屬于本發(fā)明保護(hù)范圍之內(nèi)。
【權(quán)利要求】
1.客戶端零存儲的單點登錄方法,其特征在于: 本方法包括三個過程:A用戶在訪問應(yīng)用服務(wù)時,如果應(yīng)用服務(wù)本地沒有存儲當(dāng)前用戶的信息,就會將用戶導(dǎo)向登錄認(rèn)證中心的登錄頁面;B用戶在登錄認(rèn)證中心輸入用戶名和密碼,并成功登錄后,繼續(xù)訪問應(yīng)用服務(wù);C應(yīng)用服務(wù)將登錄認(rèn)證中心存儲的用戶信息同步到應(yīng)用服務(wù)的本地。
2.如權(quán)利要求1所述的客戶端零存儲的單點登錄方法,其特征在于: 權(quán)利要求1中所述的過程A,用戶信息一般是應(yīng)用服務(wù)和登錄認(rèn)證中心同步存儲的,只有應(yīng)用服務(wù)本地沒有存儲用戶信息的時候,才會向認(rèn)證中心發(fā)起請求,也就是頁面跳轉(zhuǎn)。
3.如權(quán)利要求2所述的客戶端零存儲的單點登錄方法,其特征在于: 權(quán)利要求2中所述過程A中應(yīng)用服務(wù)發(fā)起的頁面跳轉(zhuǎn),在此過程中有二個環(huán)節(jié),一是應(yīng)用服務(wù)生成了一個調(diào)用guid,并存儲于應(yīng)用服務(wù)本地,二是向登錄認(rèn)證中心傳遞要返回的地址和調(diào)用guid,同時實現(xiàn)頁面跳轉(zhuǎn)。
4.如權(quán)利要求1所述的客戶端零存儲的單點登錄方法,其特征在于: 權(quán)利要求1中所述的過程B,如果當(dāng)前用戶已經(jīng)通過其他應(yīng)用系統(tǒng)登錄過登錄認(rèn)證中心,也就是已登錄,對于已登錄的用戶,登錄認(rèn)證中心直接執(zhí)行跳轉(zhuǎn)過程,對于未登錄的用戶,登錄認(rèn)證中心導(dǎo)向登錄頁面,登錄成功后,登錄認(rèn)證中心將當(dāng)前用戶的信息存儲與sess1n變量中,再執(zhí)行跳轉(zhuǎn)過程。
5.如權(quán)利要求4所述的客戶端零存儲的單點登錄方法,其特征在于: 登錄認(rèn)證中心在用戶登錄成功后,或者發(fā)現(xiàn)用戶已經(jīng)登錄后,都會去執(zhí)行跳轉(zhuǎn)過程,該跳轉(zhuǎn)過程除了頁面跳轉(zhuǎn)外,還需要以應(yīng)用服務(wù)傳遞的調(diào)用guid為關(guān)鍵字,在全局變量中存儲一份當(dāng)前用戶的信息。
6.如權(quán)利要求1所述的客戶端零存儲的單點登錄方法,其特征在于: 權(quán)利要求1中所述的過程C,在該過程中應(yīng)用服務(wù)通過存儲與本地的調(diào)用guid為關(guān)鍵字,向單點登錄認(rèn)證中心索取登錄到應(yīng)用服務(wù)的當(dāng)前用戶的信息,也就是調(diào)用登錄認(rèn)證中心的函數(shù),獲取到用戶信息后,將該信息存儲到本地的sess1n變量中,用戶在以后的訪問過程中,就不再訪問登錄認(rèn)證中心。
【文檔編號】H04L29/06GK104506555SQ201510004231
【公開日】2015年4月8日 申請日期:2015年1月6日 優(yōu)先權(quán)日:2015年1月6日
【發(fā)明者】尹憲文, 李玉奎, 杜春輝, 尹搏 申請人:北京艾力泰爾信息技術(shù)有限公司