劉斌
(溫州大學(xué) 物理與電子信息工程學(xué)院,浙江 溫州 325035)
隨著校園數(shù)字化的迅速發(fā)展,大量的應(yīng)用系統(tǒng)應(yīng)運而生。但是,由于傳統(tǒng)開發(fā)模式的局限性,這些應(yīng)用系統(tǒng)大多使用各自獨立的數(shù)據(jù)庫進行身份認(rèn)證,導(dǎo)致各個系統(tǒng)之間的認(rèn)證信息不能互通,并由此產(chǎn)生了若干信息孤島[1]。用戶如果要使用這些系統(tǒng)提供的服務(wù)就要申請多個賬戶,這樣不但給用戶帶來極大的不便,而且大大增加了管理員的負(fù)擔(dān)。因此,如何安全有效地整合和管理校園數(shù)字化資源、消除應(yīng)用系統(tǒng)信息孤島、實現(xiàn)統(tǒng)一的身份認(rèn)證,是當(dāng)前數(shù)字化校園建設(shè)[2]的熱點話題之一。
LDAP(Lightweight Directory Access Protocol)是輕量目錄訪問協(xié)議。它提供了一種對目錄服務(wù)訪問的方式,在信息的讀操作方面有很大優(yōu)勢,可以實現(xiàn)快速的查詢操作。LDAP是基于X.500標(biāo)準(zhǔn)的一種協(xié)議,相對于X.500而言,LDAP協(xié)議簡單許多,它可以直接在TCP/IP協(xié)議上實現(xiàn)目錄服務(wù)[3]。由于它簡化了X.500的實現(xiàn)方法,所以被稱為輕量級的目錄服務(wù)協(xié)議。
通過LDAP可以將各個應(yīng)用系統(tǒng)的用戶或組織信息以一定的層次結(jié)構(gòu)加以存儲和管理。LDAP是一個比關(guān)系數(shù)據(jù)庫抽象層次更高的存貯概念。不同于其他以存儲和操作為主要目的的數(shù)據(jù)庫,LDAP對查詢進行了優(yōu)化。與寫性能相比,LDAP的讀性能要強很多,它的查詢速度比普通數(shù)據(jù)庫要高出一個數(shù)量級,這正符合高校大信息量的特點。另外,LDAP也支持TCP/IP協(xié)議,因此利用LDAP設(shè)計出的系統(tǒng)具有良好的跨平臺性。同時,LDAP也是一個相對安全的協(xié)議,它可以根據(jù)使用者的需要設(shè)計訪問控制列表ACL,以此來控制不同用戶對服務(wù)器的讀寫操作權(quán)限[4]。當(dāng)用戶的信息被放在LDAP服務(wù)器上統(tǒng)一保存時,再也無需分開管理,通過對一臺服務(wù)器進行安全監(jiān)控,就能有效實現(xiàn)對信息安全性的大幅度提高。
本文采用統(tǒng)一認(rèn)證的簡要思想如下:
1)用戶使用在統(tǒng)一認(rèn)證服務(wù)系統(tǒng)注冊的用戶名和密碼登錄一個應(yīng)用系統(tǒng)A;
2)該應(yīng)用系統(tǒng)A,將用戶名和密碼連同應(yīng)用系統(tǒng)的標(biāo)識一起轉(zhuǎn)發(fā)給統(tǒng)一認(rèn)證服務(wù)器;
3)統(tǒng)一認(rèn)證服務(wù)器核查自己的應(yīng)用系統(tǒng)注冊庫,審查該應(yīng)用系統(tǒng)是否為統(tǒng)一認(rèn)證服務(wù)的用戶系統(tǒng),同時在用戶注冊庫中核查由該應(yīng)用系統(tǒng)轉(zhuǎn)發(fā)過來的用戶名和密碼。待核查完畢后,統(tǒng)一認(rèn)證服務(wù)響應(yīng)應(yīng)用系統(tǒng)。
4)如果登陸成功,應(yīng)用系統(tǒng)自己創(chuàng)建一個Session并將令牌返回給用戶,以后用戶端可以通過這個權(quán)限令牌持續(xù)訪問該應(yīng)用系統(tǒng),直至用戶退出系統(tǒng)或會話超時[5]。如圖1所示。
圖1 LDAP認(rèn)證過程(非SSO)Fig.1 The authentication process of LDAP(Not a SSO)
根據(jù)PHP提供的擴展函數(shù),認(rèn)證過程可表述為:
1)調(diào)用LDAP_CONNECT()和LDAP服務(wù)器進行連接,連接成功后LDAP服務(wù)器則會返回會話句柄;
2)利用LDAP_BIND()和服務(wù)器進行綁定;
3)使用LDAP_SEARCH()函數(shù)遍歷LDAP目錄樹,返回條目信息,并且驗證提交信息是否和條目信息一致。如果一致則驗證成功,不一致則認(rèn)證失敗;
4)利用LDAP_UNBIND()解除綁定[6]。如圖2所示。
圖2 查詢認(rèn)證過程Fig.2 The process of query authentication
統(tǒng)一身份認(rèn)證系統(tǒng)功能在于建立一個可以為校園網(wǎng)中各種應(yīng)用系統(tǒng)提供身份認(rèn)證的機制。每個應(yīng)用系統(tǒng)都可以通過該系統(tǒng)來進行系統(tǒng)用戶的身份認(rèn)證。各個應(yīng)用系統(tǒng)不再使用自己的數(shù)據(jù)庫來識別用戶身份,而應(yīng)該和認(rèn)證服務(wù)器實現(xiàn)盡可能的無縫銜接,從而有效地整合各種服務(wù)資源,如圖3所示。
根據(jù)上述設(shè)計目標(biāo),可設(shè)計出如圖4所示的系統(tǒng)構(gòu)架。
結(jié)合我校實際情況設(shè)計出的目錄信息樹結(jié)構(gòu)如圖5所示。
圖3 整合后的校園網(wǎng)絡(luò)資源Fig.3 The campus network resources after integration
圖4 統(tǒng)一身份認(rèn)證系統(tǒng)系統(tǒng)構(gòu)架Fig.4 The system frame of unified identity authentication system
圖5 目錄信息樹Fig.5 Directory information tree
針對目錄樹中Uid必須唯一,且LDAP沒有提供自動遞增的功能的問題,可在根下添加一個wzuId字段作為新加入用戶的Uid,該字段為整型數(shù),當(dāng)系統(tǒng)成功添加一個用戶時,該字段的值就會被加一。同理,當(dāng)再次添加新用戶時,直接讀出該值,添加成功后再次對其加一即可。由此就可以解決Uid唯一但LDAP本身不提供自動遞增功能的問題。
現(xiàn)如今大多數(shù)高校LDAP統(tǒng)一身份認(rèn)證的實現(xiàn)方式無非有以下兩種,一種是只利用LDAP服務(wù)器進行簡單的用戶名和密碼認(rèn)證,其余權(quán)限交給各自的應(yīng)用系統(tǒng)單獨控制。另一種是將各個應(yīng)用系統(tǒng)的控制身份認(rèn)證規(guī)則分別寫在LDAP服務(wù)器上,這就給LDAP服務(wù)器添加了許多負(fù)擔(dān),讓本來簡單的查詢變得復(fù)雜。
綜合考慮以上兩種實現(xiàn)方式的利弊,為了更加簡便地實現(xiàn)各個應(yīng)用系統(tǒng)與統(tǒng)一身份認(rèn)證服務(wù)器之間的低耦合銜接,在設(shè)計LDAP目錄樹時為其添加了一個wzuService字段,該字段為數(shù)組結(jié)構(gòu),存放了用戶能夠使用的應(yīng)用服務(wù)名稱以及對應(yīng)的權(quán)限。以校園郵件服務(wù)為例,如果用戶開啟了郵件服務(wù),則可以在該用戶對應(yīng)的條目里搜索到wzuService=mail_user這個條件,如該用戶為郵箱系統(tǒng)管理員,則對應(yīng)的條件表示為wzuService=mail_admin;反之,如果搜索不到關(guān)于郵件服務(wù)的條件,則表明該郵件服務(wù)系統(tǒng)沒有對當(dāng)前用戶開放。wzuService字段的引入不僅實現(xiàn)了對用戶身份的認(rèn)證,還實現(xiàn)了對用戶權(quán)限的控制。
該部分設(shè)計的擴展模式代碼:
隨著LDAP協(xié)議本身的不斷發(fā)展和完善,隨著數(shù)字化概念的深入人心和人們對信息化建設(shè)的重視,LDAP的優(yōu)勢也進一步凸顯。相信LDAP在網(wǎng)絡(luò)的發(fā)展過程中必然會占據(jù)更為重要的位置。統(tǒng)一身份認(rèn)證系統(tǒng)本身的實現(xiàn)就是一項復(fù)雜的工作,如何和各種復(fù)雜網(wǎng)絡(luò)環(huán)境結(jié)合,還需要根據(jù)具體情況具體研究,以確保發(fā)揮最優(yōu)作用。
[1]張明.基于LDAP的單點登錄技術(shù)的研究與實現(xiàn)[D].湖北:武漢理工大學(xué),2007.
[2]賀超波,陳啟買,歐陽輝.數(shù)字化校園門戶平臺統(tǒng)一身份認(rèn)證的實現(xiàn)[J].現(xiàn)代計算機,2008(12):25-28.HE Chao-bo,CHEN Qi-mai,OUYANG Hui.Implement of unified identity authentication in digital campus portal[J].Modern Computer,2008(12):25-28.
[3]賀玉明.LDAP在數(shù)字校園中的研究與應(yīng)用[D].北京:北方工業(yè)大學(xué),2011.
[4]趙曦.基于LDAP的統(tǒng)一認(rèn)證系統(tǒng)的研究與實現(xiàn)[D].陜西:西安電子科技大學(xué),2009.
[5]李翔,晁愛農(nóng),劉孟強.LDAP的研究及其在統(tǒng)一身份認(rèn)證系統(tǒng)中的應(yīng)用[J].計算機應(yīng)用,2008(S1):98-100.LI Xiang,CHAO Ai-nong,LIU Meng-qiang.Research and application of LDAP in uniform identity authentication[J].Journal of Computer Applications,2008(S1):98-100.
[6]王源.LDAP認(rèn)證實現(xiàn)與性能分析 [J].電子科技,2010(12):76-79.WANG Yuan.The implementation and analysis of LDAP authentication[J].Electronic Science and Technology,2010(12):76-79.