吳海波
(淮南師范學院 計算機與信息工程系,安徽 淮南 232038)
Web服務(wù)是一個新型的服務(wù)協(xié)議,具有簡單、可擴展、開放性、松散耦合和跨平臺等特點,通過Web技術(shù),使各種不同平臺上的系統(tǒng)能夠方便地進行數(shù)據(jù)和功能共享,實現(xiàn)互操作。但Web服務(wù)作為一種新興技術(shù),不可避免的有其局限性,突出問題就是安全性。因此為保證Web服務(wù)的安全性和互操作性,亟待找到一種方案以解決其訪問控制的安全問題。
本文研究了單點登錄技術(shù)和訪問控制技術(shù),在此基礎(chǔ)上設(shè)計了一個基于SAML的單點登錄和基于XACML的Web服務(wù)訪問控制系統(tǒng)模型,該模型支持集中的用戶管理和統(tǒng)一的身份認證,并且經(jīng)過分布與集中相結(jié)合的服務(wù)和授權(quán)進行訪問控制。
1.1.1 SAML概念
SAML是由OASIS安全服務(wù)協(xié)會制定的基于XML框架的一種安全性標準,稱為安全聲明標記語言。SAML具有以下特點:提供單點登錄身份驗證的功能;每個獨立的系統(tǒng)都能為用戶的身份驗證和建立獨立的授權(quán)方案;能在不同類型的安全服務(wù)系統(tǒng)之間實現(xiàn)交互。
1.1.2 SAML規(guī)范
SAML規(guī)范有:聲明、請求/響應(yīng)協(xié)議、綁定和概要。
(1)聲明
聲明傳遞主體所執(zhí)行的驗證、主體屬性、是否允許主體訪問特定資源的授權(quán)決策等信息。主體是一個實體(人或計算機),這個實體在某個信任域中擁有一個特定身份。一組聲明組成一個主體的配置文件,配置文件中的聲明可能來自不同的組織。
(2)請求/響應(yīng)協(xié)議
SAML定義了基于XML的請求/響應(yīng)消息協(xié)議,能夠在域中參與交互的多方之間傳送SAML聲明。協(xié)議規(guī)定了兩點間共享SAML數(shù)據(jù)(聲明)所需交換的消息種類和格式。
(3)綁定
SAML綁定詳細描述了SAML協(xié)議在網(wǎng)絡(luò)傳輸中安全規(guī)范。SAML可以和多種通信協(xié)議或消息交換協(xié)議進行綁定或鏈接,例如HTTP,FTP,SMTP,SOAP等。并且可以利用被綁定協(xié)議原有的安全機制實現(xiàn)SAML傳輸?shù)暮唵伟踩浴?/p>
(4)SAML 概要
SAML概要定義了將SAML聲明嵌入到協(xié)議或其他上下文中及提取SAML聲明的規(guī)則和指南。通過SAML概要,應(yīng)用可以在SAML消息中無縫地安全地交換信息,高效率的與支持SAML的系統(tǒng)實現(xiàn)交互操作。
1.1.3 Web服務(wù)的單點登錄模型
利用SAML實現(xiàn)的Web服務(wù)的單點登錄模型如圖1:
圖1 基于SAML的Web服務(wù)單點登錄模型
從圖1中能夠看出,在各個信任方之間傳輸?shù)氖腔赟AML的安全信息,因而能跨越各方的防火墻。用戶只需提交一次認證信息,即可在不同域之間、不同的Web服務(wù)之間實現(xiàn)單點登錄。
1.2.1 XACML概念
OASIS推出的XACML(可擴展訪問控制標記語言)是基于XML標準的一種通用的用于保護資源的策略語言和訪問決策語言,用來表示控制信息訪問的規(guī)則和策略。XACML還定義了授權(quán)決策所需必要規(guī)則的語言,提供了比簡單地拒絕訪問或授權(quán)訪問更加細粒度的控制訪問機制。
1.2.2 XACML訪問控制決策模型
基于XACML的訪問控制決策模型是由若干個功能模塊構(gòu)成的。當請求方發(fā)出訪問請求時,策略執(zhí)行點 (PEP)將接受到的訪問請求轉(zhuǎn)發(fā)給XACML上下文管理器。XACML上下文管理器收集完一定信息后向策略決策點(PDP)提出決策請求,策略決策點(PDP)根據(jù)策略管理點(PMP)提供的策略,依據(jù)既定的邏輯對決策請求做出判決,并返回判決結(jié)果。最后由上下文處理器將結(jié)果返回策略執(zhí)行點(PEP),由策略執(zhí)行點來實施決策結(jié)果,向請求方提交是允許請求還是拒絕請求。XACML的訪問控制決策模型如圖2:
圖2 基于XACML的訪問控制決策模型
要在各個企業(yè)中廣泛的應(yīng)用Web服務(wù),就要解決Web服務(wù)的安全問題。那么其中最重要的問題是多個聯(lián)合信任域內(nèi)的用戶身份驗證問題和單點登錄問題。使用單點登錄技術(shù),用戶能夠僅使用一次身份驗證而同時獲得多個Web服務(wù)。這里可以用SAML來解決單點登陸問題。
如果要對Web服務(wù)進行訪問控制,可以使用XACML語言。XACML語言支持多樣化的策略組合和參數(shù)化的策略描述,有可擴展性,同時能夠融入SOAP調(diào)用時使用的XML結(jié)構(gòu)中,適用于分布式系統(tǒng)的訪問控制。
如果能夠結(jié)合基于SAML的單點登陸和基于XACML的訪問控制,就可以很好地對Web服務(wù)進行訪問控制。利用SAML可以實現(xiàn)一次登錄、多次訪問,同時使用XACML提供具體的策略方案來實現(xiàn)授權(quán)訪問控制,這樣就可以把兩者無縫結(jié)合用來對Web服務(wù)進行授權(quán)訪問控制。
因此,可以在SAML的基礎(chǔ)上結(jié)合XACML來對Web服務(wù)進行訪問控制,系統(tǒng)結(jié)構(gòu)模型和各個模塊之間的關(guān)系如圖3所示:
圖3 基于SAML和XACML的Web 服務(wù)訪問控制模型
該模型由五個部分組成:用戶,目標服務(wù),ASPECT管理,身份驗證服務(wù),訪問控制服務(wù)。
(l)用戶
用戶是指提交訪問目標服務(wù)請求的請求方。
(2)目標服務(wù)
目標服務(wù)是給用戶提供的Web服務(wù),接受調(diào)用。
(3)Aspect管理
AsPect管理(切面管理模塊)用來實現(xiàn)用戶端與目標服務(wù)的交互操作,與目標服務(wù)組成目標服務(wù)域。
(4)身份驗證服務(wù)
是一個web服務(wù),提供用戶的登陸和SAML身份認證聲明與令牌,用于身份認證信息在不同的信息系統(tǒng)之間的傳遞。
(5)訪問控制服務(wù)
訪問控制服務(wù)是一個獨立的服務(wù),為用戶對目標服務(wù)的訪問請求提供訪問控制公共安全策略,保證服務(wù)只能被授權(quán)的用戶訪問。在訪問具體服務(wù)時,如果還有本地策略控制,則需要均滿足才能訪問目標服務(wù)。訪問控制服務(wù)采用基于XACML的訪問控制模式,將整個系統(tǒng)中的用戶訪問權(quán)限信息集中進行管理,簡化了授權(quán)管理,易于維護。使用XACML規(guī)范中的訪問控制語言模型來描述相關(guān)的授權(quán)信息,使得系統(tǒng)具有良好的兼容性和擴展性。
本文在分析SAML和XACML的基礎(chǔ)上,其中重點介紹了SAML和XACML兩者如何結(jié)合及其結(jié)合點,從而利用兩者的無縫結(jié)合來對Web服務(wù)進行訪問控制。提出了一種基于SAML和XACML的Web服務(wù)訪問控制模型。該模型實現(xiàn)了對Web服務(wù)的單點登錄,多點訪問,并且使用XACML對用戶進行訪問授權(quán)控制。
[1]王子才.基于XACML的訪問控制技術(shù)的應(yīng)用研究[D].大連:大連海事大學,2006
[2]李松.基于XACML統(tǒng)一策略的訪問控制服務(wù)研究與實現(xiàn)[D].成都:四川大學,2006
[3]吳敏.Web Services訪問控制機制及其整合研究[D].上海:東華大學,2006
[4]張廣志.多安全域Web服務(wù)訪問控制研究[D].北京:中國石油大學,2008