劉 琰
(濮陽職業(yè)技術(shù)學(xué)院,河南 濮陽 457000)
異構(gòu)環(huán)境下改進(jìn)型單點(diǎn)登錄系統(tǒng)研究與設(shè)計
劉 琰
(濮陽職業(yè)技術(shù)學(xué)院,河南 濮陽 457000)
傳統(tǒng)應(yīng)用系統(tǒng)用戶登錄模塊各自獨(dú)立,使得用戶在訪問每個系統(tǒng)時必須記憶大量的用戶名和密碼,并且重復(fù)輸入,使用起來很不方便,影響了工作效率,也給網(wǎng)絡(luò)安全帶來隱患。而異構(gòu)環(huán)境下改進(jìn)型單點(diǎn)登錄系統(tǒng)的設(shè)計應(yīng)用,用戶僅僅一次登錄就可以訪問不同應(yīng)用系統(tǒng),減少了用戶登錄認(rèn)證次數(shù),提高了工作效率,大大降低了泄密風(fēng)險,值得推廣應(yīng)用。
單點(diǎn)登錄;統(tǒng)一認(rèn)證;LDAP
隨著信息技術(shù)應(yīng)用的快速發(fā)展,為滿足教學(xué)、科研、管理等工作的需要,各高校內(nèi)部建設(shè)了各類應(yīng)用系統(tǒng)。比如辦公自動化系統(tǒng)、電子郵件系統(tǒng)、教學(xué)科研管理系統(tǒng)、學(xué)生管理系統(tǒng)等。隨著應(yīng)用系統(tǒng)和訪問用戶的不斷增加,師生在訪問每個應(yīng)用系統(tǒng)時必須記憶大量的用戶名和密碼,并且重復(fù)輸入。這種應(yīng)用系統(tǒng)的訪問方式不但使用非常不方便,降低了工作效率,而且還容易造成密碼信息的泄露從而帶來大量的安全問題,給高校的網(wǎng)絡(luò)信息安全帶來隱患。而異構(gòu)環(huán)境下的單點(diǎn)登錄系統(tǒng)的設(shè)計和研究就是基于上述問題而提出的。
所謂單點(diǎn)登錄(Single sign On,SSO)就是指訪問用戶在訪問各類應(yīng)用系統(tǒng)前,只需在登錄前進(jìn)行一次身份認(rèn)證,認(rèn)證通過后便可以任意訪問應(yīng)用系統(tǒng)的所有資源,而不需要再進(jìn)行其它重復(fù)性的身份認(rèn)證。各類應(yīng)用系統(tǒng)資源可以處在集中的環(huán)境中,也可以處于不同的分布式計算機(jī)環(huán)境中,一旦用戶通過了首次身份認(rèn)證,則此次登錄認(rèn)證結(jié)果同時會被多個應(yīng)用系統(tǒng)所接受,減少了用戶的登錄認(rèn)證次數(shù),因此在網(wǎng)絡(luò)上泄露用戶賬號和密碼的風(fēng)險會大大地降低。
首先當(dāng)用戶訪問不同的應(yīng)用系統(tǒng)時,用戶的訪問請求首先會被定位到單點(diǎn)登錄認(rèn)證中心進(jìn)行身份認(rèn)證;單點(diǎn)登錄認(rèn)證中心根據(jù)用戶登錄提交的身份信息和存儲在用戶信息數(shù)據(jù)庫中的信息進(jìn)行對比驗(yàn)證。如果用戶信息得到驗(yàn)證,單點(diǎn)登錄系統(tǒng)將返回訪問用戶一個認(rèn)證憑證。當(dāng)用戶再訪問其它應(yīng)用系統(tǒng)時,其它應(yīng)用系統(tǒng)會依據(jù)用戶的認(rèn)證憑證進(jìn)行合法性和有效性驗(yàn)證,如果通過了檢驗(yàn),則用戶可以直接訪問應(yīng)用系統(tǒng),而不需要重復(fù)登錄。
利用單點(diǎn)登錄系統(tǒng),用戶僅僅利用一次登錄就可以訪問不同應(yīng)用系統(tǒng)資源,因此可以大大提高用戶的工作效率;系統(tǒng)依靠多種身份認(rèn)證機(jī)制,在認(rèn)證時使用了大量的加密、解密和數(shù)字簽名等安全技術(shù),使得整個系統(tǒng)具有更好的安全性能。
認(rèn)證結(jié)構(gòu)的統(tǒng)一是實(shí)現(xiàn)單點(diǎn)登錄的關(guān)鍵,傳統(tǒng)的多應(yīng)用系統(tǒng)的用戶登錄模塊是各自獨(dú)立互不影響的,各系統(tǒng)的認(rèn)證均有不同的數(shù)據(jù)庫和數(shù)據(jù)結(jié)構(gòu),隨著系統(tǒng)的不斷擴(kuò)大和發(fā)展,越來越多的獨(dú)立的登錄模塊和數(shù)據(jù)庫信息不斷加入,在這種情況下,應(yīng)用系統(tǒng)的增加,對其管理的難度加大,降低了工作效率。傳統(tǒng)的異構(gòu)系統(tǒng)認(rèn)證結(jié)構(gòu)如圖1:
圖1:傳統(tǒng)異構(gòu)系統(tǒng)認(rèn)證結(jié)構(gòu)圖
傳統(tǒng)的單點(diǎn)登錄實(shí)施方案是把應(yīng)用系統(tǒng)各自獨(dú)立的登錄模塊從APP中剝離出來,然后對其合并,用戶訪問的認(rèn)證請求都通過合并后的模塊來進(jìn)行認(rèn)證,由于各系統(tǒng)之間架構(gòu)結(jié)構(gòu)不同,因此集成難度很大。
改進(jìn)型的單點(diǎn)登錄系統(tǒng)是在不改變原有結(jié)構(gòu)的基礎(chǔ)上,增加三個功能模塊來實(shí)現(xiàn)。
2.2.1 認(rèn)證信息映射功能模塊
增加的認(rèn)證信息映射模塊可以把原來分散在不同應(yīng)用程序中的認(rèn)證信息集中到一個認(rèn)證模塊中,這樣可以方便管理員對其進(jìn)行管理,同時建立信息映射數(shù)據(jù)庫,用來保存用戶和應(yīng)用系統(tǒng)之間的認(rèn)證信息映射關(guān)系、應(yīng)用系統(tǒng)的數(shù)據(jù)信息、用戶的認(rèn)證信息等。
認(rèn)證信息映射數(shù)據(jù)庫的數(shù)據(jù)結(jié)構(gòu)主要包含三部分內(nèi)容:應(yīng)用系統(tǒng)定制的各類信息、用戶注冊認(rèn)證的信息、用戶在各個應(yīng)用系統(tǒng)中的注冊信息。
應(yīng)用系統(tǒng)信息是單點(diǎn)登錄系統(tǒng)指針對不同應(yīng)用系統(tǒng)的定制信息;用戶注冊信息是用戶在進(jìn)行注冊信息映射之后,單點(diǎn)登錄系統(tǒng)為其生成的唯一認(rèn)證信息ID;各應(yīng)用系統(tǒng)的注冊信息是用戶在各個應(yīng)用中需要輸入的個人注冊認(rèn)證信息[1]。
2.2.2 統(tǒng)一認(rèn)證功能模塊
在改進(jìn)的方案中,用戶通過統(tǒng)一登錄模塊進(jìn)行登錄,用戶不需要進(jìn)行重復(fù)性登錄。如果有新的應(yīng)用系統(tǒng)加入,信息映射數(shù)據(jù)庫庫將為其建立新的唯一認(rèn)證標(biāo)識,訪問用戶通過此認(rèn)證標(biāo)識進(jìn)行登錄[2]。這其中包括兩類交互行為:第一種交互行為是統(tǒng)一認(rèn)證模塊與映射數(shù)據(jù)庫之間的交互,功能是認(rèn)證模塊對映射數(shù)據(jù)庫進(jìn)行查詢并獲取用戶信息。第二種交互式認(rèn)證模塊與客戶端輔助模塊進(jìn)行交互,目的是為客戶提供認(rèn)證信息。統(tǒng)一認(rèn)證功能模塊具有較高的權(quán)限,可以提供對各類信息的管理與維護(hù)功能,對注冊用戶對應(yīng)的應(yīng)用身份驗(yàn)證信息進(jìn)行增加、修改、刪除等[3]。
2.2.3 客戶端輔助模塊
用戶利用客戶端輔助模塊進(jìn)行登錄,通過統(tǒng)一認(rèn)證功能模塊登錄后,統(tǒng)一認(rèn)證模塊通過與映射庫進(jìn)行交互通信來獲取用戶對應(yīng)的注冊信息。客戶端輔助程序負(fù)責(zé)使用統(tǒng)一登錄模塊中的認(rèn)證信息,將映射數(shù)據(jù)庫中的用戶信息注入到登錄模塊中進(jìn)行驗(yàn)證,并控制不同應(yīng)用程序的客戶端進(jìn)行登錄[4]。
異構(gòu)環(huán)境下的單點(diǎn)登錄系統(tǒng)設(shè)計原則是應(yīng)該保持系統(tǒng)的相對獨(dú)立性、方便的可維護(hù)性、架構(gòu)的合理性,在模型架構(gòu)設(shè)計中需要對模塊按照其功能的不同進(jìn)行合理的劃分。其結(jié)構(gòu)如圖3所示:
圖3:改進(jìn)型單點(diǎn)登錄系統(tǒng)邏輯結(jié)構(gòu)
由上圖可知,用戶的登錄通過用戶終端來實(shí)現(xiàn),其設(shè)計架構(gòu)與原有的各應(yīng)用系統(tǒng)的登錄結(jié)構(gòu)相同。用戶終端上的輔助模塊與單點(diǎn)登錄管理中心進(jìn)行相互交互,取得統(tǒng)一認(rèn)證所需的必要信息。在映射數(shù)據(jù)庫服務(wù)器中,保存著用戶的登錄認(rèn)證信息和應(yīng)用系統(tǒng)的定制信息,同時映射數(shù)據(jù)庫服務(wù)器還可以為統(tǒng)一登錄模塊提供數(shù)據(jù)操作的Web接口。
另外,新用戶的注冊信息、用戶的驗(yàn)證信息等均通過單點(diǎn)登錄的異構(gòu)應(yīng)用提供,老用戶的數(shù)據(jù)可以通過數(shù)據(jù)接口進(jìn)行導(dǎo)入,這樣就可以實(shí)現(xiàn)單點(diǎn)登錄系統(tǒng)映射數(shù)據(jù)庫與各應(yīng)用系統(tǒng)數(shù)據(jù)庫的數(shù)據(jù)對接,并進(jìn)行數(shù)據(jù)遷移,并且將單點(diǎn)登錄數(shù)據(jù)存儲以及應(yīng)用程序數(shù)據(jù)放置在相同的域中,這樣就可以為用戶的訪問提供統(tǒng)一的訪問接口,使得系統(tǒng)與原有的異構(gòu)系統(tǒng)保持完全的獨(dú)立,確保了系統(tǒng)的擴(kuò)展性。
異構(gòu)環(huán)境下的單點(diǎn)登錄系統(tǒng)架構(gòu)設(shè)計功能模塊主要有三部分,分別為:用戶信息認(rèn)證數(shù)據(jù)庫、客戶端輔助程序、單點(diǎn)登錄管理中心三個部分。
3.2.1 用戶信息認(rèn)證數(shù)據(jù)庫
用戶信息認(rèn)證庫的設(shè)計采用LDAP(Lightweight Directory Access Protocol)來進(jìn)行存儲[5],之所以采用LDAP進(jìn)行用戶信息的存儲庫,主要基于LDAP的服務(wù)器使用樹狀結(jié)構(gòu),便于對用戶的分組管理和權(quán)限分配,同時LDAP能夠方便管理者對用戶信息的查詢,特別是在大數(shù)據(jù)量的管理上其功能更為強(qiáng)大。
LDAP存儲目錄信息樹的設(shè)計以樹狀結(jié)構(gòu)來組織信息,其屬性值的設(shè)計遵循的原則為:盡可能的使數(shù)據(jù)屬性修改頻率降低、并且確定屬性在目錄中具有唯一性、非敏感性以及多值信息性等。其LDAP目錄結(jié)構(gòu)如圖4:
圖4:單點(diǎn)登錄目錄結(jié)構(gòu)樹
在用戶信息認(rèn)證數(shù)據(jù)庫中,各類用戶的信息利用LDAP目錄樹狀結(jié)構(gòu)進(jìn)行存儲,目錄樹的最頂部就是目錄基準(zhǔn)DN(Distinguished Name)。整個LDAP目錄信息分為兩部分:用戶賬號信息(People)和應(yīng)用系統(tǒng)信息(Application)。用戶的賬號信息包括一般用戶信息和管理員信息,一般用戶信息包括目認(rèn)證用戶的認(rèn)證賬號、密碼、角色權(quán)限等基本信息。應(yīng)用系統(tǒng)信息主要用來管理各類應(yīng)用系統(tǒng)的定制信息,包括應(yīng)用系統(tǒng)的唯一標(biāo)識碼。
3.2.2 客戶端輔助程序
客戶端輔助程序運(yùn)行在訪問用戶的終端上,主要設(shè)計目標(biāo)是使其能夠代理訪問用戶進(jìn)行單點(diǎn)登錄系統(tǒng)的登錄。新用戶首先在單點(diǎn)登錄系統(tǒng)注冊,注冊成功后用戶使用管理中心分配的統(tǒng)一賬號進(jìn)行登錄,客戶端輔助程序使用從單點(diǎn)登錄管理中心服務(wù)器中得到的各個應(yīng)用系統(tǒng)的驗(yàn)證信息。在設(shè)計上,客戶端輔助程序采用B/S和C/S兩種系統(tǒng)結(jié)構(gòu),雖然兩種模式采用的技術(shù)方法不同,B/S結(jié)構(gòu)采用客戶端程序的方式,通過BHO程序來實(shí)現(xiàn);C/S結(jié)構(gòu)采用用戶通過客戶端瀏覽器的方式來實(shí)現(xiàn),利用操作系統(tǒng)提供的窗口API用戶接口函數(shù)實(shí)現(xiàn)接口操作;但在功能實(shí)現(xiàn)上是相同的。
3.2.3 單點(diǎn)登錄管理中心
單點(diǎn)登錄管理中心的設(shè)計架構(gòu)采用MVC(Model ViewController)框架來實(shí)現(xiàn),。MVC將系統(tǒng)分為三層:數(shù)據(jù)業(yè)務(wù)邏輯層、表現(xiàn)層、和控制層。其中控制層是其它兩層的橋梁,它將數(shù)據(jù)業(yè)務(wù)邏輯層和表現(xiàn)層隔離開來,實(shí)現(xiàn)數(shù)據(jù)業(yè)務(wù)邏輯和表現(xiàn)層的邏輯對應(yīng)。簡化系統(tǒng)實(shí)現(xiàn)的邏輯結(jié)構(gòu),便于系統(tǒng)升級和擴(kuò)展,使得程序結(jié)構(gòu)更加直觀。
在設(shè)計時,將單點(diǎn)登錄系統(tǒng)設(shè)計為一個Web應(yīng)用程序,并將MVC設(shè)計為三個層次結(jié)構(gòu):數(shù)據(jù)訪問層(DAO)、邏輯控制層、和單點(diǎn)登錄系統(tǒng)用戶界面接口層。其中DAO為單點(diǎn)登錄系統(tǒng)提供相應(yīng)的接口調(diào)用,采用Web Service進(jìn)行封裝;邏輯控制層由第三方Spring開源框架來實(shí)現(xiàn)對其流程的控制;而單點(diǎn)登錄系統(tǒng)用戶界面接口由JSP(Java Server Page)技術(shù)來實(shí)現(xiàn)動態(tài)頁面的展現(xiàn)。
異構(gòu)環(huán)境下的單點(diǎn)登錄系統(tǒng)是一項(xiàng)復(fù)雜的系統(tǒng)工程,文章的創(chuàng)新點(diǎn)即在傳統(tǒng)單點(diǎn)登錄系統(tǒng)方案實(shí)現(xiàn)的基礎(chǔ)上,提出了一種新的系統(tǒng)結(jié)構(gòu)模型,擴(kuò)展了系統(tǒng)實(shí)現(xiàn)的應(yīng)用性,對于系統(tǒng)的實(shí)現(xiàn)具有一定的指導(dǎo)意義。
[1]季曼,林中.單點(diǎn)登錄方案的研究與設(shè)計[J].計算機(jī)工程與設(shè)計,2009,30(12).
[2]劉敏,呂先競,宋玉忠.基于Open ID的分布式認(rèn)證系統(tǒng)的設(shè)計與實(shí)現(xiàn)[J].現(xiàn)代情報,2008,28(6).
[3]劉潤峰.多域單點(diǎn)登錄系統(tǒng)的設(shè)計與實(shí)現(xiàn)[D].北京郵電大學(xué),2007.
[4]Ti wariP B,JoshiS R.Si ngl e si gn—on wi t h one t i m e password[C].IEEE Fi rstAsi an H i m al ayas Int ernat i onalConf erence on Int er—net,2009.
[5]Sahana K Bhosal e.Archi t ect ure ofa si ngl e si gn on(SSO)f ori nt ernet banki ng[C].IET Int ernat i onalConf erence on W i rel ess,M obi l e and M ul t i m edi aNet works,2008.
Heterogeneous Environment Improved Single Signon System Research and Design
LIUYan
(PuyangVocational&Technical College,Puyang457000,Henan)
Heterogeneous environment college application system certification are analyzed,are talked about the single sign-on system concept,mechanismand advantage,elaborated and analyzed the traditional single sign-on system structure and defects.This paper presents an improved type single sign-on systemmodel,and the improved scheme based on detailed analysis,the structure ofthe model,the improved design ofsingle sign-on systemfunction module.
single sign on;unified authentication;LDAP
TP393.08
A
1671-5004(2012) 01-0001-02
2012-2-2
河南省高等學(xué)校青年骨干教師資助計劃項(xiàng)目《數(shù)學(xué)化校園信息整合研究與實(shí)踐》(編號:2009GGJS-171)階段性成果
劉琰(1976-),男,山東聊城人,河南濮陽職業(yè)技術(shù)學(xué)院網(wǎng)絡(luò)中心主任,主要研究方向?yàn)橛嬎銠C(jī)網(wǎng)絡(luò)技術(shù)