摘 要設(shè)計一種基于Web Service和LDAP的分布式用戶認(rèn)證系統(tǒng),解決校園網(wǎng)用戶統(tǒng)一身份認(rèn)證問題。介紹系統(tǒng)的整體架構(gòu),重點(diǎn)描述兩種Internet接入認(rèn)證方式(網(wǎng)關(guān)與802.1x)通過Web Service實(shí)現(xiàn)的流程,介紹了分布式認(rèn)證的處理方式以及其它網(wǎng)絡(luò)應(yīng)用系統(tǒng)調(diào)用Web Service的方法。
關(guān)鍵詞 Web Service; SOAP; 認(rèn)證; 網(wǎng)關(guān); 802.1x
中圖分類號:TP393文獻(xiàn)標(biāo)識碼:A文章編號:1671-489X(2006)12-0046-03
An Authentication System for Campus Networks Based on Web Service Technology//LiPengjun, ZhangHai,Guo Wenming
AbstractA distributed authentication system base on Web Service technology and LDAP is designed to realize unique authentication in campus networks. The system structure is introduced, as well as the authentication processes of two main methods, gateway and 802.1x, using the authentication system. This paper also introduced the methods of using this Web Service authentication system to authenticate users for other network application.
Key words Web Service; SOAP; authentication; gateway; 802.1x
Author's address Network Center, Southern Medical University,510515,Guangzhou, China
1 引言
網(wǎng)絡(luò)管理是保障計算機(jī)網(wǎng)絡(luò)正常運(yùn)轉(zhuǎn)的必要手段,其中用戶管理是網(wǎng)絡(luò)管理的重要組成部分,也是配置管理、安全管理、計費(fèi)管理的基礎(chǔ)。高校校園網(wǎng)普遍具有規(guī)模大、用戶多的特點(diǎn)。很多校園網(wǎng)動輒擁有數(shù)萬注冊用戶,另外校園網(wǎng)的應(yīng)用系統(tǒng)也是復(fù)雜多樣,例如Internet接入、電子郵件、教務(wù)管理系統(tǒng)、網(wǎng)絡(luò)教學(xué)系統(tǒng)、BBS等,各種應(yīng)用互相獨(dú)立,都有自己的一套用戶資料和認(rèn)證系統(tǒng),造成了管理的困難,用戶使用起來也不方便,因此采用統(tǒng)一的用戶身份認(rèn)證非常重要。近年來很多高校采用了基于LDAP(輕量級目錄訪問協(xié)議)的用戶認(rèn)證方式[1],較好地解決了統(tǒng)一身份認(rèn)證問題,但是直接將LDAP服務(wù)器暴露在其它應(yīng)用系統(tǒng)和用戶面前具有一定的安全風(fēng)險,例如權(quán)限配置錯誤可能導(dǎo)致非法用戶獲取其他用戶的資料甚至口令,另外在分布式環(huán)境下LDAP的訪問也有可能受到防火墻的阻擋。Web Service以其通用性和開放性,目前已成為分布式異構(gòu)環(huán)境下構(gòu)建復(fù)雜系統(tǒng)的重要技術(shù),因此我們設(shè)計了一種Web Service和LDAP相結(jié)合的分布式用戶認(rèn)證系統(tǒng),解決校園網(wǎng)用戶統(tǒng)一身份認(rèn)證問題。
2 校園網(wǎng)Internet接入認(rèn)證方式
Internet接入是校園網(wǎng)最重要的功能之一,由于用戶數(shù)量大,而且上網(wǎng)的時間比較集中(例如中午和晚上下課后),用戶認(rèn)證對系統(tǒng)的性能要求很高。國內(nèi)大部分高校都接入CERNet(中國教育科研網(wǎng)),而CERNet的計費(fèi)策略是國內(nèi)包月,國際按流量計費(fèi),因此很多高校早期采用了粗放型的認(rèn)證方式,即國內(nèi)地址直通,不需要賬號,而國際地址則需要設(shè)置代理服務(wù)器(Proxy),輸入用戶名和密碼后方可訪問。代理服務(wù)器的性能較低,一般只能承擔(dān)不到1000用戶同時訪問,而且國內(nèi)直通的方式容易出現(xiàn)安全問題,追查比較困難。目前這種方式已經(jīng)逐漸被網(wǎng)關(guān)認(rèn)證和802.1x認(rèn)證方式所取代。
2.1網(wǎng)關(guān)+Web認(rèn)證
網(wǎng)關(guān)+Web認(rèn)證方式是一種簡單易用的認(rèn)證方式[2],在校園網(wǎng)的Internet出口處部署一臺多網(wǎng)卡的網(wǎng)關(guān),當(dāng)用戶訪問Internet時,如果用戶尚未認(rèn)證,則重定向到Web認(rèn)證服務(wù)器,輸入用戶名和密碼后方可在網(wǎng)關(guān)上放開此用戶。使用網(wǎng)關(guān)+Web認(rèn)證方式的優(yōu)點(diǎn)是部署和管理非常簡單,用戶不需要安裝任何軟件或者配置任何參數(shù),只要將電腦網(wǎng)線插入墻上的以太網(wǎng)接口,即可通過DHCP獲取IP地址,訪問校內(nèi)資源時不需要認(rèn)證,只有訪問Internet時才需要認(rèn)證。這種方式的缺點(diǎn)有兩點(diǎn):一是網(wǎng)關(guān)存在性能瓶頸,根據(jù)我們的測試,一臺較高性能的網(wǎng)關(guān)(P4 3GHz CPU,1GB內(nèi)存)只能支持5000用戶同時在線,對于數(shù)萬注冊用戶的網(wǎng)絡(luò)是難以支撐的;二是客戶端零安裝也造成了管理的弱化,非法用戶可能通過偽造IP地址,或者安裝非法DHCP和代理盜用其它用戶的賬號。
2.2 802.1x認(rèn)證
802.1x認(rèn)證是最近幾年才發(fā)展起來的一種用戶認(rèn)證方式,它是一種基于交換機(jī)端口或MAC地址的訪問控制協(xié)議[3],最初802.1x是為了解決無線局域網(wǎng)(WLAN)的接入認(rèn)證而提出的,目前已被應(yīng)用到有線局域網(wǎng)對用戶進(jìn)行認(rèn)證和授權(quán)控制。用戶在沒有認(rèn)證之前與局域網(wǎng)是邏輯斷開的,只有認(rèn)證過后才能訪問網(wǎng)絡(luò)。使用這種方式的優(yōu)點(diǎn)是具有強(qiáng)大的管理功能,可以通過IP地址、MAC地址、交換機(jī)IP、端口等多要素對用戶進(jìn)行綁定,可有效解決賬號盜用問題,另外認(rèn)證過程分散到各臺接入層交換機(jī),可以大大提高認(rèn)證的效能,能夠支持?jǐn)?shù)萬以上的在線用戶。其缺點(diǎn)是對設(shè)備的要求高,需要購買支持802.1x認(rèn)證的交換機(jī),另外管理配置比較復(fù)雜。
3 Web Service技術(shù)簡介
Web Service是在HTTP、XML和SOAP(簡單對象訪問協(xié)議)等開放標(biāo)準(zhǔn)上形成的技術(shù)[4],具有平臺無關(guān)性、可跨越防火墻通信和松散耦合的特點(diǎn),特別適合于分布式異構(gòu)環(huán)境。Web Service的體系結(jié)構(gòu)主要包括SOAP、WSDL和UDDI,如圖1所示。
SOAP以XML格式提供了一個簡單、輕量的用于在分布環(huán)境中傳輸信息的機(jī)制。SOAP通過HTTP的80端口傳送對遠(yuǎn)程進(jìn)程的調(diào)用,解決了通過防火墻傳送消息的問題。WSDL(Web Service描述語言)基于XML格式,用來描述Web Service。它描述了Web Service可以執(zhí)行的操作以及Web Service可以發(fā)送或接收的消息格式。UDDI(統(tǒng)一描述、發(fā)現(xiàn)和整合)是發(fā)布和使用Web Service的樞紐,它主要用于解決在Internet上查找和定位Web Service的問題。Web Service提供者在UDDI注冊中心注冊后,用戶可以通過UDDI查詢到Web Service,從而通過SOAP調(diào)用Web Service。
4 系統(tǒng)實(shí)現(xiàn)
4.1 系統(tǒng)架構(gòu)
綜合考慮到性能和保護(hù)現(xiàn)有投資的要求,我校校園網(wǎng)采用了網(wǎng)關(guān)認(rèn)證和802.1x認(rèn)證相結(jié)合的方式:學(xué)生宿舍全部部署支持802.1x的交換機(jī),采用802.1x認(rèn)證;辦公區(qū)和家屬宿舍則使用早期購買的不支持802.1x的交換機(jī),采用網(wǎng)關(guān)+Web認(rèn)證。兩套認(rèn)證系統(tǒng)使用統(tǒng)一的用戶資料,用戶資料存儲在LDAP服務(wù)器中,通過Web Service實(shí)現(xiàn)用戶身份的認(rèn)證,如圖2所示。
Web Service通過Java技術(shù)實(shí)現(xiàn),運(yùn)行環(huán)境為Tomcat和AXIS框架。Tomcat是JSP和Servlet運(yùn)行環(huán)境,AXIS框架來自Apache開放源代碼組織,它是使用Java語言編寫的基于最新的SOAP 規(guī)范(SOAP 1.2)和 SOAP with Attachments 規(guī)范的開放源代碼框架。使用AXIS實(shí)現(xiàn)Web Service非常簡單,只需編寫認(rèn)證相關(guān)的Java類,然后將文件擴(kuò)展名改為jws,無需編譯,將文件拷貝到應(yīng)用程序發(fā)布目錄下即可。在客戶端的瀏覽器中輸入Web Service的地址:http:serverip:8080/webservice/authentication.jws wsdl即可列出調(diào)用此服務(wù)的方法。Web Service服務(wù)端主要提供以下三種認(rèn)證方法:
public class authentication {
//明文認(rèn)證,客戶端提供明文用戶名和口令
public int authen(String userName, String password){ …
}
//加密認(rèn)證,客戶端將用戶名、口令、IP、MAC加密后提交,驗(yàn)證成功后返回一個隨機(jī)令牌
public String authen3DES(String encrypedMessage){…
}
//MD5-challenge認(rèn)證,客戶端提交用戶名和challenged password
public int authenChallenge(String userName, String challengedpasswd){...
}
}
4.2 網(wǎng)關(guān)認(rèn)證流程
為保障系統(tǒng)的安全性,我們舍棄了網(wǎng)關(guān)認(rèn)證的易用性,用戶需要通過客戶端軟件才能認(rèn)證上網(wǎng)。同時客戶端軟件還用于控制用戶接入和保持用戶狀態(tài)。認(rèn)證過程如圖3所示。①用戶登錄系統(tǒng)時,客戶端將用戶名、密碼、IP地址和MAC地址等信息通過對稱密鑰(3DES)加密后發(fā)送給認(rèn)證系統(tǒng)Web Service;②認(rèn)證系統(tǒng)Web Service將信息解密后,交給應(yīng)用服務(wù)器的用戶認(rèn)證Bean,通過JNDI訪問LDAP服務(wù)器,對用戶身份進(jìn)行認(rèn)證和授權(quán)檢測;③檢測通過后通知網(wǎng)關(guān)放開此用戶;④向客戶端發(fā)送一個隨機(jī)生成的令牌(Token);⑤客戶端隨后即用此令牌和IP地址、MAC地址等信息加密,定時向認(rèn)證系統(tǒng)發(fā)送更新消息;⑥認(rèn)證系統(tǒng)更新在線用戶數(shù)據(jù)庫;⑦認(rèn)證系統(tǒng)后臺定時查詢在線用戶數(shù)據(jù)庫;⑧一旦超過一定時間沒有更新用戶狀態(tài),或者用戶IP地址、MAC地址發(fā)生變動,即通知網(wǎng)關(guān)強(qiáng)行斷開此用戶的連接。使用這種方式可以大大提高網(wǎng)關(guān)認(rèn)證系統(tǒng)的安全性,首先加密傳輸?shù)挠脩裘兔艽a難以被Sniffer破解,另外用戶IP地址、MAC地址、用戶名和隨機(jī)令牌的綁定傳輸,可以有效防止IP地址盜用和非法DHCP服務(wù)器造成的賬號盜用。
4.3 802.1x認(rèn)證流程
802.1x認(rèn)證是一種多層結(jié)構(gòu)的認(rèn)證體系,包括客戶端(Supplicant)、接入設(shè)備(Authenticator,即支持802.1x的交換機(jī))和認(rèn)證服務(wù)器(Authentication Server,一般是RADIUS),我們無法修改交換機(jī)的程序,因此只能通過修改RADIUS服務(wù)器來實(shí)現(xiàn)與Web Service的交互。我們使用的RADIUS服務(wù)系統(tǒng)是FreeRADIUS 1.0.5,認(rèn)證流程如圖4所示。傳統(tǒng)的802.1x認(rèn)證過程[5]這里不作詳細(xì)介紹,主要介紹修改的部分。由于RADIUS服務(wù)器本身不保存用戶信息,因此用戶認(rèn)證所使用的MD5 Challenge過程則交給認(rèn)證系統(tǒng)的Web Service進(jìn)行處理。RADIUS將用戶名轉(zhuǎn)發(fā)給認(rèn)證系統(tǒng),認(rèn)證系統(tǒng)產(chǎn)生一個Challenge,返回給RADIUS服務(wù)器,RADIUS服務(wù)器將此Challenge通過交換機(jī)發(fā)送給客戶端,要求客戶端進(jìn)行認(rèn)證,客戶端即將密碼和Challenge做MD5算法后的Challenged-Password,經(jīng)交換機(jī)和RADIUS服務(wù)器發(fā)送給認(rèn)證系統(tǒng),認(rèn)證系統(tǒng)根據(jù)從LDAP服務(wù)器取得的用戶密碼,做MD5算法,與收到的Challenged-Password對比,判斷用戶是否合法,然后回應(yīng)認(rèn)證成功/失敗信息給RADIUS服務(wù)器。如果成功,則根據(jù)用戶的相關(guān)屬性給用戶授權(quán)。如果認(rèn)證失敗,則流程結(jié)束。
4.4 分布式認(rèn)證
由于Web Service技術(shù)的松散耦合的特點(diǎn),它沒有復(fù)雜的消息傳遞、對象引用和垃圾回收機(jī)制,因此非常適合于分布式處理。在大型的校園網(wǎng)環(huán)境中可以部署多臺Web Service服務(wù)器,提供用戶認(rèn)證服務(wù)??紤]到大型校園網(wǎng)在上網(wǎng)高峰期時一分鐘內(nèi)可能有數(shù)千用戶同時登錄,為減輕服務(wù)器端進(jìn)程調(diào)度的負(fù)擔(dān),我們將服務(wù)調(diào)度的功能放在客戶端完成。網(wǎng)關(guān)客戶端通過配置文件讀取Web Service服務(wù)器列表,通過隨機(jī)算法調(diào)用其中一臺服務(wù)器進(jìn)行認(rèn)證。802.1x分布式認(rèn)證則通過修改RADIUS服務(wù)器和交換機(jī)配置來實(shí)現(xiàn)。
4.5 與其它應(yīng)用系統(tǒng)的集成
Web Service是與平臺和語言無關(guān)的一種遠(yuǎn)程調(diào)用技術(shù),目前幾乎所有的編程語言都支持Web Service,表1列出了利用不同語言開發(fā)Web Service客戶端所需要的工具。不同的應(yīng)用系統(tǒng)可以通過修改相應(yīng)認(rèn)證模塊,訪問用戶認(rèn)證Web Service實(shí)現(xiàn)用戶身份的認(rèn)證和部分授權(quán)功能。創(chuàng)建Web Service客戶端應(yīng)用的第一步一般是先創(chuàng)建代理對象,代理對象具有Web Service所有的數(shù)據(jù)接口??蛻舳送ㄟ^調(diào)用此代理類,實(shí)現(xiàn)Web Service的調(diào)用,如圖5所示。很多編程工具中都內(nèi)置了自動生成Web Service代理對象的工具,例如.NET SDK中的WebServiceUtil.exe,AXIS中的org.apache.axis.wsdl.WSDL2Java類等。
目前我校新聞發(fā)布系統(tǒng)、研究生管理系統(tǒng)、個人空間、VOD、BBS等網(wǎng)絡(luò)應(yīng)用系統(tǒng)已實(shí)現(xiàn)基于Web Service的統(tǒng)一身份認(rèn)證。由于應(yīng)用系統(tǒng)的權(quán)限控制千差萬別,通過統(tǒng)一身份認(rèn)證系統(tǒng)只提供一些常用的授權(quán)功能,例如IP地址限制、上網(wǎng)時段控制、應(yīng)用系統(tǒng)訪問權(quán)限等,更復(fù)雜的授權(quán)設(shè)置仍然由各應(yīng)用系統(tǒng)自己完成。
5 結(jié)語
Web Service技術(shù)為構(gòu)建分布式系統(tǒng)提供了一個簡單、靈活和開放的基礎(chǔ)平臺。基于Web Service技術(shù)的分布式用戶認(rèn)證系統(tǒng)可以很好地解決高校校園網(wǎng)復(fù)雜網(wǎng)絡(luò)環(huán)境下各類網(wǎng)絡(luò)應(yīng)用的統(tǒng)一身份認(rèn)證問題。在性能、安全性、靈活性和易管理性方面都有較好的表現(xiàn)。