專利名稱:統一認證系統和基于該統一認證系統的登錄方法
技術領域:
本發明涉及一種用于用戶訪問多個子系統的認證系統和方法,具體地說,是涉及 一種統一認證系統和基于該統一認證系統的登錄子系統的方法。
背景技術:
開發一個大型應用系統往往需要根據不同的業務或功能開發多個子系統,以降低 系統復雜性。如果每個子系統都有自己的用戶管理和用戶登錄認證授權機制,不僅會增加 系統開發維護成本、降低系統性能和可用性,也不符合應用系統的完整性要求。因此,多個 子系統一般要共享一套用戶數據,共用一套登錄認證授權流程(一個統一的認證系統),使 用戶只需要登錄一次就可以訪問所有相互信任的子系統,即采用SS0(Single Sign 0η,單 點登錄)。
當用戶第一次訪問應用子系統1的時候,因為還沒有登錄,會被引導到認證系統 中進行登錄。根據用戶提供的登錄信息,認證系統將用戶的登錄信息和用戶信息庫相比 較,對用戶進行身份效驗,如果通過效驗,應該返回給用戶一個認證的憑據——認證標志 Ticket。當然,認證系統還應對Ticket進行效驗,判斷其有效性。當用戶再訪問子系統2 時,就會將這個Ticket帶上,作為自己認證的憑據,子系統2接收到請求之后通過與認證系 統的通訊,會把Ticket送到認證系統進行效驗,檢查Ticket的合法性。如果通過效驗,用 戶就可在不用再次登錄的情況下訪問子系統2 了。
目前實現SSO的技術主要有以下幾種基于cookies實現;基于經紀人 (Broker-based)實現;基于代理人(Agent-based)實現;基于口令(Token-based)實 M (Agent and Broker-based) $3 SAML(Security Assertion Markup Language,安全斷言標記語言)實現。
雖然上述這些技術都能夠實現SS0,但是,它們存在著一些缺陷第一,沒有把登 錄、認證、授權有機地結合起來,認證時需要頻繁訪問統一的認證系統,當用戶訪問量很大 時,認證系統就會成為整個系統的瓶頸;第二,不能對用戶登錄成功后的時效性進行控制 (此處的時效性是指比如,出于安全考慮,要求用戶登錄成功12或M小時后,會話自動到 期,必須重新登錄認證和授權)。發明內容
本發明的目的在于提供一種統一認證系統和基于該統一認證系統的登錄方法,基 于該統一認證系統的登錄方法實現了一種統一登錄認證和授權的過程。
為了實現上述目的,本發明采用了以下技術方案
一種統一認證系統,其特征在于它包括用于實現用戶管理、用戶角色管理、用戶 權限管理、用戶登錄界面邏輯、會話的生成、TICKET信息的保存、認證標志TICKET的生成 和保存這些功能的登錄認證授權管理系統和用于存儲TICKET信息的TICKET服務器,該 登錄認證授權管理系統通過服務接口模塊與該TICKET服務器連接,該服務器接口模塊與各個子系統連接,每個子系統均配設有用于獲取用戶的認證標志TICKET和與該認證標志 TICKET對應的TICKET信息的獲取模塊。
一種基于統一認證系統的登錄方法,其特征在于它包括如下步驟
步驟一在用戶登錄界面中,用戶輸入用戶名和密碼進行登錄;
步驟二若該用戶為合法用戶,則由所述登錄認證授權管理系統在用戶終端中產 生本地會話,生成認證標志TICKET,并將該認證標志TICKET保存在用戶終端中,其中該本 地會話中保存有從服務器端的信息數據庫中獲取的該用戶的TICKET信息;
步驟三所述登錄認證授權管理系統將該TICKET信息存儲到TICKET服務器中,該 用戶獲得的認證標志TICKET與該TICKET信息相對應;
步驟四當該用戶訪問一個子系統時,該子系統的獲取模塊從用戶終端獲取認證 標志TICKET,然后根據獲取的該認證標志TICKET,從TICKET服務器中獲取該用戶的TICKET 信息,從而根據該TICKET信息判斷該用戶是否有權訪問該子系統。
本發明的優點是
在本發明中,用戶輸入用戶名和密碼登錄后,是否可以訪問某個子系統的認證和 授權過程僅由該子系統與TICKET服務器之間的通訊完成,不用用戶再進行任何其他操作, 為用戶提供了便利性。
在用戶訪問子系統的本地會話期間內,子系統不會頻繁、重復訪問TICKET服務 器,因此,即使用戶訪問量很龐大,所有壓力也不會都集中到TICKET服務器上,從而TICKET 服務器不會成為系統的瓶頸,確保了整個系統的順暢運行。
本發明設置有定期刪除認證標識TICKET和TICKET信息的機制,該機制緩解了 TICKET服務器的存儲壓力,提高了系統的安全性。
本發明統一認證系統是一個完整的統一登錄認證授權系統解決方案,各個子系統 與本發明統一認證系統間通過統一的規范數據格式完成SSO(單點登錄)流程。
圖1是本發明統一認證系統的組成示意圖。
具體實施方式
如圖1所示,本發明統一認證系統包括用于實現用戶管理、用戶角色管理(角色可 以分級別管理,高級別用戶擁有低級別用戶的管理權限,一個用戶可以具有多種角色)、用 戶權限管理(每個用戶針對各個子系統都可有不同的訪問權限)、用戶登錄界面邏輯、會話 的生成、TICKET信息的保存、認證標志TICKET的生成和保存這些功能的登錄認證授權管理 系統100和用于存儲TICKET信息的TICKET服務器200,該登錄認證授權管理系統100通過 服務接口模塊300與該TICKET服務器200連接,該服務器接口模塊300與各個子系統500 連接,每個子系統500均配設有用于獲取用戶的認證標志TICKET和與該認證標志TICKET 對應的TICKET信息的獲取模塊。
該TICKET信息可包括用戶基本信息和用戶角色權限信息,TICKET信息中的用戶 角色權限信息是各個子系統實現授權的依據。登錄認證授權管理系統100使得整個系統具 有一個統一的用戶登錄界面(包括用戶名、密碼輸入框)。用戶訪問所有子系統前,在用戶未登錄或認證、授權不通過的情況下,該用戶均會被引導到該用戶登錄界面中。
該服務接口模塊300為JMS、RMI或CORBA中的任一種。JMS (即Java Message krvicejava消息服務應用程序接口 )是一個Java平臺中關于面向消息中間件的API,用 于在兩個應用程序之間或分布式系統中發送消息,進行異步通信。JMS作為底層數據通訊方 式,可將登錄認證授權管理系統100、TICKET服務器200與各個子系統500間有效地連接起 來,規范它們之間的數據通訊格式,降低開發成本。RMI (Remote Method Invocation,遠程 方法調用)是Java的一組擁護開發分布式應用程序的API。CORBA(Common Object Request Broker Architecture,公共對象請求代理體系結構)是一種通用對象請求代理體系結構, 是由OMG組織制訂的一種標準的面向對象應用程序體系規范。
如圖1,該登錄認證授權管理系統100、TICKET服務器200、各個子系統500與服務 接口模塊300之間均與一個框架MULE 400連接。框架MULE是一個基于Java的輕量級消 息框架,它可以快速、容易地將各個應用連接起來,并且保證這些應用間可以交換數據。
在本發明統一認證系統中,TICKET服務器200的核心組成部分為緩存(Cache)。在 緩存中,認證標志TICKET和其對應的TICKET信息采用Key-Value (鍵值對)的方式存儲, 其中Key為認證標志TICKET,是一個由用戶名加系統時間生成的md5加密字符串,Value 為TICKET信息。
在實際應用中,本發明統一認證系統還可包括用于定期刪除認證標志TICKET和 TICKET信息的定期刪除模塊,也就是說,認證標志TICKET和TICKET信息是有有效期限的。 認證標志TICKET和TICKET信息在一個設定時間(該設定時間可調整)后自動失效,從而 提高了系統的安全性。另外,TICKET服務器200中還可設置用于記錄用戶登錄情況的用戶 登錄日志記錄模塊、用于記錄用戶操作行為情況的用戶行為日志記錄模塊。
基于上述本發明統一認證系統,本發明還提出了一種登錄方法,該登錄方法包括 如下步驟
步驟一在用戶登錄界面中,用戶輸入用戶名和密碼進行登錄;
步驟二 若用戶為合法用戶,則由登錄認證授權管理系統100在用戶終端(WEB服 務器)中產生本地會話Cession),生成認證標志TICKET,并將該認證標志TICKET保存在 用戶終端(瀏覽器)中,其中該本地會話中保存有從服務器端的信息數據庫中獲取的該用 戶的TICKET信息(包括用戶基本信息和用戶角色權限信息);若用戶為非法用戶,則返回 到該用戶登錄界面中,讓該用戶重新登錄;
步驟三登錄認證授權管理系統100將該TICKET信息存儲到TICKET服務器200 中,該用戶獲得的認證標志TICKET與該TICKET信息相對應(例如,以鍵值對形式存儲);
步驟四當該用戶訪問一個子系統500(如子系統1)時,該子系統500的獲取模 塊從用戶終端獲取認證標志TICKET(或者,當用戶訪問該子系統時,可通過用戶終端的瀏 覽器將包含認證標志TICKET的COOKIES帶到該子系統中,從而使該子系統通過帶入的該 COOKIES獲取認證標志TICKET。),然后根據獲取的該認證標志TICKET,從TICKET服務器 200中獲取該用戶的TICKET信息,從而根據該TICKET信息判斷該用戶是否有權訪問該子系 統。
在步驟二中,認證標志TICKET可以COOKIES形式保存在用戶終端中,從而在步驟 四中,子系統500的獲取模塊可從用戶終端的COOKIES中獲取認證標志TICKET。
步驟四是子系統的認證和授權過程。在步驟四中,若該用戶有權訪問該子系統,則 建立本地會話,允許該用戶以其自身的角色訪問該子系統,其中
在本地會話有效期內,該子系統是不需要與TICKET服務器200進行通訊的,這樣 可以減輕TICKET服務器200的負擔;
當該本地會話過期后,若該子系統仍能獲取到認證標志TICKET (即保存該認證標 志TICKET的COOKIES沒有過期),則該子系統再次與TICKET服務器200通訊而重新進行訪 問權限判斷(即進行認證和授權過程),若由于認證標志TICKET被定期刪除模塊刪除而該 子系統不能獲取到該認證標志TICKET,則該用戶的訪問結束,該用戶必須再次登錄用戶登 錄界面,獲取新的認證標志TICKET,這樣提高了系統安全性。并且,若由于該用戶的TICKET 信息被定期刪除模塊刪除而該子系統從TICKET服務器200中獲取不到該用戶的TICKET信 息(或者,TICKET信息為空),則該用戶的本地會話結束,該用戶也必須再次登錄用戶登錄 界面,獲取新的認證標志TICKET,系統安全性被提高。
當用戶訪問完子系統1后又去訪問另外一個子系統(如子系統2),或者,當用戶訪 問子系統1的同時又去訪問另外一個子系統(如子系統2),那么,此時,該用戶不必在用戶 登錄界面中重新登錄,而只需要該子系統2與TICKET服務器直接通訊來進行認證和授權過 程,便可以確定該用戶是否有權訪問該子系統2。
在本發明中,用戶輸入用戶名和密碼登錄后,是否可以訪問某個子系統的認證和 授權過程僅由該子系統與TICKET服務器之間的通訊完成,不用用戶再進行任何其他操作, 為用戶提供了便利性。
在用戶訪問子系統的本地會話期間內,子系統不會頻繁、重復訪問TICKET服務 器,因此,即使用戶訪問量很龐大,所有壓力也不會都集中到TICKET服務器上,從而TICKET 服務器不會成為系統的瓶頸,確保了整個系統的順暢運行。
本發明設置有定期刪除認證標識TICKET和TICKET信息的機制,該機制緩解了 TICKET服務器的存儲壓力,提高了系統的安全性。
上述是本發明的較佳實施例及其所運用的技術原理,對于本領域的技術人員來 說,在不背離本發明的精神和范圍的情況下,任何基于本發明技術方案基礎上的等效變換、 簡單替換等顯而易見的改變,均屬于本發明保護范圍之內。
權利要求
1.一種統一認證系統,其特征在于它包括用于實現用戶管理、用戶角色管理、用戶權 限管理、用戶登錄界面邏輯、會話的生成、TICKET信息的保存、認證標志TICKET的生成和保 存這些功能的登錄認證授權管理系統和用于存儲TICKET信息的TICKET服務器,該登錄認 證授權管理系統通過服務接口模塊與該TICKET服務器連接,該服務器接口模塊與各個子 系統連接,每個子系統均配設有用于獲取用戶的認證標志TICKET和與該認證標志TICKET 對應的TICKET信息的獲取模塊。
2.如權利要求1所述的統一認證系統,其特征在于所述登錄認證授權管理系統、TICKET服務器、各個子系統與所述服務接口模塊之間均 與一個框架MULE連接。
3.如權利要求1或2所述的統一認證系統,其特征在于 所述服務接口模塊為JMS、RMI或CORBA中的任一種。
4.如權利要求1或2所述的統一認證系統,其特征在于 所述TICKET信息包括用戶基本信息和用戶角色權限信息。
5.如權利要求1或2所述的統一認證系統,其特征在于所述統一認證系統包括用于定期刪除認證標志TICKET和TICKET信息的定期刪除模塊。
6.一種基于權利要求1所述的統一認證系統的登錄方法,其特征在于它包括如下步驟步驟一在用戶登錄界面中,用戶輸入用戶名和密碼進行登錄; 步驟二 若該用戶為合法用戶,則由所述登錄認證授權管理系統在用戶終端中產生本 地會話,生成認證標志TICKET,并將該認證標志TICKET保存在用戶終端中,其中該本地會 話中保存有從服務器端的信息數據庫中獲取的該用戶的TICKET信息;步驟三所述登錄認證授權管理系統將該TICKET信息存儲到TICKET服務器中,該用戶 獲得的認證標志TICKET與該TICKET信息相對應;步驟四當該用戶訪問一個子系統時,該子系統的獲取模塊從用戶終端獲取認證標志 TICKET,然后根據獲取的該認證標志TICKET,從TICKET服務器中獲取該用戶的TICKET信 息,從而根據該TICKET信息判斷該用戶是否有權訪問該子系統。
7.如權利要求6所述的登錄方法,其特征在于所述TICKET信息包括用戶基本信息和用戶角色權限信息。
8.如權利要求6所述的登錄方法,其特征在于在所述步驟二中,所述認證標志TICKET以COOKIES形式保存在用戶終端中,從而在所 述步驟四中,子系統的獲取模塊從用戶終端的COOKIES中獲取所述認證標志TICKET。
9.如權利要求6或7或8所述的登錄方法,其特征在于在所述步驟四中,若該用戶有權訪問該子系統,則建立本地會話,允許該用戶以其自身 的角色訪問該子系統,其中當該本地會話過期后,若該子系統仍能獲取到所述認證標志TICKET,則該子系統再次 與TICKET服務器通訊而重新進行訪問權限判斷,若由于所述認證標志TICKET被定期刪除 模塊刪除而該子系統不能獲取到所述認證標志TICKET,則該用戶的訪問結束。
10.如權利要求9所述的登錄方法,其特征在于若由于該用戶的TICKET信息被定期刪除模塊刪除而該子系統從所述TICKET服務器中 獲取不到該用戶的TICKET信息,則該用戶的本地會話結束。
全文摘要
本發明公開了一種統一認證系統和登錄方法。該系統包括登錄認證授權管理系統,其通過服務接口模塊與TICKET服務器連接。該方法包括用戶輸入用戶名和密碼登錄;若為合法用戶,用戶終端產生本地會話,生成認證標志并保存在用戶終端中;本地會話中的TICKET信息存儲到TICKET服務器中;當用戶訪問一子系統時,該子系統根據從用戶終端獲取的認證標志從TICKET服務器獲取TICKET信息,從而判斷該用戶是否有權訪問該子系統。通過本發明訪問子系統時,除輸入用戶名和密碼登錄外,用戶不用再進行任何其他操作,十分便利。當訪問的用戶量龐大時,本發明系統中的TICKET服務器不會成為系統瓶頸。
文檔編號H04L29/06GK102045171SQ20101061452
公開日2011年5月4日 申請日期2010年12月30日 優先權日2010年12月30日
發明者李勁華, 賈志東 申請人:北京世紀互聯工程技術服務有限公司, 北京云快線軟件服務有限公司