基于Cookie的單點登錄輕量級實現(xiàn)方法
【專利摘要】本發(fā)明涉及計算機【技術領域】,請求保護一種基于Cookie的單點登錄方法,用戶在系統(tǒng)內的其中任意一個應用中登錄后在多個應用間進行無縫切換。當用戶在系統(tǒng)內應用間進行切換時,即當用戶瀏覽器攜帶Cookie重定向到要切換的目標Web應用時,目標Web應用單元的LoginFilter從Cookie中讀取信任憑證并攜帶信任憑證向認證服務器請求有效性檢驗;認證服務系統(tǒng)檢驗后返回用戶的登錄信息,LoginFileter根據(jù)返回信息完成用戶在當前應用的登錄授權設置。本發(fā)明提出了一種輕量級的單點登錄解決方案,以信任憑據(jù)共享為核心來完成單點登錄功能,具有穩(wěn)定、便捷、安全、易于擴展等優(yōu)點。
【專利說明】基于Cookie的單點登錄輕量級實現(xiàn)方法
【技術領域】
[0001] 本發(fā)明涉及計算機技術。具體涉及一種在各個Web應用系統(tǒng)之間快捷的單點登錄 方法。
【背景技術】
[0002] 企業(yè)等機構的內部服務器上通常需要部署多個Web應用。這些Web應用一般都是 在不同時期由不同的人員開發(fā),大多使用著獨立的安全認證機制,導致用戶常常需要在各 個應用系統(tǒng)之間切換時需要多次登錄,帶來了不少麻煩和安全隱患。
[0003] 帶來麻煩和安全隱患的主要原因是口令的記憶和管理。傳統(tǒng)的認證系統(tǒng)都是基于 用戶名口令認證方式,而用戶為了簡便,一般都采用相同的口令,甚至使用相同的用戶名和 密碼。一旦其中有個別系統(tǒng)的用戶賬戶被不法分子截獲,有可能在多個系統(tǒng)中造成連鎖危 害。同時,隨著系統(tǒng)的增多,出錯的可能性就會增加,受到非法截獲和破壞的可能性也會 增大。在開發(fā)方面,軟件設計人員也不得不在創(chuàng)建一個新的應用時為其創(chuàng)建新的登錄系統(tǒng), 造成了資源浪費。
[0004] 為了解決上述問題,一種名為單點登錄(Single Sign-on, SS0)的概念被提出。它 的提出是企業(yè)信息化不斷深化以及網(wǎng)絡應用不斷推廣的必然結果。所謂單點登錄,簡單地 說,就是用戶在一個登錄點進行身份驗證后,便可以根據(jù)該身份對一組與該登錄點相關的 應用進行訪問。SS0方便用戶訪問多個系統(tǒng),用戶只需進行一次登錄操作,就可以在多個 Web應用系統(tǒng)間自由切換,不必重復輸入用戶名和密碼來確定身份。SS0技術將原來分散 的用戶管理集中起來,各個系統(tǒng)通過將同一使用者在當前系統(tǒng)使用的賬戶與其他系統(tǒng)的賬 戶建立聯(lián)系進行用戶的身份認證。實現(xiàn)SS0的典型模型有經(jīng)紀人模型、代理模型、代理和經(jīng) 紀人模型、網(wǎng)關模型和令牌模型。
[0005] 具體的解決方案和應用產(chǎn)品有微軟的passport、IBM的Web Sphere等。盡管上述 SS0產(chǎn)品能夠較好地實現(xiàn)單點登錄功能,然而這些方案和產(chǎn)品有著各自的弱點,最明顯的 就是它們大都比較復雜且缺乏靈活性,在項目實踐中很難快速實施。
【發(fā)明內容】
[0006] 本發(fā)明針對現(xiàn)有技術的上述缺陷,在分析研究了上述一些SS0方案的基礎上,提 出了一種輕量級的單點登錄解決方案,在采用小型文本數(shù)據(jù)Cookie(某些網(wǎng)站為了辨別用 戶身份而儲存在用戶本地終端上的小型文本數(shù)據(jù)(通常經(jīng)過加密))的基礎上結合信任憑 據(jù),以信任憑據(jù)共享為核心來完成單點登錄功能,具有穩(wěn)定、便捷、安全、易于擴展等優(yōu)點。
[0007] 本發(fā)明解決上述技術問題的技術方案是,提出一種基于Cookie的單點登錄及系 統(tǒng)切換方法。用戶在一個應用中請求登錄,登錄后可在系統(tǒng)內應用間進行無縫切換,用戶 在系統(tǒng)內任一應用中的登錄注銷等操作對于系統(tǒng)內其他應用可產(chǎn)生一樣的登錄注銷等效 果。所述系統(tǒng)內應用間進行切換具體包括,用戶瀏覽器攜帶Cookie重定向到要切換的目 標應用,目標應用單元的LoginFilter從Cookie中讀取信任憑證,攜帶信任憑證向認證服 務器請求有效性檢驗,認證服務系統(tǒng)將有效性檢驗結果發(fā)回LoginFilter,如校驗失敗返回 到SS0系統(tǒng)重新填寫登錄賬戶信息;如果認證服務器校驗信任憑據(jù)成功,認證服務系統(tǒng)給 LoginFilter返回用戶的登錄信息,LoginFilter根據(jù)返回的信息完成用戶在當前應用的 登錄授權設置。
[0008] 當用戶首次在一個應用中請求登錄時,系統(tǒng)執(zhí)行如下步驟:由Web應用的 LoginFilter轉發(fā)登錄請求給認證服務系統(tǒng),用戶瀏覽器重定向到認證服務系統(tǒng);用戶 向SS0認證服務系統(tǒng)提交登錄賬戶及口令;如果賬戶口令驗證成功,認證服務系統(tǒng)將保 存用戶的登錄信息并設置用戶的全局登錄狀態(tài);認證服務系統(tǒng)將與用戶對應的信任憑 證寫入Cookie中;用戶瀏覽器攜帶Cookie重定向到此前用戶訪問的應用;Web應用的 LoginFilter從Cookie中讀取信任憑證,然后攜帶信任憑證向認證服務器請求有效性 檢驗,有效性檢驗結果由認證服務系統(tǒng)發(fā)回LoginFilter ;如果信任憑據(jù)校驗成功,貝1J認 證服務系統(tǒng)給LoginFilter返回用戶的登錄信息,LoginFilter根據(jù)返回的信息完成用 戶在當前應用的登錄授權設置。當用戶在某個應用中提交注銷請求時,將由當前應用的 LogoutFilter接收并轉發(fā)至SS0服務器,注銷全局狀態(tài)后,再下發(fā)注銷應用Session信息的 請求,應用中的登出過濾器LogoutFilter注銷當前應用信息。用戶在某個應用中提交注銷 請求;當前應用中的LogoutFilter接收請求并轉發(fā)到認證服務系統(tǒng);認證服務系統(tǒng)注銷當 前用戶的登錄狀態(tài),刪除憑證信息;認證服務系統(tǒng)依次向所有應用的LogoutFilter發(fā)送注 銷請求;每個LogoutFilter接收到認證服務器的注銷請求后,進行所在應用內部的用戶登 錄信息注銷操作。
[0009] 本發(fā)明提出了一種輕量級的單點登錄解決方法,此方法具有較好的可實施性和操 作性,較高的可管理性及安全性,易用及可擴展等特點,使所有網(wǎng)絡Web應用資源之間進行 無縫訪問,從而提高網(wǎng)絡用戶的工作效率,降低網(wǎng)絡操作費用,減少管理人員的維護工作 復雜性。
【專利附圖】
【附圖說明】
[0010] 圖1SS0系統(tǒng)框架示意圖;
[0011] 圖2系統(tǒng)內第一次登錄示意流程圖;
[0012] 圖3登錄后系統(tǒng)內應用間切換流程示意圖;
[0013] 圖4用戶登錄后在系統(tǒng)內注銷流程示意圖。
【具體實施方式】
[0014] 在SS0的框架中主要涉及兩個部分,一個是網(wǎng)站的服務器,一個是用戶的瀏覽器。
[0015] 在網(wǎng)站的服務器中,部署著具有不同功能的Web應用,包括管理用戶登錄認證授 權的認證服務系統(tǒng)和其他需要SS0功能支持的目標應用。認證服務系統(tǒng)是SS0的調控中 心,用戶向服務器發(fā)送的所有請求都先經(jīng)過應用的Filter, Filter包括LoginFilter和 LogoutFilter。當用戶發(fā)送的是與登錄認證相關的請求時,Filter會將請求轉發(fā)給認證服 務系統(tǒng),認證服務系統(tǒng)接收到請求后進行相應處理,包括保存用戶的登錄信息和設置用戶 的全局登錄狀態(tài)等。如若是其他的服務請求,則Filter不會對該請求進行干預。
[0016] 認證服務系統(tǒng)運作的核心思想與Liberty協(xié)議類似,是身份聯(lián)合(Identity Federation)。通過制定一種規(guī)則將同一個用戶在不同應用系統(tǒng)下的賬戶進行聯(lián)系,例如統(tǒng) 一賬戶名和口令,對各個系統(tǒng)的賬戶進行綁定等。本文中的系統(tǒng)采取同一用戶口令的方式, 用戶的注冊、登錄以及注銷請求都由認證服務系統(tǒng)來完成。
[0017] 表1. 2. 1認證用戶表主要字段信息
【權利要求】
1. 基于Cookie的單點登錄及系統(tǒng)切換方法,該方法包括:用戶在一個應用中請求登 錄,登錄后在系統(tǒng)內應用間進行無縫切換,用戶在系統(tǒng)內任一應用中的登錄注銷對于其他 應用產(chǎn)生同樣的登錄注銷操作,其特征在于,所述系統(tǒng)內應用間進行切換具體包括,用戶瀏 覽器攜帶Cookie重定向到此前用戶訪問的應用;Web應用單元的LoginFilter從Cookie中 讀取信任憑證,攜帶信任憑證向認證服務器請求有效性檢驗,認證服務系統(tǒng)將有效性檢驗 結果發(fā)回LoginFilter,如校驗失敗回到SSO系統(tǒng)重新填寫登錄賬戶信息;如果信任憑據(jù)校 驗成功,認證服務系統(tǒng)給LoginFilter返回用戶的登錄信息,LoginFilter根據(jù)返回的信息 完成用戶在當前應用的登錄授權設置。
2. 根據(jù)權利要求1所述的方法,其特征在于,當用戶首次在一個應用中請求登錄時,包 括步驟:由Web應用的LoginFi Iter轉發(fā)登錄請求給認證服務系統(tǒng),用戶瀏覽器重定向到認 證服務系統(tǒng);用戶向SSO認證服務系統(tǒng)提交登錄賬戶及口令;如果賬戶口令驗證成功,認證 服務系統(tǒng)將保存用戶的登錄信息并設置用戶的全局登錄狀態(tài);認證服務系統(tǒng)將與用戶對應 的信任憑證寫入Cookie中;用戶瀏覽器攜帶Cookie重定向到此前用戶訪問的應用;Web應 用的LoginFiIter從Cookie中讀取信任憑證,然后攜帶信任憑證向認證服務器請求有效性 檢驗,有效性檢驗結果由認證服務系統(tǒng)發(fā)回LoginFilter ;如果信任憑據(jù)校驗成功,則認證 服務系統(tǒng)給LoginFilter返回用戶的登錄信息,LoginFilter根據(jù)返回的信息完成用戶在 當前應用的登錄授權設置。
3. 根據(jù)權利要求1所述的方法,其特征在于,當用戶在某個應用中提交注銷請求時,將 由當前應用的Log0UtFilter接收并轉發(fā)至SSO服務器,注銷全局狀態(tài)后,再下發(fā)注銷應用 Session信息的請求,應用中的LogoutFilter注銷當前應用下信息。
4. 根據(jù)權利要求3所述的方法,其特征在于,用戶在某個應用中提交注銷請求;當前應 用中的Log0UtFilter接收請求并轉發(fā)到認證服務系統(tǒng);認證服務系統(tǒng)注銷當前用戶的登 錄狀態(tài),刪除憑證信息;認證服務系統(tǒng)依次向所有應用的Log 0UtFilter發(fā)送注銷請求;每 個Log0UtFilter接收到認證服務器的注銷請求后,進行所在應用內部的用戶登錄信息注 銷操作。
【文檔編號】H04L29/06GK104320423SQ201410668869
【公開日】2015年1月28日 申請日期:2014年11月19日 優(yōu)先權日:2014年11月19日
【發(fā)明者】白明澤, 舒坤賢, 李家彪, 冉奇, 歐陽超, 郭嘉蒙, 趙杰 申請人:重慶郵電大學