摘要:建設(shè)數(shù)字化校園的目標是消除校園網(wǎng)中的信息孤島,整合校園網(wǎng)中的各種應(yīng)用系統(tǒng)并實現(xiàn)統(tǒng)一的身份認證服務(wù)機制。運用SOA構(gòu)建統(tǒng)一身份認證服務(wù)架構(gòu),一方面它實現(xiàn)了平臺無關(guān)性,另一方面實現(xiàn)了分布式部署、組合和使用的服務(wù)。
關(guān)鍵詞:SOA;XML;認證指令;SOAP消息
中圖分類號:TP393文獻標識碼:A文章編號:1009-3044(2009)14-3721-03
The Design and Implementation of Architecture of Universal Identity Authentication Service Based on Service-Oriented Architecture
ZHU Guang-Fu, LANG Yong-Xiang, LIU Xiao-Hong
(Network Information Center, Chongqing City Management College, Chongqing 400055, China)
Abstract: The aim of building A Digital Campus is avoiding the isolated information resources , integrating multifarious application system in the campus web and implementing a unified identity authentication service mechanism. On the one hand building a unified identity authentication service architectureby useing SOA realized platform indepenece, and on the other hand,realized services of distributed deployment, compounding and use.
Key words: SOA; XML; authentication instruction; SOAP message
隨著近幾年高校對校園網(wǎng)絡(luò)基礎(chǔ)硬件設(shè)施擴建的完成,很多高校已開始建設(shè)數(shù)字化校園,而統(tǒng)一身份認證服務(wù)作為數(shù)字化校園建設(shè)的基礎(chǔ)部分,它是每個高校建設(shè)數(shù)字化校園所面臨的一個問題。筆者以在數(shù)字化校園建設(shè)方面具有特色的部分高校為例,研究其校園網(wǎng)的統(tǒng)一身份認證服務(wù)后,發(fā)現(xiàn)它們都別具一格,各有所長,但在總體架構(gòu)上沒有一套統(tǒng)一、完善的理論與方法。本文運用SOA(Service-Oriented Architecture)模型,設(shè)計并實現(xiàn)了一個基于SOA的統(tǒng)一身份認證服務(wù)架構(gòu)的方案。
1 統(tǒng)一身份認證服務(wù)架構(gòu)
1.1面向服務(wù)的架構(gòu)SOA
SOA(Service-Oriented Architecture)是一種軟件架構(gòu)模型,它可以根據(jù)需要對松耦合的粗粒度應(yīng)用組件進行分布式部署、組合和使用。服務(wù)之間采用松耦合有兩大好處,第一是各種服務(wù)能夠靈活組合,第二是每個服務(wù)的內(nèi)部結(jié)構(gòu)和實現(xiàn)發(fā)生改變時,其構(gòu)成的整個應(yīng)用程序無需改變。反之,緊耦合意味著應(yīng)用程序的不同組件之間的接口與其功能和結(jié)構(gòu)是緊密相連的,因而當需要對部分或整個應(yīng)用程序進行某種形式的更改時,不易對其進行重構(gòu)。SOA的關(guān)鍵是“服務(wù)”的概念,在該架構(gòu)中,定義了兩個角色,服務(wù)提供者和服務(wù)使用者。
目前支持SOA架構(gòu)概念的軟件體系有好幾種。使用基于SOAP協(xié)議的Web服務(wù)技術(shù)來構(gòu)建統(tǒng)一身份認證服務(wù)架構(gòu),這種技術(shù)正快速發(fā)展,是未來的發(fā)展方向,它提供了一個系統(tǒng)架構(gòu)以及一系列的技術(shù)標準與規(guī)范。
1.2基于SOA的統(tǒng)一身份認證架構(gòu)
統(tǒng)一身份認證服務(wù)主要實現(xiàn)用戶管理、身份認證、分級權(quán)限管理和單點登錄等功能,以解決校園數(shù)字化建設(shè)過程中用戶定義模糊、用戶身份組織零亂、交叉權(quán)限管理定義和應(yīng)用系統(tǒng)入口多樣性等棘手的問題。
本系統(tǒng)架構(gòu)以北京大學和重慶大學等已建設(shè)或正在建設(shè)的統(tǒng)一身份認證服務(wù)為研究基礎(chǔ),結(jié)合SOA等技術(shù)對統(tǒng)一身份認證服務(wù)進行了進一步定義。在基于SOA的統(tǒng)一身份認證服務(wù)架構(gòu)中,依據(jù)SOA定義的服務(wù)提供者和服務(wù)使用者角色,將統(tǒng)一身份認證服務(wù)所要實現(xiàn)的功能封裝成為服務(wù)提供者,作為服務(wù)使用者的各應(yīng)用系統(tǒng)必須依據(jù)統(tǒng)一服務(wù)接口所定義的調(diào)用方法才能調(diào)用服務(wù)。服務(wù)提供者按三層結(jié)構(gòu)來設(shè)計,分別為統(tǒng)一認證中心數(shù)據(jù)庫、統(tǒng)一信息管理和統(tǒng)一服務(wù)接口。對統(tǒng)一認證中心數(shù)據(jù)庫的訪問操作經(jīng)過封裝后,只有經(jīng)過統(tǒng)一服務(wù)接口才能進行訪問,同時在統(tǒng)一服務(wù)接口處設(shè)置相應(yīng)的安全性檢查和訪問控制的策略匹配來提高對中心數(shù)據(jù)庫的訪問安全。基于SOA的統(tǒng)一身份認證服務(wù)的架構(gòu)如圖1。
服務(wù)使用者調(diào)用一次服務(wù)的過程為:
1) 服務(wù)使用者依據(jù)認證語言及語法構(gòu)造認證指令。
2) 使用與服務(wù)提供者約定的加密算法對認證指令進行加密。
3) 將加密后的密文封裝成SOAP消息,并將消息發(fā)送到服務(wù)提供者。
4) 服務(wù)提供者收到SOAP消息后拆封并提取消息。
5) 使用與服務(wù)使用者約定的加密算法解密密文。
6) 對明文進行語法、語義進行有效性驗證,通過驗證后執(zhí)行認證指令。
7) 將執(zhí)行的結(jié)果加密、封裝為SOAP消息并再發(fā)送給服務(wù)使用者。
8) 服務(wù)使用者收到SOAP消息后拆封、解密并提取執(zhí)行的結(jié)果。
在上面所提到的認證指令是基于XML格式的,所以構(gòu)造與解析認證指令實際上是對XML的序列化與反序列化的過程,同時執(zhí)行結(jié)果也是XML格式的,所以提取執(zhí)行結(jié)果實際上也是對XML的處理,認證指令的描述見下節(jié)。對認證指令及執(zhí)行結(jié)果的加密與否在這里是可選的,當返回的執(zhí)行結(jié)果的信息量很大而對安全性要求不高的內(nèi)容可以不進行加密而直接返回明文,從而減少加密與解密所花的時間。
2 關(guān)鍵技術(shù)的設(shè)計與實現(xiàn)
2.1 SOAP消息
2.1.1 消息的流程
基于SOAP協(xié)議的消息的請求/響應(yīng)過程經(jīng)過4個階段:服務(wù)使用者構(gòu)造SOAP消息、服務(wù)提供者接收并解析SOAP消息、服務(wù)提供者響應(yīng)并構(gòu)造SOAP消息、服務(wù)使用者接收并解析SOAP消息,過程結(jié)構(gòu)如圖2。
2.1.2 消息的定義
在這里,服務(wù)使用者與服務(wù)提供者之間是通過SOAP消息的方式相互通信,并根據(jù)需要對SOAP消息進行了一些自定義。
1) SOAP HTTP 請求消息格式如下:
POST/xxxx.asmxHTTP/1.1
Host:xxxx
Content-Type:text/xml;charset=utf-8
Content-Length;xxxx
SOAPAction:”http://xxx.xxx.xxx/xxx”
其中,< RequestMessage> 元素中的bSecurityFlag屬性是加密標志,它的數(shù)據(jù)類型為值布爾性,取值可以是True和False,分別對應(yīng)密文和明文兩種類型,加密的對象是
2) SOAP HTTP響應(yīng)消息格式如下:
HTTP/1.1 200 OK
Content-Type:text/xml;charset=utf-8
Content-Length:xxxx
在響應(yīng)消息中,通過SOAP消息的
在
2.2 認證指令系統(tǒng)
2.2.1認證指令系統(tǒng)模型
為了定義規(guī)范的接口,通過模擬命令行系統(tǒng)中的指令系統(tǒng),構(gòu)造一個基于XML的指令系統(tǒng),此模型總體結(jié)構(gòu)由以下幾個部分組成:
1) 認證指令控制器
認證指令控制器的主要功能是解析用戶提交的認證指令。即驗證用戶的合法性;檢查認證指令語法的正確性;對認證指令和返回值進行解密和加密;對系統(tǒng)接口的訪問進行日志記錄。
2) 認證指令執(zhí)行器
認證指令執(zhí)行器的目的在于實現(xiàn)有指令語法控制器轉(zhuǎn)交的具體任務(wù)。指令執(zhí)行器接收指令,根據(jù)指令進行相應(yīng)的操作,然后將執(zhí)行結(jié)果以XML格式返回給指令控制器。
3)XML認證語言
XML語言是被多種開發(fā)語言良好支持的擴展標記語言,建立在XML基礎(chǔ)上的認證語言將很好被其他開發(fā)語言解析利用。
2.2.2 認證指令格式的定義
通過將指令序列化為XML格式是為了提高它的可讀性和跨平臺性。當前使用的任何平臺,任何語言都能夠正確處理與理解XML格式的文件。當使用XML格式的認證語言后它就不再局限于一種平臺或一種高級語言的處理,它可以使用于任何平臺、任何語言。
1) 認證指令格式
xml version=”1.0” encoding=”UTF-8” ? >
< Parameters >
….多個指令參數(shù)…
其中,< Instruction >元素用于通知認證指令控制器服務(wù)請求者提交的指令,認證指令控制器根據(jù)< Instruction >元素所包含的內(nèi)容決定調(diào)用何種指令執(zhí)行器。由于一個指令可能包括多于一個的參數(shù),所以< Parameters >元素的每一個子元素< Parameter >都為一個參數(shù),并且都帶有參數(shù)類型paramType屬性及參數(shù)的名稱paramName屬性。
2) 指令執(zhí)行結(jié)果格式
由于執(zhí)行結(jié)果返回的值不一定只有一個值,例如返回一條記錄,而一條記錄中又包括了諸多字段,所以使用
3 結(jié)束語
統(tǒng)一身份認證服務(wù)作為數(shù)字化校園建設(shè)的基礎(chǔ),它的架構(gòu)與建設(shè)將直接影響一個學校數(shù)字化校園建設(shè)的水平及使用周期。構(gòu)建一個具有可擴展性、跨平臺、高可靠性的統(tǒng)一身份認證服務(wù)是每個學校都所期望的。本文通過分析、研究國內(nèi)個別在數(shù)字化校園建設(shè)方面具有特色的學校的統(tǒng)一身份認證服務(wù),并通過實際設(shè)計與構(gòu)建統(tǒng)一身份認證服務(wù)后提出了統(tǒng)一身份認證服務(wù)的架構(gòu)。
參考文獻:
[1] 黎波.基于SOA的數(shù)字化校園——統(tǒng)一身份認證服務(wù)的設(shè)計與實現(xiàn)[J].福建電腦,2007(3):125-126.
[2] 萬明.XML在統(tǒng)一身份認證中的應(yīng)用[J].計算機與現(xiàn)代化,2005(12):129-131.
[3] 張旗.基于Web Services架構(gòu)的統(tǒng)一身份認證的設(shè)計與實現(xiàn)[J].空軍工程大學學報,2006(1):75-79.
[4] 孫永強.Web服務(wù)深入編輯 [M].北京:清華大學出版社,2002.
[5] 黃王超,張鵬.ASP.NET/XML深入編程技術(shù)[M].北京:北京希望電子出版社,2002.