引言
隨著企業(yè)信息化的高速發(fā)展,案例所在的國有企業(yè),業(yè)務(wù)發(fā)展非常迅速。在信息化建設(shè)上也不遺余力,企業(yè)內(nèi)部實施了ERP、PDM、辦公自動化、人力資源、業(yè)務(wù)查詢、新聞、檔案、企業(yè)內(nèi)部外部網(wǎng)站等諸多應(yīng)用系統(tǒng)。這些系統(tǒng)提高了企業(yè)運轉(zhuǎn)效率的同時,也存在一些問題:一個用戶往往需要同時使用幾個應(yīng)用系統(tǒng)提供的服務(wù),需要記住不同系統(tǒng)用戶名密碼的同時,頻繁的在各個系統(tǒng)之間進(jìn)行切換,而每次切換時,都需要該系統(tǒng)獨立的賬戶名和口令進(jìn)行登陸,給用戶的工作帶來了不便,降低了工作的效率。同時用戶為了便于記憶口令,會采用較簡單的口令形式或者將多個應(yīng)用系統(tǒng)的口令設(shè)置成相同的形式,這也給系統(tǒng)的安全帶來了隱患。
為了解決以上問題,企業(yè)提出了單點登錄(Singlesign-on,SSo)的需求。單點登錄是指在用戶需要訪問一個分布式環(huán)境中各個不同應(yīng)用系統(tǒng)提供的服務(wù)時,只需要在環(huán)境中登錄一次,而不需要用戶在各個應(yīng)用系統(tǒng)重新登錄。單點登錄的實質(zhì)就是安全上下文或憑證在多個應(yīng)用系統(tǒng)之間的傳遞或共享。如果在企業(yè)內(nèi)部的支撐系統(tǒng)之間實現(xiàn)了單點登錄,只要用戶在一個系統(tǒng)中成功登錄,當(dāng)用戶在多個系統(tǒng)間進(jìn)行切換時,就不需要再進(jìn)行驗證,可以直接進(jìn)入另外一個系統(tǒng),提高了用戶的工作效率和用戶體驗。
1 設(shè)計開發(fā)目標(biāo)
針對企業(yè)現(xiàn)狀,本文的設(shè)計開發(fā)目標(biāo)為,基于Winidows 2003+IIS平臺,采用JAVA語言,建立一套“企業(yè)信息門戶”平臺,為企業(yè)用戶提供統(tǒng)一的信息資源訪問入口,實現(xiàn)不同應(yīng)用系統(tǒng)的單點登錄。結(jié)合企業(yè)實際管理需求,系統(tǒng)決定采用以下方案進(jìn)行系統(tǒng)開發(fā)實施:
(1)建立企業(yè)信息門戶系統(tǒng)平臺,創(chuàng)建一套統(tǒng)一的用戶管理數(shù)據(jù)庫,將各個系統(tǒng)的用戶統(tǒng)一集成在企業(yè)門戶系統(tǒng)中,規(guī)范命名,統(tǒng)一管理;
(2)將每個用戶在OA,ERP,PDM,業(yè)務(wù)查詢、檔案等需要單點登錄的系統(tǒng)的帳戶和對應(yīng)的密碼,高強(qiáng)度加密維護(hù)在系統(tǒng)中;
(3)當(dāng)用戶成功登錄企業(yè)信息門戶并獲得相應(yīng)的授權(quán),系統(tǒng)就根據(jù)該用戶擁有的權(quán)限自動通過事先維護(hù)的賬號和密碼,自動通過門戶平臺單點登錄(SS0)模塊登錄各應(yīng)用系統(tǒng),并根據(jù)各系統(tǒng)的反饋的登錄信息判斷是否成功登錄各應(yīng)用系統(tǒng)。
2 單點登錄模型
基于Web的單點登錄主要的實現(xiàn)模型有:基于經(jīng)紀(jì)人的單點登錄;基于代理的單點登錄模型和基于代理經(jīng)紀(jì)人的單點登錄模型。
2.1基于經(jīng)紀(jì)人的單點登錄
在此模型中,有一個集中的認(rèn)證和用戶帳號管理的服務(wù)器。首先,客戶端訪問認(rèn)證服務(wù)器,與認(rèn)證服務(wù)器進(jìn)行雙向身份認(rèn)證后,獲得電子身份標(biāo)識;然后客戶端憑借已獲得的電子身份標(biāo)識訪問各種應(yīng)用系統(tǒng),從而實現(xiàn)單點登錄。此模型中提供了一個獨立的“第三方”,通過身份認(rèn)證的客戶端持認(rèn)證服務(wù)器返回的電子身份標(biāo)識去訪問應(yīng)用服務(wù)器,可以方便地擴(kuò)展系統(tǒng),但須對各個應(yīng)用系統(tǒng)進(jìn)行改造。
2.2基于代理的單點登錄
在這種解決方案中,有一個自動地為不同的應(yīng)用程序認(rèn)證用戶身份的代理程序。這個代理程序需要設(shè)計有不同的功能,它可以使用口令表或加密密鑰來自動地將認(rèn)證的負(fù)擔(dān)從用戶移開[4]。保證了通道的安全和單點登錄,具有比較好的可實施性和靈活性,但其缺陷是用戶的登錄憑證要在本地存儲,增加了口令泄漏的危險。
2.3基于代理經(jīng)紀(jì)人的單點登錄
基于經(jīng)紀(jì)人的解決方案和基于代理的解決方案相結(jié)合。代理模型優(yōu)點是能減少對應(yīng)用程序的改造,經(jīng)紀(jì)人模型優(yōu)點就是認(rèn)證集中,基于以上兩點,代理經(jīng)紀(jì)人模型就兼具了前者集中管理和后者無需修改應(yīng)用服務(wù)程序的優(yōu)點,是優(yōu)點比較突出也是現(xiàn)今用得較多的模型。
3 單點登錄在企業(yè)信息門戶系統(tǒng)中的實現(xiàn)
3.1 SSO模塊設(shè)計與頁面設(shè)計
本企業(yè)門戶中單點登錄的設(shè)計基于代理經(jīng)紀(jì)人型模型,核心思路是在用戶管理模塊中,用戶自行將其在各應(yīng)用系統(tǒng)中的登錄賬戶及密碼維護(hù)在自己的門戶系統(tǒng)中,并將提交的信息加密保存到系統(tǒng)中。計劃開發(fā)SSO.js代理模塊,表1單點登錄模塊。
3.2單點登錄模塊的開發(fā)
當(dāng)用戶登錄系統(tǒng)時,通過SS0服務(wù)模塊,實現(xiàn)將用戶權(quán)限下的賬戶發(fā)送至不同應(yīng)用系統(tǒng)進(jìn)行賬戶及密碼的匹配,匹配成功時返回本系統(tǒng)登錄狀態(tài)true,登錄成功,否則返回false,登錄失敗。單點登錄設(shè)計文件sso.js,部分代碼實現(xiàn)過程如下:
3.2.1 OA單點登錄SSO模塊
0A單點登錄SSO模塊:
var xmlstrReq—new ActiveXObject();
4 實施效果
當(dāng)用戶打開門戶平臺輸入帳號及密碼后,系統(tǒng)首先判斷門戶賬戶合法后,請求SS0.js代理程序,到各應(yīng)用服務(wù)器中去判斷傳遞的應(yīng)用系統(tǒng)賬戶是否合法,完成單點登錄。實現(xiàn)了多套商業(yè)軟件應(yīng)用系統(tǒng)一次登錄,資源盡享。該系統(tǒng)技術(shù)上最大的優(yōu)勢是不但實現(xiàn)對OA、ERP、PDM系統(tǒng)實現(xiàn)單點的登錄,還具有很好的擴(kuò)展功能,能實現(xiàn)對更多系統(tǒng)進(jìn)行單點登錄。既實現(xiàn)了單點登錄,又不影響其他系統(tǒng)的單獨登錄,不需要對其他系統(tǒng)進(jìn)行任何修改,保證了原有系統(tǒng)的安全機(jī)制不受影響和功能的正常使用,真正做到了方便、快捷、安全。
轉(zhuǎn)載請注明出處:拓步ERP資訊網(wǎng)http://www.oesoe.com/
本文標(biāo)題:單點登錄在企業(yè)信息門戶系統(tǒng)中的研究與實現(xiàn)
本文網(wǎng)址:http://www.oesoe.com/html/support/1112158088.html