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