校園網(wǎng)統(tǒng)一認證系統(tǒng)的設(shè)計
張霞 秦緒海
摘 要 該文詳述了統(tǒng)一認證的系統(tǒng)設(shè)計原理,并對目前國內(nèi)外常見的幾種統(tǒng)一認證系統(tǒng)進行分析,總結(jié)其中的技術(shù)要點和設(shè)計流程,說明數(shù)據(jù)管理的邏輯統(tǒng)一和單點登錄是實現(xiàn)統(tǒng)一認證的核心問題,基于對這兩種技術(shù)的研究,給出了一個校園網(wǎng)統(tǒng)一認證系統(tǒng)的設(shè)計方案。
關(guān)鍵詞 統(tǒng)一認證 單點登錄 SSO LDAP Passport
1 引言
當用戶訪問網(wǎng)站時,出于安全的考慮,許多網(wǎng)站的服務(wù)如電子郵件、論壇、文件下載等一般都要對用戶進行認證,確定用戶的身份后賦予用戶相應(yīng)的訪問權(quán)限。隨著用戶申請服務(wù)的增多,用戶需要記憶的用戶名和密碼也在增多,每進入一項服務(wù)都要進行認證,不僅耗費時間而且容易遺忘密碼;另外,網(wǎng)站維護人員對各種服務(wù)需要建立相應(yīng)的用戶認證與信息管理系統(tǒng),分布于各服務(wù)器上的用戶數(shù)據(jù)不僅浪費維護人員的時間,而且過于分散的用戶數(shù)據(jù)不利于統(tǒng)計和管理,無論是商業(yè)網(wǎng)站、企業(yè)網(wǎng)還是校園網(wǎng),都面臨這個問題。用戶需求與管理要求促使用戶認證趨于統(tǒng)一,這就產(chǎn)生了統(tǒng)一認證。
統(tǒng)一認證的目標與系統(tǒng)特點為:
⑴ 一認證以用戶層、維護層和管理層三個層面上的安全和操作簡便為目標。用戶層只需一個用戶名和密碼,進行一次登錄就可以訪問統(tǒng)一認證范圍內(nèi)的所有網(wǎng)站服務(wù);維護層可以統(tǒng)一設(shè)計用戶的信息格式,集中管理用戶信息;管理層可以更快捷地獲取用戶動態(tài),分析用戶需求,進而發(fā)展更新穎,豐富的服務(wù)。
⑵ 一認證系統(tǒng)應(yīng)提供認證過程的透明性和網(wǎng)站服務(wù)轉(zhuǎn)換的無縫鏈接。
⑶ 目前瘦客戶機的概念已經(jīng)深入軟件體系結(jié)構(gòu)設(shè)計之中,B/S結(jié)構(gòu)成為流行設(shè)計趨勢,BBS,E-MAIL,ftp等傳統(tǒng)服務(wù)已經(jīng)逐步轉(zhuǎn)向WEB方式,統(tǒng)一認證也應(yīng)該體現(xiàn)這種瘦客戶機設(shè)計思想。
2 系統(tǒng)設(shè)計
軟件體系結(jié)構(gòu)通常分為三個層面:數(shù)據(jù)管理層,業(yè)務(wù)邏輯層和應(yīng)用表示層。我們也從這三個方面來解析統(tǒng)一認證系統(tǒng)的設(shè)計。統(tǒng)一認證的兩個核心問題是數(shù)據(jù)的邏輯統(tǒng)一和單點登錄(SSO,Single Sign-on)的實現(xiàn),它們分別位于數(shù)據(jù)管理層和業(yè)務(wù)邏輯層。
(1) 數(shù)據(jù)管理層:這一層實現(xiàn)對用戶信息存儲和管理的邏輯統(tǒng)一,使統(tǒng)一認證系統(tǒng)管理下的所有用戶信息能夠呈現(xiàn)一個完整的邏輯視圖,消除分散管理的混亂,實現(xiàn)統(tǒng)一的管理標準和可擴展的數(shù)據(jù)結(jié)構(gòu)。目前在此方面的數(shù)據(jù)管理技術(shù)已經(jīng)比較成熟,常見的國際標準是輕量目錄訪問協(xié)議LDAP(Light-Weight Directory Access Protocol)。
LDAP是IETF制定的網(wǎng)絡(luò)信息管理協(xié)議,可以方便地對用戶數(shù)據(jù)、網(wǎng)絡(luò)資源等各類信息進行統(tǒng)一、有效地管理,一般布置在Unix或Linux服務(wù)器平臺中,它可以使用數(shù)據(jù)庫進行數(shù)據(jù)存儲,加快數(shù)據(jù)訪問速度和提高安全性;通過接口與各種數(shù)據(jù)庫進行交互,具有較高的靈活性。比較常見的軟件中非商業(yè)性的有OpenLDAP,商業(yè)性的有Netscape Directory Server、SUN ONE Directory Server、Microsoft Active Directory等。其中Active Directory是Microsoft公司依照LDAP標準設(shè)計的基于Windows服務(wù)器平臺的目錄服務(wù),通過存儲網(wǎng)絡(luò)上對象的信息,允許網(wǎng)絡(luò)用戶通過單個登錄過程訪問網(wǎng)絡(luò)任意位置上允許訪問的資源,為網(wǎng)絡(luò)管理人員提供了直觀的網(wǎng)絡(luò)層次結(jié)構(gòu)視圖和對所有網(wǎng)絡(luò)對象的單點管理。
數(shù)據(jù)庫的應(yīng)用是通過制定用戶管理信息的規(guī)范,設(shè)計相應(yīng)的表結(jié)構(gòu),實現(xiàn)數(shù)據(jù)的存儲,并通過數(shù)據(jù)庫提供的接口規(guī)范編寫各種應(yīng)用模塊,此外,數(shù)據(jù)庫還提供了較為完善的安全性、數(shù)據(jù)完整性等服務(wù)。通常使用的應(yīng)用數(shù)據(jù)庫有ORACLE、SQL Server、INFORMIX等。
(2) 業(yè)務(wù)邏輯層:這一層主要實現(xiàn)統(tǒng)一認證的核心服務(wù),包括對數(shù)據(jù)的操作,用戶的認證服務(wù)和通信服務(wù),目標是實現(xiàn)單點登錄。
數(shù)據(jù)操作部分依照數(shù)據(jù)層提供的接口規(guī)范編寫相應(yīng)模塊即可;
用戶認證部分既可以響應(yīng)由用戶通過WEB訪問進行的認證服務(wù)調(diào)用,也可以響應(yīng)非WEB的訪問,如用戶端的OUTLOOK、服務(wù)器間聯(lián)合認證調(diào)用等。認證后通過對用戶認證信息的傳遞,使用戶以合法身份訪問各網(wǎng)站的服務(wù)。
單點登錄在時間上涉及注冊、登錄、訪問和退出四個過程,注冊和登錄應(yīng)保證信息傳送的保密性和認證過程的透明性,認證的機制有:Kerberos,PKI,一次性口令,數(shù)字證書和硬件鑒別等。訪問過程應(yīng)實現(xiàn)對認證信息的透明處理和對網(wǎng)站的無縫連接,各項服務(wù)的退出應(yīng)體現(xiàn)透明性。在空間上涉及單個認證系統(tǒng)和多個認證系統(tǒng)下的認證訪問,主要運用分布式處理技術(shù),實現(xiàn)認證信息的透明傳輸與交換;在用戶端涉及到使用Cookie保留認證信息,或是由服務(wù)器側(cè)將認證信息組裝在HTTP頭部進行重定向等技術(shù)。
(3) 應(yīng)用表示層:提供用戶統(tǒng)一的認證接口,應(yīng)體現(xiàn)WEB訪問的主流設(shè)計思想,便于開發(fā)新業(yè)務(wù),提供針對各種應(yīng)用服務(wù)的認證功能,如WWW,E-MAIL,BBS等。
3 國內(nèi)外典型案例分析
目前關(guān)于用戶統(tǒng)一認證的研究已經(jīng)進入到實際應(yīng)用之中,技術(shù)的焦點主要集中在單點登錄上,商業(yè)性的產(chǎn)品有IBM的Tivoli Global Sign-On,Novell的Secure Login,RSA的ClearTrust,Oracle9iAS Infrastructure,Microsoft的.Net Passport SSI等。一些組織和論壇也提出了一些規(guī)范和技術(shù),如Liberty Alliance Project Phase 2,OpenLDAP等。另外,Web Service近幾年來逐步流行,它使用XML與HTTP進行對象描述與信息傳送,實現(xiàn)了跨平臺性和面向?qū)ο蟮姆植际教幚?,單點登錄也有在Web Service中集成的趨勢,目前Microsoft和SUN等公司都在致力于這方面的研究。
下面就一些典型案例進行分析。
(1).NET Passport SSI(Single Sign-in):它通過.NET Passport服務(wù)建立集中認證機制,用戶可以通過在HOTMAIL、MSN上注冊電子郵件,登錄Passport網(wǎng)站或Passport合作站點等方式建立Passport賬號。
在獲得Passport賬號后,可以在Passport及其合作站點進行單點登錄,實現(xiàn)無縫的鏈接訪問,合作站點的登錄認證都通過HTTP重定向功能集中到Passport網(wǎng)站完成,其中采用SSL/TLS,Triple DES加密算法等安全措施保證信息安全,認證通過后,將認證信息傳送至客戶端,以Cookie形式保存,用戶訪問合作站點時,在訪問信息中附帶Cookie一起傳送給合作站點,合作站點中有Passport Manager Object進程用來檢查Cookie信息,鑒別用戶合法與否,合法用戶被授權(quán)訪問網(wǎng)站信息,用戶完成訪問后,通過選擇Log out,重定向到Passport服務(wù)器,由Passport通知各受訪站點退出,各受訪站點同時刪除客戶端的Cookies。
Passport認證過程示意框圖如下:
圖1 Passport認證過程示意圖
Passport合作站點的開發(fā)基于Microsoft提供的SDK,可將Passport部署在Windows,Linux或Unix等服務(wù)器平臺上,由Microsoft提供安全密鑰和站點ID,使用Passport服務(wù)器進行集中式認證服務(wù)。
Passport目前已進入商業(yè)運行,且擁有相當規(guī)模的注冊用戶。但是它也有一些潛在的問題,如實現(xiàn)集中式認證后,各合作站點的用戶認證都在Passport網(wǎng)站的管理之下,一旦認證時Passport網(wǎng)站無法連通,則不能提供后續(xù)服務(wù);使用Cookies保存和傳遞用戶信息會引起用戶登錄信息的泄密,如用戶使用公共計算機上網(wǎng),忘記退出Passport或使用了自動登錄選項,就會造成賬號盜用;Passport未提供與其他身份認證服務(wù)進行聯(lián)合的機制,使得其它具備認證服務(wù)的網(wǎng)站不可能參加Passport,也不能聯(lián)合進行統(tǒng)一認證。目前Microsoft正在推出TrustBridge技術(shù)以解決不能與其它認證服務(wù)站點聯(lián)合的問題,并通過支持Kerberos認證機制增加安全性。
(2)Liberty Alliance Project:它是由RSA、SUN、Novell等多家公司制定的聯(lián)合認證標準,基于互聯(lián)網(wǎng)上已存在的認證系統(tǒng)而提出,目的是為了簡化用戶登錄和訪問的過程,其實質(zhì)也是單點登錄,目前它的版本為Phrase 2,其內(nèi)容涉及到聯(lián)合認證,Web Service下的認證管理等技術(shù)標準,它沒有Passport集中式的統(tǒng)一認證系統(tǒng),服務(wù)站點(Service Provider)與認證站點(Identity Provider)之間建立一對多或多對多的合作關(guān)系,通過用戶設(shè)定各網(wǎng)站賬號的映射關(guān)系,建立用戶的單點登錄服務(wù),使用HTTP重定向、URL編碼和SAML(Security Assertion Markup Language )進行認證信息傳遞,不在客戶端存放Cookies認證信息。目前,SUN、AOL等公司已開發(fā)出基于此規(guī)范的產(chǎn)品,
當用戶登錄服務(wù)站點時,服務(wù)站點向用戶提供建立聯(lián)盟的認證站點鏈接,由用戶選擇一個認證站點進行登錄驗證,驗證時詢問用戶是否建立服務(wù)站點的賬號聯(lián)合,用戶選擇是后站點之間完成賬號聯(lián)合,并將用戶重定向到服務(wù)站點開始服務(wù),以后用戶無須再進行賬號聯(lián)合,可以通過在認證站點單點登錄之后訪問服務(wù)站點,也可以在訪問服務(wù)站點時選擇認證站點進行登錄,再通過站點之間使用SOAP協(xié)議傳遞認證信息實現(xiàn)服務(wù)訪問的無縫鏈接。
用戶退出時,若在認證站點時,則由認證站點通過HTTP重定向和GET指令通知各服務(wù)站點退出,在服務(wù)站點時,則通過HTTP重定向通知認證站點等退出;另外,也可采用SOAP進行通信完成退出過程。
其余的SSO軟件開發(fā),在Unix或Linux平臺下,有的采用RPC或SUN的RMI,EJB等,例如通過在客戶端執(zhí)行Java applet,實現(xiàn)客戶端的計算,完成密鑰交換與認證,采用RMI在實現(xiàn)Java對象的各站點之間進行認證信息傳遞等。
4 可行性方案設(shè)計
校園網(wǎng)是一個提供多種服務(wù)的大系統(tǒng),有必要建立一個集中式的認證系統(tǒng),提供對E-MAIL,BBS,FTP,電子交易及管理等的認證服務(wù)。針對校園網(wǎng)用戶的地理位置、知識層次比較集中,用戶數(shù)據(jù)可采用大型數(shù)據(jù)庫支持的LDAP進行管理;業(yè)務(wù)邏輯層可分為數(shù)據(jù)操作、用戶認證、服務(wù)器間通信和用戶通信等子模塊分別實現(xiàn),采用Web Service的方式,對各服務(wù)用XML進行描述,以支持網(wǎng)絡(luò)調(diào)用。由于校園網(wǎng)多為公共機房、實驗室,認證信息不宜采取在客戶端保留的方式,可采用HTTP重定向和URL編碼重組,且應(yīng)在安全和穩(wěn)定機制上采取必要措施,保證認證服務(wù)的高效、穩(wěn)定。應(yīng)用表示層采用XML/HTTP編寫認證的Web服務(wù),與業(yè)務(wù)邏輯層各模塊之間使用SOAP協(xié)議進行信息傳遞,實現(xiàn)子模塊的調(diào)用?;谝陨霞夹g(shù)分析,我們可以設(shè)計出如下圖所示的校園網(wǎng)統(tǒng)一認證系統(tǒng)。
圖2 校園網(wǎng)統(tǒng)一認證系統(tǒng)
針對以后認證系統(tǒng)的擴展,如與其他校園網(wǎng)、學術(shù)網(wǎng)站的聯(lián)合統(tǒng)一認證,可借鑒Liberty Alliance Project的規(guī)范標準,在業(yè)務(wù)邏輯層開發(fā)相應(yīng)的功能子模塊,擴展業(yè)務(wù)能力。
5 結(jié)束語
統(tǒng)一認證的目的是為了提高用戶上網(wǎng)的流暢性,同時便于網(wǎng)站集中管理用戶信息,以提供更強的安全性和更多、更好的服務(wù)。校園網(wǎng)統(tǒng)一認證系統(tǒng)的設(shè)計與進一步實現(xiàn),可以大大提高校內(nèi)外用戶的上網(wǎng)質(zhì)量,為校園網(wǎng)的運行提供可靠保證。下一步的工作包括對用戶安全性的進一步提高,如用戶為記憶方便而設(shè)置簡單密碼而可能造成訪問權(quán)的暴露,此外對用戶在各服務(wù)網(wǎng)站上的登錄認證還需要做進一步的性能分析。
參考文獻:
[1] Microsoft,.NET Passport Service Guide Kit Version 2.5.
[4] IETF,RFC2251 Lightweight Directory Access Protocol (v3).