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