許柳威,田文雅
(浙江經貿職業技術學院 圖書信息中心,浙江 杭州 310018)
隨著網絡技術的發展與應用,以及數字化校園建設的不斷推進,校園內各種應用系統也不斷增加,從而致使網絡管理,尤其是基于應用及用戶的管理變的更加復雜。 在不同的應用系統中,每個應用系統都需要設置賬號,對于不同的用戶也有著不同的權限,這就帶來了許多問題,管理起來很不方便;尤其是用戶面對多個應用系統需要輸入不同的賬號和密碼,不僅煩瑣不易記憶,而且容易出現密碼丟失等安全隱患。目前,亟需解決的主要問題是如何使校園網用戶只擁有一個賬號,卻可以在多個不同的應用系統中登錄并使用。[1][2]
基于 LDAP(Lightweight Directory Access Protocol)的統一身份認證平臺的實現以及應用不僅使應用系統的認證問題以及用戶管理得到有效的解決,使校園網內所有用戶的身份信息得到統一,還使應用系統的技術難點得到實現,可見,對于解決校園網目前存在的主要問題,基于LDAP的統一身份認證平臺具有積極重要的作用。
目前主流的統一身份認證方案中,都使用了目錄服務技術。作為標準的目錄服務技術中的一種,LDAP基于X.500標準(也被稱為“DAP”協議)。X.500的特點主要表現為具有層次性,其不足之處則主要體現在,豐富的操作以及數據模型不僅使其顯得比較笨重,還使其非常復雜,另一方面,它具有的功能十分強大,同時還包括了所有的查詢更新協議以及命名空間。為了解決X.500標準的不足之處,密歇根州(Michigan)大學推出了一種較為簡單的基于TCP/IP協議 的DAP新版本,也就是LDAP協議。與其他協議相比,它比較簡單,主要是用于Internet,同時,它還可以依據應用的需求來進行擴展以及定制。LDAP協議實現了目錄服務在TCP/IP上的的運行,這一點同時也是和X.500的不同之處。LDAP協議之所以能夠保證用戶數據量較大的情況下滿足性能上的需求,主要是因為它對Internet訪問支持極其好,并且對內容讀取、快速響應大量的瀏覽以及快速響應大量的瀏覽做了專門的優化。[3]LDAP的核心規范在RFC中都有定義。[4]
與其他專門在線事務處理優化關系型數據庫相比較,LDAP服務的數據處理速度能夠快上一個數量級,這主要是因為LDAP協議具有諸多明顯的特點,比如,它能夠跨越不同的平臺和系統,不依賴任何特定的軟硬件平臺;提供了同步復制和分布式服務功能;數據處理速度比較快,層次結構也比較清晰;具有完善的安全控制機制;軟件安裝簡單,容易優化和維護。[5]
目前,LDAP已經被大部分的數字化校園用來作為認證數據庫,主要是存放用戶一些基本的個人信息,比如uid,password等。由于LDAP具有實現容易、效率高和更容易擴展等優點,因此得到廠家的廣泛支持,被越來越多的系統作為標準的功能所繼承,LDAP已迅速發展成為因特網上事實的目錄協議標準。而對于另外一些查詢關系復雜的數據,則依然是存在于關系型的數據庫中。
LDAP目錄服務器對于網絡信息的存儲以及提供目錄服務,主要是通過目錄數據庫來進行的。為了能夠使用戶對信息進行快速查找和定位,目錄數據庫對于數據的存儲主要是用樹狀的層次結構。浙江經貿職業技術學院統一身份認證平臺的用戶認證信息的LDAP目錄服務器存儲模型的目錄樹結構如圖1所示。

圖1 LDAP目錄樹結構
在圖 1 出現的“dc”、“ou”、“uid”等關鍵字,它們代表了不同的含義,表列出了各關鍵字及含義。

