0、引言
隨著計算機及網絡技術的不斷發(fā)展,企業(yè)的信息化建設也在不斷的深入,許多企業(yè)建立了大量的應用系統。由于企業(yè)的各種應用系統、各種信息的不斷增多,許多企業(yè)迫切需要將這些應用和信息進行有效整合,形成統一的企業(yè)門戶系統。在企業(yè)門戶系統中,用戶通過單點登錄一次認證進入系統后,可以訪問所有具有權限的應用系統。
然而,企業(yè)現有的各種應用系統,大多是在不同的時期由不同的廠商開發(fā)的軟件,其采用的技術架構、開發(fā)工具、數據結構都不統一。在這種情況下,實現單點登錄和應用系統的統一身份驗證將會有一定的難度。
1、單點登錄的概念
由于企業(yè)具有許多應用系統,每個應用系統均有自己的登錄界面。工作人員在使用每個應用系統時,都需要輸入用戶名和密碼,這就為工作人員操作帶來了不便。單點登錄(Single Sign-On,縮寫為SSO),就是解決這種問題的方法,它是目前企業(yè)業(yè)務整合時使用較多的一種解決方案。通過SSO,用戶只需要在某個應用系統入口登錄一次,就可以訪問所有與該應用系統相互信任的其它應用系統。
SSO的理想狀況是用戶可以通過任意一個應用系統進行單點登錄。這種情況主要發(fā)生在一些基于Web的應用系統中。在這種情況下,單一的登錄點(可以稱為SSO Entry)是所有應用系統中唯一的驗證用戶權限的地方。用戶在登錄點登錄后將產生一個SSO票據(或憑證),然后由登錄點將這個票據傳遞給WEB或應用系統,在傳遞的票據信息中,針對不同的C/S結構或B/S結構應用系統可能還會包括用戶名及密碼等信息。應用系統在收到這些票據信息后,對其用戶信息進行驗證,進而登錄到應用系統中。
在使用單點登錄的過程中,SSO Entry需要完成下列功能;
首先,SSO Entry需要為用戶提供一個身份驗證的登錄界面,用戶在此界面中輸入用戶名及密碼;
其次,SSO Enry需要根據用戶所具有的權限,顯示用戶可以使用的應用系統。
第三,SSO Entry可以根據用戶的選擇調用應用系統,應用系統可以是B/S結構或C/S結構。
第四,SSO Entry可以將SSO票據傳遞給應用系統,在傳遞的票據信息中,針對不同的C/S結構或B/S結構應用系統可能還會包括用戶名及密碼等信息。
第五,SSO Entry可以關閉SSO,并且在SSO票據失效后,可以關閉SSO Entry。
2、單點登錄的缺陷
由于只有符合SSO規(guī)范的應用系統才能實現真正的SSO。因此,并不是任何系統都可以實現真正的單點登錄。許多企業(yè)采用了自底向上的信息化建設方式,建立了許多相互獨立的底層應用系統,而這些應用系統大多數都不符合SSO規(guī)范。在這些應用系統的整合過程中,如果要實現SSO,則必須要修改這些應用系統的用戶驗證模塊,使其能通過SSO票據來實現用戶身份的驗證,并根據用戶身份來授權用戶的操作權限。這就意味著必須對應用系統的代碼進行修改。
SSO還需要建立一個統一的身份驗證和權限管理信息庫。然而,在現有的許多應用系統中,每個應用系統都有不同的身份驗證和權限管理模塊,系統的身份驗證模型、權限管理模型、權限信息存儲結構和應用系統的業(yè)務邏輯之間有非常緊密的耦合性。這種緊耦合性使得身份驗證和權限管理模塊很難進行擴展,其代碼修改的工作量將非常之大。
由于上述這些SSO的局限性,使得在企業(yè)門戶系統中無法實現真正的SSO。
3、改進的單點登錄實現方式
為了在企業(yè)門戶系統中達到單點登錄的效果,可以采用一種變通的方式,對SSO進行改進,我們稱之為偽單點登錄。真正的單點登錄的實現過程是:通過SSO Entry進行身份驗證后,企業(yè)門戶系統生成一個統一的SSO票據,保存在票據證書服務器上,應用系統可通該服務器來讀取SSO票據,并驗證該用戶是否經過了統一的身份驗證。
偽單點登錄的實現過程是:通過SSO Entry進行身份驗證后,將用戶名及相應的密碼傳遞給應用系統,應用系統通過本身的身份驗證模塊來進行身份驗證和授權管理。通過這種方式,也可以達到單點登錄的效果。
單點登錄的實現方式按照應用系統的結構可分為四種,如圖1。其中最下面的一種方式為真正的單點登錄,上面的三種方式是通過不同形式實現的偽單點登錄。需要提到的是,這幾種單點登錄的實現方式并沒有所謂的優(yōu)劣之分,只是其適用的應用環(huán)境不同而已。
圖1 單點登錄的四種方式
(1)可共用證書服務器的Web系統
用戶在門戶系統上輸入用戶名和密碼后,門戶系統進行身份驗證,并生成一個票據存儲在票據證書服務器上。當用戶訪問可與門戶系統服務器共用票據證書服務器的Web應用系統時,該WEB應用系統可以直接從票據證書服務器中讀取票據信息并對用戶的票據進行驗證。這一種單點登錄的實現方式是真單點登錄。
(2)無法共用證書服務器的Web系統
用戶在門戶系統上輸入用戶名和密碼后,門戶系統進行身份驗證,并生成一個訪問應用系統所需要的用戶名與密碼。當用戶訪問無法與門戶系統共用票據證書服務器的web應用時,門戶系統通過Get方式將加密后的用戶名和密碼傳遞給該Web應用中的一個WEB登錄適配器(其實現原理及方法見下文)中,WEB登錄適配器得到數據后,解密得到用戶名和密碼,然后調用Web應用的身份驗證模塊進行身份驗證,驗證成功后,即可進入應用系統,并根據權限訪問受保護的資源。這一種單點登錄的實現方式是偽單點登錄。
(3)基于C/S結構并需要輸入用戶名口令的系統
用戶在門戶系統上輸入用戶名和密碼后,門戶系統進行身份驗證,并生成一個訪問應用系統所需要的用戶名與密碼。當用戶需要打開一個需要輸入用戶名密碼的C/S結構的軟件時,門戶系統通過命令行參數的方式將經過加密的用戶名和密碼傳遞給該應用系統的軟件登錄適配器(其原理及方法見下文)中,軟件登錄適配器自動打開該應用系統并輸入解密后的用戶名和密碼,自動登錄到應用系統中。這一種單點登錄的實現方式是偽單點登錄。
(4)基于C/S結構但不需要輸入用戶名1:3令的系統
一些應系統,不需要用戶驗證就可以使用。比如一些工具軟件(如記事本、通訊錄、Word等)。用戶使用對這些應用系統時,可以從門戶系統直接打開。
還有一些應用系統,提供了自動登錄的接口,比如可通過命令行參數將用戶名密碼傳遞到系統中。用戶在使用這些系統時,門戶系統可以通過增加命令行參數(命令行參數中包括了用戶名及密碼等信息)的方式來打開這些應用系統。這一種單點登錄的實現方式是偽單點登錄。
3.1 WEB登錄適配器
WEB登錄適配器工作原理是:在WEB應用系統所在的服務器上建立一個WEB應用頁面,該頁面可以通過GET方式接收門戶系統傳來的用戶名密碼,然后可按照WEB應用系統的權限管理機制進行身份驗證,驗證通過后生成一個證書(Cookies或Session),將該證書傳遞給WEB應用程序,從而進入該WEB應用系統。
3.2 軟件登錄適配器
軟件登錄適配器的是一個小的可執(zhí)行程序,該程序部署在應用系統所在的計算機上。其工作步驟是:首先通過命令行參數的方式接收用戶名口令,然后打開應用系統,并找到登錄窗口中用戶名、口令的輸入子窗口以及“登錄”按鈕,最后通過鍵盤模擬的方式向用戶名、口令的輸入子窗口中分別輸入用戶名和口令,并模鼠標擬點擊“登錄”按鈕,進入應用系統。
4、統一身份驗證的實現
門戶系統中涉及到許多子系統,這些子系統之間可能是不同時期由不同廠商開發(fā)應用的系統。各個應用系統之間彼此相互獨立,并且每個應用系統都有自己的用戶身份驗證模塊與權限管理策略。在企業(yè)應用系統整合的過程中, 需要通過企業(yè)門戶系統對這些子系統的用戶進行統一的管理, 達到單點登錄、統一身份驗證的目的。
統一身份驗證,可分為兩個層次:登錄門戶的用戶身份驗證和登錄應用系統的用戶身份驗證。
4.1 登錄門戶的用戶身份驗證
用戶首先需要登錄到企業(yè)門戶系統,然后才能訪問企業(yè)門戶系統中的應用系統。因此,用戶在登錄企業(yè)門戶系統中,需要首先進行身份驗證。其工作流程如下:
首先,用戶在登錄頁面中輸入用戶名和密碼;
其次,企業(yè)門戶系統通過身份驗證模塊對用戶名稱密碼進行驗證;
第三,驗證成功后,將在服務器端生成一個票據信息并保存起來,該票據信息可用于前文中所述的真單點登錄;
第四,服務器端將用戶驗證信息傳遞給企業(yè)門戶系統的展現策略管理,通過展現策略管理實現用戶界面的個性化定制,并確定應用系統在客戶端界面中的展示方式;
第五,將定制的信息顯示在客戶端。
4.2 登錄應用系統的用戶身份驗證
用戶登錄到企業(yè)門戶系統后,再調用應用系統時,將使用該應用系統的用戶身份驗證模塊進行身份驗證。
由于企業(yè)門戶系統中登錄所用的用戶名密碼與各個應用系統所用的用戶名密碼并不相同,因此,可以通過建立一個用戶映射表的方式, 將企業(yè)門戶系統的用戶與應用系統中的用戶(或角色)對應起來,如圖2。企業(yè)門戶系統的用戶與應用系統的用戶可以是多對1的關系。當用戶訪問該應用系統時, 企業(yè)門戶系統首先通過用戶映射表得到應用系統的用戶名與密碼,并將此用戶名和密碼傳遞給應用系統,由應用系統進行用戶身份驗證并進行權限分配。
圖2 用戶映射示意圖
對一些基于WEB的應用,也可以在應用系統中安裝門戶系統的身份驗證代理程序。比如前文中所述的WEB登錄適配器就是一個身份驗證代理。當用戶訪問該應用系統時, 企業(yè)門戶系統將應用系統的用戶名及密碼傳遞給身份認證代理,身份驗證代理通過應用系統的身份驗證系統進行身份驗證, 驗證通過后,將返回的驗證票據或用戶信息提交給應用系統。應用系統根據此驗證票據或用戶信息進行權限和界面管理,將可用的界面展示給用戶。
5、結論
本文提出的單點登錄和統一身份驗證的實現方式,可以主動適應于各種技術架構的應用系統,具有較強的可擴展性。通過這種方式,企業(yè)不但可以將現有的各種應用系統集成在統一的管理平臺上,而且在選用新的應用系統時,只需要關心所選應用系統的功能是否滿足需求即可,而不必要考慮所選應用系統是否能夠集成在企業(yè)門戶系統中。因此,本文所提的這種方式可以為企業(yè)應用系統建設提供更廣闊的選擇空間。
核心關注:拓步ERP系統平臺是覆蓋了眾多的業(yè)務領域、行業(yè)應用,蘊涵了豐富的ERP管理思想,集成了ERP軟件業(yè)務管理理念,功能涉及供應鏈、成本、制造、CRM、HR等眾多業(yè)務領域的管理,全面涵蓋了企業(yè)關注ERP管理系統的核心領域,是眾多中小企業(yè)信息化建設首選的ERP管理軟件信賴品牌。
轉載請注明出處:拓步ERP資訊網http://www.guhuozai8.cn/