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