表 關鍵字及其含義
目錄樹主要由多個條目來構成,每個條目除了能夠對計算機、用戶賬號以及打印機等對象進行描述,同時,還具有唯一的標志名DN。另外,每個條目還是由多個“屬性”來組成的,比如,賬號對象可以有用戶名、密碼、E-mail地址和聯系電話等屬性,而每個屬性則能夠對應一個或多個“值”,比如,聯系電話屬性能夠包括若干個值。而對于條目信息的描述,則主要是通過LDAP數據交換格式文件(LDIF),以及采用文本的形式來進行的。
圖1所示的目錄樹中的最頂層,稱為目錄樹的基準,也就是基準DN。原則上,可以自由選擇基準DN的格式,為了便于以后目錄樹的擴展,通常使用DNS域名編碼作為基準DN。浙江經貿職業技術學院的DNS域名為 zjiet.edu.cn, 目錄樹的基準 DN即 dc=zjiet,dc=edu,dc=cn。
標志名DN是條目的唯一標識。該條目在LDAP目錄樹中的位置以及RDN是構成DN最為主要的兩部分。在父節點下,RDN則是唯一的名稱標識。比如,在同文件系統中,不帶路徑的文件名是RDN,而帶路徑的文件名就是DN。對于浙江經貿職業技術學院,采用的LDAP目錄樹的所有條目都是以UserID屬性作為該條目的RDN。例如,圖1中目錄樹條目2的RDN為UserID=admin,DN 為 UserID=admin,ou=administrator,dc=zjiet,dc=edu,dc=cn。
統一身份認證平臺服務主要包括兩類,也就是認證管理以及身份管理。其中,認證管理主要是涉及校園信息門戶服務、統一身份認證服務、注冊中心服務以及應用系統服務等多個服務之間的相互調用。對于統一身份認證服務的具體流程,如圖2所示。

圖2 統一身份認證服務流程示意
(1)用戶通過使用統一分配的身份賬號登錄到校園信息門戶服務;
(2)校園信息門戶服務建立與用戶之間的會話,然后將與會話認證有關的令牌信息再返回給用戶;
(3)用戶通過使用返回的認證令牌訪問信息門戶頁面中的應用系統鏈接,把認證令牌、賬號以及門戶系統的賬號傳遞給統一認證服務;
(4)統一認證服務訪問注冊中心,查詢到校園信息門戶服務的訪問入口,并且檢驗該賬號是否有訪問應用系統的權限,接著將獲取平臺中已做好映射的門戶系統賬號和口令;
(5)統一認證服務把申請消息轉發給應用服務;
(6)校園信息門戶服務把申請結果返回給統一身份認證服務,最后由統一身份認證服務將結果返回給用戶。
而身份管理主要包含兩種服務:一是賬號映射,對用戶在教務、OA、學工以及郵件等多種應用系統已經有的賬號和統一身份賬號進行映射關聯,如果用戶通過統一身份認證,則可以自動獲取權限訪問相應的應用系統。應用系統必須到UDDI注冊中心注冊,注冊中心給每一個應用系統分配一個唯一標志符,用于提供該系統的服務訪問入口,并在注冊中心登記該應用系統的詳細服務描述;二是統一身份賬號管理,其主要功能是完成校園網用戶的統一身份賬號的創建、修改以及注銷,該服務主要是由校園信息門戶調用。[6]另外,身份管理不僅可以兼顧老的應用系統中的用戶賬號,通過兼顧老的應用系統中的用戶賬號,還可以兼顧老的應用系統中的用戶賬號。
接口使用WebService技術,調用地址如下:[7]

