在職業(yè)學(xué)院校園網(wǎng)建設(shè)的過程中,存在多個(gè)應(yīng)用系統(tǒng),各應(yīng)用系統(tǒng)又有各自獨(dú)立的用戶庫(kù)和用戶認(rèn)證體系。隨著網(wǎng)站的發(fā)展,會(huì)出現(xiàn)這樣的用戶群體:以其中的一個(gè)用戶為例,某一用戶使用網(wǎng)站的多個(gè)應(yīng)用系統(tǒng),但在每個(gè)應(yīng)用系統(tǒng)中有獨(dú)立的賬號(hào),進(jìn)入每一個(gè)應(yīng)用系統(tǒng)前都需要以該應(yīng)用系統(tǒng)的賬號(hào)來登錄。這帶給用戶的使用帶來不便,用戶的就會(huì)有“單點(diǎn)登錄”的要求。
職業(yè)學(xué)院現(xiàn)有外網(wǎng)和內(nèi)網(wǎng)應(yīng)用系統(tǒng)兩大類。內(nèi)網(wǎng)應(yīng)用系統(tǒng)包括各院系、機(jī)構(gòu)的二級(jí)部門應(yīng)用系統(tǒng)。外網(wǎng)系統(tǒng)可以通過互聯(lián)網(wǎng)直接訪問,內(nèi)網(wǎng)系統(tǒng)需要身份認(rèn)證才能進(jìn)行訪問。然而內(nèi)網(wǎng)中各個(gè)系統(tǒng)的用戶身份標(biāo)識(shí)和口令又不統(tǒng)一,同一用戶訪問多個(gè)應(yīng)用系統(tǒng)時(shí)需要輸入不同的用戶名和口令。筆者所在學(xué)校將身份認(rèn)證系統(tǒng)作為校園網(wǎng)建設(shè)的重要內(nèi)容,實(shí)現(xiàn)了校外用戶訪問校園網(wǎng)內(nèi)應(yīng)用系統(tǒng)的身份認(rèn)證功能。
一、分析
在多個(gè)擁有各自獨(dú)立的用戶體系的應(yīng)用系統(tǒng)間實(shí)現(xiàn)單點(diǎn)登錄,需要考慮以下的問題。
第一,單點(diǎn)登錄系統(tǒng)的實(shí)現(xiàn)在各應(yīng)用系統(tǒng)都采用B/S模式這一前提下進(jìn)行。
第二,需要在各應(yīng)用系統(tǒng)間統(tǒng)一用戶認(rèn)證標(biāo)志,用戶登錄后可以得到用戶口令,各應(yīng)用系統(tǒng)認(rèn)可統(tǒng)一的用戶口令。
第三,用戶口令應(yīng)當(dāng)是安全加密的,并且要限定時(shí)效期。
第四,由于每個(gè)應(yīng)用系統(tǒng)都有自己的用戶庫(kù),一個(gè)用戶可能在不同的應(yīng)用系統(tǒng)中使用不同的賬號(hào),因此每個(gè)要使用多個(gè)應(yīng)用系統(tǒng)的用戶要設(shè)置一個(gè)統(tǒng)一的用戶賬號(hào)并以此賬號(hào)進(jìn)行單點(diǎn)登錄,該賬號(hào)與該用戶在各應(yīng)用系統(tǒng)中的一個(gè)賬號(hào)形成映射關(guān)系。
第五,各應(yīng)用系統(tǒng)可能屬于不同的域,因此要實(shí)現(xiàn)跨域的單點(diǎn)登錄。
第六,已經(jīng)上線運(yùn)行的應(yīng)用系統(tǒng)需要進(jìn)行改造來支持單點(diǎn)登錄,正在開發(fā)的應(yīng)用系統(tǒng)則可以在開發(fā)階段增加對(duì)單點(diǎn)登錄的支持,但應(yīng)用系統(tǒng)之間應(yīng)該是松耦合。
第七,由于各應(yīng)用系統(tǒng)往往都已經(jīng)處于穩(wěn)定運(yùn)行期,單點(diǎn)登錄系統(tǒng)的實(shí)現(xiàn)應(yīng)該對(duì)各應(yīng)用系統(tǒng)的登錄認(rèn)證體系沖擊最小,各應(yīng)用系統(tǒng)原有的登錄流程依然可用。
第八,一些應(yīng)用服務(wù)器平臺(tái)雖然提供對(duì)單點(diǎn)登錄的支持,但要求應(yīng)用系統(tǒng)用戶認(rèn)證的設(shè)計(jì)符合其規(guī)范,這對(duì)已經(jīng)處于運(yùn)行期的應(yīng)用系統(tǒng)來說難以實(shí)現(xiàn)。
二、設(shè)計(jì)
以下是系統(tǒng)的整體設(shè)計(jì)結(jié)構(gòu),如圖所示。
1.單點(diǎn)登錄管理應(yīng)用
首先設(shè)計(jì)單點(diǎn)登錄管理應(yīng)用:
用戶在其中注冊(cè)一個(gè)單點(diǎn)登錄賬號(hào),然后針對(duì)每個(gè)應(yīng)用系統(tǒng)綁定一個(gè)該應(yīng)用系統(tǒng)中原有的賬號(hào),并維護(hù)這些注冊(cè)和綁定信息。綁定的過程需要單點(diǎn)登錄管理應(yīng)用服務(wù)器到應(yīng)用系統(tǒng)服務(wù)器上驗(yàn)證用戶提供的該應(yīng)用系統(tǒng)中原有賬號(hào)和密碼,應(yīng)用服務(wù)器均以相同的Web Service接口提供該功能支持。
2.用戶單點(diǎn)登錄流程
以用戶單點(diǎn)登錄管理應(yīng)用和口令傳輸識(shí)別的標(biāo)準(zhǔn)實(shí)現(xiàn)用戶單點(diǎn)登錄流程。
(1)用戶訪問應(yīng)用系統(tǒng)。
(2)應(yīng)用系統(tǒng)如果檢查到用戶沒有在自己的服務(wù)器登錄,則將用戶請(qǐng)求重定向到單點(diǎn)登錄服務(wù)器上(使用重定向就可以處理各服務(wù)器跨域的情況)。
(3)單點(diǎn)登錄服務(wù)器檢查到用戶已經(jīng)單點(diǎn)登錄(如果用戶沒有單點(diǎn)登錄則要求用戶登錄,登錄標(biāo)志存儲(chǔ)為客戶端瀏覽器的Cookie),找到該用戶在相應(yīng)應(yīng)用系統(tǒng)上綁定的賬號(hào)。
(4)單點(diǎn)登錄服務(wù)器根據(jù)第三步的結(jié)果生成用戶口令,重定向回應(yīng)用系統(tǒng)。
(5)應(yīng)用系統(tǒng)接收統(tǒng)一格式的用戶口令,取得用戶在本系統(tǒng)上的登錄賬號(hào),將用戶在本系統(tǒng)上狀態(tài)置為登錄,返回用戶請(qǐng)求訪問的頁(yè)面。
如果用戶在訪問應(yīng)用系統(tǒng)之前已經(jīng)在單點(diǎn)登錄服務(wù)器上登錄過,第二步到第四步對(duì)用戶來說就是透明的,用戶感覺只是向應(yīng)用系統(tǒng)發(fā)出了訪問請(qǐng)求,然后得到了頁(yè)面反饋。
三、總結(jié)
本方案設(shè)計(jì)的用戶單點(diǎn)登錄系統(tǒng)做到:真正實(shí)現(xiàn)單點(diǎn)登錄、全網(wǎng)訪問,方便用戶的使用過程;各系統(tǒng)之間耦合度低,應(yīng)用系統(tǒng)的改造不破壞其固有流程和結(jié)構(gòu),整個(gè)系統(tǒng)的實(shí)施過程安全平滑;統(tǒng)一了單點(diǎn)登錄服務(wù)器到應(yīng)用服務(wù)器的用戶認(rèn)證信息訪問標(biāo)準(zhǔn),統(tǒng)一了口令安全加密的傳輸和識(shí)別標(biāo)準(zhǔn),為將來更多應(yīng)用系統(tǒng)提供了統(tǒng)一的單點(diǎn)登錄框架;整合了過去分散在各應(yīng)用系統(tǒng)中雖然有內(nèi)在關(guān)聯(lián)卻難以判別的用戶信息資源,為更進(jìn)一步的用戶個(gè)性化服務(wù)打下了基礎(chǔ)。
(作者單位:山東工業(yè)職業(yè)學(xué)院)
注:“本文中所涉及到的圖表、公式、注解等請(qǐng)以PDF格式閱讀”