用戶在學校統一身份認證平臺登錄成功后,通過點擊業務系統的URL轉到各業務系統,傳遞過來的URL是類似于下面的格式:
http://127.0.0.1/default2.aspx?verify=9CE291D684D3B 582DDBCC44D9991BB94&userName=admin&strSysDatetime=2012-08-1014:27:46&jsName=department&open-Type=1&url=action.do&gnmkdm=M011
參數含義如下:
verify表示md5加密信息 (32位加密)。
userName表示用戶名。
strSysDatetime表示由學校認證中心自動生成的時間戳。
jsName表示用戶的角色(學生student,教師teacher,部門 department)。
openType表示系統的集成方式,1表示集中在框架中打開,2表示在新窗口打開。
verify=md5(userName+strKey+strSysDatetime+js-Name)
url表示認證通過后直接指向當前的地址,可以為空,gnmkdm表示認證通過時直接指向到當前功能模塊代碼的對應頁面,可以為空。一般情況下,URL和gnmkdm只有一個參數有值和都沒有值,strKey為事先商定的握手密碼,握手密碼要求存放到表中。
認證之前首先判斷當前用戶是否已經登錄,當session值和傳入的用戶名值相等時,默認已經第二次登錄,不需要認證,直接進入系統。
浙江經貿職業技術學院統一身份認證平臺使用的LDAP服務器和后臺數據庫分別由開源的OpenLDAP和Berkeley DB實現。在平臺建立起來后,目前進行集成使用的主要有上網認證客戶端、6個Web業務系統以及VPN系統。在Web業務系統內,基于Java平臺和J2EE技術的有:學生工作管理信息系統、辦公自動化系統,基于PHP技術的郵件系統;基于ASP技術的有學校論壇;基于.NET技術架構以及微軟Windows平臺的主要有:數字圖書館系統、教學管理信息系統。各個系統具有在一個界面進行一次登錄就能夠訪問各系統的功能,該功能主要是通過調用后臺的統一身份認證系統以及Web-Service接口登錄來實現的。系統不僅運行比較可靠穩定,同時調用也比較簡單方便,從而極大地方便了用戶。
對于做了統一身份認證集成的Web應用系統,其登錄的界面以及統一身份認證登錄的入口,如圖3所示。

圖3 統一身份認證平臺登錄窗口
圖4是以作者身份登錄數字化校園統一身份認證平臺后的首頁,里面有6個已經集成統一身份認證的業務系統名稱。實現統一身份認證后,可以直接在這里訪問這些業務系統。用戶不需要另外記憶6個業務系統的用戶名和口令,非常方便。
點擊圖4右上角“安全中心”鏈接,進入個人自助服務頁面,用戶可以自行修改密碼,可以通過正確回答預先設定好的密碼找回問題來重設密碼。

圖4 統一身份認證平臺主窗口
統一身份認證平臺主要的作用是:它不僅可以解決多個應用系統之間用戶不統一的問題,還能夠解決權限控制不統一的問題。本文對于如何應用基于LDAP協議的目錄服務,以及在校園網建立統一身份認證平臺實現在多個應用系統中用戶身份的統一認證進行了初步探討,并給出了具體的系統設計和實現。大量實踐結果表明:統一身份認證平臺在為用戶提供極大方便的同時,也使對用戶的統一集中管理得到了實現,并且使應用系統的可靠性和安全性得到了很大的提高。
[1]賀超波,陳啟買,歐陽輝.數字化校園門戶平臺統一身份認證的實現[J].現代計算機(專業版),2008(12):25-28.
[2]段海波.高校數字化校園的統一身份認證解決方案[J].中國教育信息化,2010(17):43-46.
[3]許鑫,蘇新寧,陸炯.數字化校園身份認證系統的設計[J].現代圖書情報技術,2005(4):51-57.
[4]M.Wahl,T.Howes,S.Kille.Lightweight Directory Access Protocol(V3)[S].IE TF RFC 2251.NetworkWorking Group,1997.
[5]常潘,沈富可.基于LDAP的校園網統一身份認證的實現[J].計算機工程,2007,33(5):281-282.
[6]What is UDDI?[EB/OL].http://uddi.xml.org/node/96,2006.08.28.
[7]Web Services Architecture.[EB/OL].http://www.w3.org/TR/ws-arch/,2004.02.11.