(重慶大學 計算機學院, 重慶 400030)
摘 要:對Web服務組合中的安全問題進行研究,描述了如何表達安全性能和約束,改進了一個Web服務安全組合的框架,最后用一個實例來詳細說明了模型的工作過程。
關鍵詞:工作流;安全性能;安全約束;業務流程執行語言;服務組合
中圖分類號:TP309文獻標志碼:A
文章編號:1001-3695(2009)04-1523-05
Security study of Web service composition
LI Xue-ming,CHEN Li-li
(College of Computer Science, Chongqing University, Chongqing 400030, China)
Abstract:This paper studied the security issues on the Web service composition, described how to express security capability and constrains, improved a framework of a Web service security composition. At last,gave a detailed example to illustrate the working process of the model.
Key words:workflow; security capability; security constraints; business process execution language; service composition
0 引言
Web服務組合可以利用較小的、較簡單的且易于執行的輕量級服務來創建功能更為豐富、更易于用戶定制的復雜服務,已成為當今社會的研究熱點。BPEL4WS[1](business process execution language for Web services,Web服務的商業流程執行語言)是專為整合Web 服務而制定的一項規范標準。一個工作流(WF)是一個計算機支持的商業過程,包括一系列的活動來表示商業任務和交互,工作流中處理的信息被高度估計,因此保護這些信息不受安全威脅是非常重要的。工作流管理系統在Web服務應用方面的大量使用,使得人們更加關注信息的機密性、完整性、私密性、匿名性和可用性。BPEL4WS規范推薦業務流程執行使用WS-Security[2]來保證消息在傳輸和駐留在目的地時不會被竄改和偽造。
文獻[3]提出了一種將安全信息加入BPEL流程的執行過程中的方法,在組合的Web服務執行過程中進行安全性驗證。文獻[4]給出了一個在Web服務組合的過程中進行訪問控制的方法。Web服務的請求者和提供者在Web服務組合的過程中都有安全需求和屬性方面的要求,本文從這一角度出發,進行了Web服務組合的安全性研究,這是一個有著實際意義但是目前還沒有進行深入研究的領域。例如,一個Web服務的提供者可能不希望接受來自一個特定IP地址的請求,或者必須采用固定的方法進行身份認證,或者希望在組合中加入一些附加的安全約束,這些約束在Web服務組合的過程中需要準確驗證。本文首先給出一個表示適應現有標準的安全性能和約束的方法;然后分析文獻[5]中提出的基于經紀人的架構,并對其進行改進,依照指定的安全約束來組合Web服務;最后舉例詳細說明模型的工作過程。
1 用OWL-S來構造安全引用參數表
Web服務的發現、調用、自動組合和互操作,都需要對服務進行一定的語義描述。基于WSDL[6]的Web服務描述語言主要集中于數據交換和服務發布的語法標準,然而計算機缺乏對服務描述的語義理解。目前,研究者們提出了專門描述服務語義的OWL-S語言[7]。OWL-S包含一整套本體,提供了描述Web服務語義的詞匯表。它能夠根據服務的輸入(inputs)、輸出(outputs)、前提(preconditions)以及結果(effects)進行推理。OWL-S使得Web服務具備機器可理解性和易用性,從而支持智能主體自動的及動態的Web服務發現、調用、組合和互操作。
要在Web服務組合中加入安全方面的信息,首先必須構造一個與Web服務相關的安全信息引用參數詞匯表。本文采用文獻[5]提出的方法用OWL來定義安全詞匯/本體。OWL本體包括對類、屬性和實例的描述。下例給出了一個簡化的OWL本體,描述了安全詞匯和相關的Web服務標準。
〈owl:Ontology rdf:about=\"#securityVocabulary\"〉
〈owl:versionInfo〉v1.00 2005/06/15 23:59:59
〈/owl:versionInfo〉
〈rdfs:comment〉Security Vocabulary〈/rdfs:comment〉
……
〈owl:Class rdf:ID=\"#privacyAccessControl\"〉
〈owl:unionOf rdf:parseType=\"Collection\"〉
〈owl:Class rdf:about=\"#P3P\"/〉
〈owl:Class rdf:about=\"#REI\"/〉
〈owl:Class rdf:about=\"#EPAL\"/〉
〈owl:Class rdf:about=\"#XACML\"/〉
〈/owl:unionOf〉
〈/owl:Class〉
……
〈owl:Class rdf:ID=\"#authentication\"〉
〈owl:unionOf rdf:parseType=\"Collection\"〉
〈owl:Class rdf:about=\"#WS-Security\"/〉
〈owl:Class rdf:about=\"#SAML\"/〉
〈owl:Class rdf:about=\"#X.509\"/〉
〈/owl:unionOf〉
〈/owl:Class〉
……
〈/owl:Ontology〉
2 安全性能和約束的表示
2.1 安全性能
安全性能依照特定的安全詞匯描述一個Web服務的安全特征。在文獻[5]中,Web服務安全性能通過SAML[8]斷言來表達。SAML體系依賴可信任的權威機構為主體(如用戶、服務器、組織)發布簽名的斷言,即關于主體的一系列聲明。本文假設存在一個或更多可信任的實體掌管確認和發布安全性能,即存在一個安全性能權威機構(SCA)掌管評估Web服務安全性能,通過評估和驗證,發布簽名的SAML斷言。通過使用SAML斷言的屬性聲明,將每一個不同的安全特征參數與一個不同的屬性相關聯來表達Web服務的安全性能。依照SAML規范,屬性聲明包括一個屬性名和一個屬性值。在這里,屬性名用來表示安全特征,屬性值給出了相應的Web服務安全特征的具體信息。下面給出了一個通過屬性斷言表達的安全性能。
〈saml:AttributeStatement xmlns:sv=\"#securityVocabulary\"〉
〈saml:Attribute Name =\"sv: PrivacyAccessControl\"〉
〈saml:AttributeValue〉
P3P
〈/saml:AttributeValue〉
〈/saml:Attribute〉
〈/saml:AttributeStatement〉
其中,第一個屬性的名字是隱私訪問控制,指出Web服務采用隱私訪問控制機制。屬性值是P3P[9],意思是Web服務采用P3P表達隱私訪問控制策略。安全性能通過使用擴展元素保存在Web服務的WSDL文檔中。
2.2 安全約束
從理論上講,安全約束有三種類型:a)靜態約束,不用執行Web服務組合就能被驗證;b)動態約束, 只能在Web服務組合執行的過程中被驗證;c)混合約束,約束的可滿足性若不執行Web服務組合只能被部分驗證。
約束還可以被分成兩大類,即請求者請求服務時所制訂的約束(安全約束)和一個Web服務能夠利用另一個Web服務以便與其合作所涉及到的條件(兼容性約束)。第一個分類又可以分成general和specific約束兩個子類。General約束指的是Web服務請求者對所有參與組合的Web服務所限定的條件(如采用隱私或認證技術);而specific約束是針對單個具體的Web服務所限定的約束(如旅館預訂的Web服務應該使用X.509認證)。
文獻[10]給出了描述安全約束的方法,下面簡單介紹。安全性能和兼容性約束被存儲在WSDL文檔中來描述Web服務,更準確地說,它們被存儲在WSDL文檔的可擴展元素中(查看下例的compatibilityConstraint元素)。Web服務請求者所指定的約束(general和specific約束)則被包含在服務請求(即SOAP[11]消息)中。安全約束由安全性能通過布爾規則來表達,布爾規則以析取范式的形式存儲。例如,如果一個Web服務只希望與使用SAML認證的Web服務請求,或者不使用DES加密的請求進行通信,那么存儲在WSDL文檔中的兼容性約束就是“authentication=SAML OR encryption ≠DES”,相應的compatibilityConstraint元素在下例中顯示。約束必須與SCA發布的安全性能相匹配,采用通用的引用本體來表達。
〈constraint:CompatibilityConstraint xmlns:sv=\"#securityVocabulary\" rdf:ID=\"compatibilityConstraint1\" type=\"static\"〉
〈constraint:subject rdf:resource=\"sv:authenticaion\"/〉
〈constraint:predicate rdf:resource=\"operator:equal\"/〉
〈constraint:object rdf:resource=\"sv:SAML\"/〉
〈/constraint: CompatibilityConstraint〉
〈constraint:CompatibilityConstraint xmlns:sv=\"#securityVocabulary\" rdf:ID=\"compatibilityConstraint2\" type=\"static\"〉
〈constraint:subject rdf:resource=\"sv:encryption\"/〉
〈constraint:predicate rdf:resource=\" operator:notEqual\"/〉
〈constraint:object rdf:resource=\"sv:DES\"/〉
〈/constraint: CompatibilityConstraint〉
下面給出了一個表示general/static約束的例子,聲明Web服務的請求者要求所有參與組合的Web服務都要采用X.509框架進行認證。在本文改進的框架中,這一靜態約束在Web服務組合執行前由SVP模塊驗證。
〈constraint:SimpleConstraint xmlns:sv=\"#securityVocabulary\" rdf:ID=\"GeneralConstraint1\" type=\"static\"〉
〈constraint:subject rdf:resource=\"sv:authenticaion\"/〉
〈constraint:predicate rdf:resource=\"operator:adopt\"/〉
〈constraint:object rdf:resource=\"sv:X.509\"/〉
〈/constraint:SimpleConstraint〉
相應地,下面是一個specific/dynamic約束的例子。約束聲明連接到Web服務1(WS1)的認證請求不能失敗超過三次。因為動態約束不能在Web服務組合執行前由SVP模塊獨立驗證,所以這一約束必須在Web服務組合執行的過程中由工作流執行引擎驗證和監控。
〈constraint:SimpleConstraint xmlns:esv=\"#enhancedSecurityVocabulary\" rdf:ID=\"SpecificConstraint1\" type=\"dynamic\"〉
〈constraint:subject rdf:resource=\"esv:AuthenticationRetry\"/〉
〈constraint:predicate rdf:resource=\"logicaloperator:lessThan\"/〉
〈constraint:object rdf:resource=\"times;3\"/〉
〈/constraint:SimpleConstraint〉
約束(general、specific和兼容性)能夠通過布爾操作符and、or和not聯合使用,形成更復雜的約束。例如,約束要求所有參與組合的Web服務都采用X.509框架進行認證,并且連接到Web服務1(WS1)的認證請求不能失敗超過三次(如下例)。這種情況將一個specific約束和一個general約束聯合到一起,此約束能在組合服務執行前被部分驗證,因為general約束是靜態的,而涉及到動態約束的部分只能在組合服務執行的過程中被驗證。
〈constraint:And rdf:ID=\"GeneralAndSpecificConstraint\"〉
〈constraint:first rdf:resource=\"#GeneralConstraint1\"/〉
〈constraint:second rdf:resource=\"#SpecificConstraint1\"/〉
〈/constraint:And〉
3 SWS-Broker的提出
文獻[5]提出了一個有安全意識的Web服務組合框架,即SWS-Broker,由一個Web服務實現的有安全意識的Web服務組合叫做secure WS-Broker(即SWS-Broker)。SWS-Broker接收一個服務的請求作為輸入,這個服務的實現需要若干服務的組合。SWS-Broker接收一系列general和specific安全約束,最終組合的結果必須滿足這些約束。SWS-Broker首先建立一個合適的工作流為所請求的服務構造業務流程,這些工作是在業務流程模板庫的幫助下完成的。服務可以通過句法的方法(WSDL和UDDI[12])或語義的方法(DAML-S)進行描述。一旦合適的WF被設計出來,SWS-Broker就開始產生組合,對每一個WF活動找到一個或幾個合適的Web服務。合適的Web服務是指這個Web服務有能力完成相應的活動,并且滿足相應的安全約束。SWS-Broker要完成的最后一個任務是產生WSBPEL文檔來表達有安全意識的組合,這個文檔被送入WSBPEL執行引擎進行執行,并將執行結果返回給請求者。在沒有合適的組合產生的情況下(即沒有找到合適的Web服務),SWS-Broker將返回錯誤報告,包含不能被滿足的安全約束和不能定位Web服務的WF活動。
SWS-Broker包含四個主要部分(圖1):WF modeler、 WSs locator、 security matchmaker和WSBPEL generator。下面將簡要介紹各部分的功能。
1)WF modeler SWS-Broker接受一個服務請求的描述作為輸入,這一步關系到被請求的最終Web服務。請求者對于哪個Web服務應該加入和如何加入來提供請求的服務并沒有給出任何提示。因此,SWS-Broker的第一步就是構建必須的商業過程來產生請求的服務。這個初始化的步驟由WF modeler完成,返回一個工作流作為結果。WF中每一個活動由一系列語義來注釋,描述它的功能和性能。
2)WSs locator 一旦合適的工作流產生了,下一步就是為每一個WF活動確定一個或更多能夠完成此活動的Web服務,這個任務由WSs locator完成,WSs locator可以使用UDDI搜索功能和語義注釋來實現這一任務。
3)Security matchmaker WSs locator為每一個WF活動返回一系列能夠完成它的Web服務,在這一選擇的過程中,并沒有考慮任何安全約束,這一工作是由security matchmaker完成的,它是整個SWS-Broker的核心。有了由WS modeler產生的WF和WSs Locator 定位的Web服務,security matchmaker在那些被WSs locator確定的Web服務中為每一WF活動選擇一個滿足特定安全約束的Web服務,得到有安全意識的組合。
4)WSBPEL generator 最后一步就是將security matchma-ker返回的結果轉換成WSBPEL文檔。WSBPEL文檔包含組合過程中考慮的general和specific約束信息。這些約束以WS-agreement[13]的方式構建,能夠在組合的Web服務執行過程中用來作更進一步的檢查 。
4 對SWS-Broker的改進
本文對圖1的SWS-Broker進行改進,將文獻[5]中的security matchmaker細化,把安全約束驗證和匹配模塊分開,增加一個SVP模塊。在進行匹配之前,先將WSs locator定位的Web服務送入SVP模塊進行安全性能和約束檢查,裁剪掉一部分不符合標準的Web服務。這樣可以減少很大一部分送入匹配模塊的Web服務數目。另外,將security matchmaker模塊進行擴展,使其不僅能進行安全兼容性匹配,也可以進行其他性能(如QoS[14]等)的匹配,最后得到一棵帶權的組合樹。權重[15]可以表示一些性能度量值(如費用等),方便最后有多個組合結果的情況下最終選擇最佳組合。改進的模型如圖2所示。
下面詳細說明SVP和Matchmaker模塊分別完成的功能,其他模塊的功能與文獻[5]中相同。
1)SVP(security validate point) 在收到WSs locator定位的Web服務后,SVP分別調用這些Web服務的安全性能文檔[4](即WSDL文檔中擴展元素中描述的安全性能信息),如圖3所示。首先刪減掉不滿足general約束的Web服務。然后對每個活動的安全約束,分別檢查對應Web服務的安全性能文檔是否滿足specific約束。若不滿足,則將此Web服務刪減掉;若檢查的過程中,有的活動已不存在滿足條件的Web服務,則直接返回錯誤信息(找不到滿足條件的Web服務),最后的檢查結果要每個活動至少有一個Web服務能夠完成。將檢查結果送入matchmaker模塊進行匹配和組合。
2)Matchmaker SVP已經將滿足單個活動安全約束的Web服務選了出來,接下來就是解決組合過程中服務與服務之間的兼容性匹配問題。Matchmaker模塊就是來完成這一項功能的。它將文獻[5]中security matchmaker的功能進行了擴展,不只進行安全兼容性匹配,還進行各種性能(如QoS)的匹配。WS1能夠調用WS2當且僅當WS2的性能滿足WS1的性能兼容性約束,這個性能可以是安全性能,也是服務質量等其他性能。當選擇與一個活動相關聯的Web服務時,匹配模塊必須選擇一個能與WF前述活動中已經指派的Web服務滿足性能兼容性約束的Web服務。由于幾個Web服務可以指派給一個相同的活動,并且WF可能需要幾個活動并行執行,這一匹配過程更復雜。首先假設包含一
些順序的活動,為了簡單起見,當一個活動在一個序列中多次出現時,把每一次出現看做一次不同的活動。為了實現組合,匹配模塊使用一種叫做組合樹的數據結構來表示所有可能的Web服務組合,組合樹是帶權的。權重表示調用此Web服務所需要的費用,當然也可以是其他指標,用來最后選擇一個最符合標準的組合。一般來講,組合樹的第j層與WF中第j個活動相關聯,第j層的每個節點表示能夠完成第j個活動,并且與其父節點滿足性能兼容性約束的Web服務。因此,組合樹的每一條路徑都指出了一個組合,給出一棵與包含一序列活動{a1,…,an}的WF相關聯的組合樹。匹配模塊只選擇樹中有完整路徑的Web服務組合,即長度為n的路徑。
5 舉例
在此,本文舉一個例子來詳細說明模型中各模塊的作用。假設客戶請求一個旅行計劃的服務,計劃整個旅行過程,包括航班預訂、旅館預訂、汽車預訂和旅游景點門票預訂。由WS Modeler返回的工作流,如圖4所示。
其中:a1表示航班預訂服務;a2表示旅館預訂服務;a3表示汽車預訂服務;a4表示旅游景點門票預訂服務。
通過工作流,WSs locator定位滿足每個活動的Web服務,假設返回結果如表1所示。
表1 由WSs locator定位的Web服務
活動服務
a1WS1,WS2,WS3
a2WS4,WS5,WS6
a3WS7,WS8,WS9
a4WS10,WS11,WS12
本文還假設客戶給出了一系列的安全約束,他要求所有參與組合的Web服務都采用X.509框架進行認證,并且實現活動a1的服務必須采用P3P隱私策略[9],實現活動a2的服務必須采用XACML[16]訪問控制策略,實現活動a3的服務必須采用3DES方法加密,實現活動a4的服務認證請求失敗次數不能超過3次。SVP獲取由WSs locator定位的這些Web服務的安全性能文檔,得到結果如表2所示。
表2 由WSs locator定位的Web服務的安全性能
活動服務安全性能
a1WS1Authentication = X.509
Privacy policy = P3P
WS2Authentication = X.509
Privacy policy = P3P
WS3Authentication = SAML
Encryption=AES
a2WS4Authentication = SAML
Access control = XACML
Signature = RSA
WS5Authentication = X.509
Access control = XACML
Signature = XML-SIG
WS6Authentication = X.509
Access control = XACML
Signature = RSA
a3WS7Authentication = X.509
Encryption = AES
Trust = 5
WS8Authentication =SAML
Encryption = 3DES
Trust = 4
WS9Authentication = X.509
Encryption = 3DES
Trust = 6
a4WS10Authentication = X.509
QoS = 5
WS11Authentication = SAML
QoS = 7
WS12Authentication = X.509
QoS = 8
由general約束,首先從這些服務中去除沒有采用X.509認證的服務,即WS3、WS4、WS8、WS11;再由specific約束,即單個活動所要求的安全約束,從a1中去除未采用P3P隱私策略的服務,從a2中去除未采用XACML訪問控制的服務,從a3中去除未采用3DES加密方法加密的服務。最后剩余的Web服務,如表3所示。
表3 經過安全約束刪減后剩下的Web服務的安全性能和兼容性約束
活動服務安全性能兼容性約束
a1WS1Authentication=X.509Signature= XML-SIG
Privacy policy=P3P
WS2Authentication=X.509
Privacy policy=P3P
a2WS5Authentication=X.509
Access control=XACML
Signature=XML-SIG
WS6Authentication=X.509Trust >6
Access control=XACML
Signature=RSA
a3WS9Authentication=X.509QoS>7
Encryption=3DES
Trust=6
a4WS10Authentication=X.509
QoS=5
WS12Authentication = X.509
QoS=8
Trust和QoS的值只是在這里為了方便表示,自己設置的一個度,也可以采用其他方法表示。
在這里,本文假設只有WS1、WS6和WS9有兼容性約束,最后SVP將此表作為結果發送給matchmaker模塊,該模塊根據兼容性約束,建立帶權的組合樹。這里假設組合服務調用WS1的費用為5,調用WS2的費用為4;WS1調用WS5的費用為2;WS2調用WS5的費用為3,調用WS6的費用為5;WS5調用WS9的費用為4;WS9調用WS12的費用為7。組合樹如圖5所示。
組合樹的第一層是能夠完成活動a1的所有服務,要建立第二層,matchmaker必須驗證滿足活動a1的服務與滿足活動a2的服務的性能兼容性問題。例如a1中的WS1要求a2的服務必須滿足Signature = XML-SIG,即如果活動a1選擇服務WS1來完成,那么a2必須選擇服務WS5來完成。同樣,WS6要求a3的服務必須滿足Trust >6,而滿足a3的服務中沒有滿足此兼容性條件的服務,所以組合不能繼續往下進行,活動a2只能選擇WS5來完成。由圖5可知最后有兩個組合,即{WS1,WS5,WS9,WS12}和{WS2,WS5,WS9,WS12},分別算出兩個組合的整體費用,自動選擇費用低的組合或由服務請求者決定選擇哪一個組合。活動a4所要求的動態約束要在組合執行的過程中才能被驗證。
6 結束語
本文從Web服務組合的安全性來考慮,對文獻[5]中提出的框架進行了改進,以減少參與建立組合樹的Web服務的數量,提高了系統的效率。還可以將可靠性等安全因素加進來,同時也考慮了其他一些非安全性方面的因素,容易進行擴展。當然,如果活動節點增多,服務的數量也會增多,本文提出的方法的優勢也就越明顯。但如果服務請求者要求的安全約束不是很多的話,SVP模塊的作用就不會很突出,該模塊只能從一定程度上進行安全約束的檢查。本文在最后的組合樹中加入了權重,有利于在出現多個組合途徑的情況下選擇最佳組合。由于時間條件限制,本文只是在理論上建立了一個模型,下一步的工作就是將模型加以實現,推廣到實際應用當中。
參考文獻:
[1]ALVES A,ARKIN A,ASKARY S,et al.Web services business process execution language version 2.0[EB/OL].(2007-04)[2008-03-20].http://docs.oasis-open.org/wsbpel/ 2.0/wsbpel-v 2.0.pdf.
[2]NADALIN A,KALER C,MONZILLO R,et al. Web services security:SOAP message security 1.1(WS-Security 2004)[EB/OL].(2006-02)[2008-03-20].http://www.oasis-open. org/ committees/ download.php /16790 /wss-v1.1-spec-os-SOAP Message Security. pdf.
[3]CHARFI A,SCHMELING B,HEIZENREDER A,et al.Reliable,secure, and transacted Web service compositions with AO4BPEL[C]//Proc of IEEE European Conference on Web Services (ECOWS’06).2006.
[4]ZHU Jun-qing,ZHOU Yu,TONG Wei-qin.Access control on the composition of Web services[C]//Proc of International Conference on Next Generation Web Services Practices (NWeSP’06).2006.
[5]CARMINATI B,FERRARI E,HUNG P C K.Secure conscious Web service composition[C]//Proc of IEEE International Conference on Web Services.2006.
[6]CHINNICI R,MOREAU J J,RYMAN A,et al.Web services description language (WSDL) version 2.0[EB/OL].(2007-07)[2008-03-20].http:// www.w3. org/TR/ wsdl20/wsdl20.pdf.
[7]MARTIN D,BURSTEIN M,HOBBS J,et al.OWL-S:semantic markup for Web services[EB/OL]. (2004-11-22)[2008-03-20].http://www.w3. org/ Submission/OWL-S/.
[8]OASIS.SAML 1.0 specification set[EB/OL].(2002)[2008-03-20].http://www. oasis-open .org/ committees/security/.
[9]CRANOR L,LANGHEINRICH M,MARCHIORI M,et al.The platform for privacy preferences 1.0 (P3P1.0) specification[EB/OL].(2002-04)[2008-03-20].http://www.w3.org/TR/ P3P.
[10]CARMINATI B,FERRARI E,BISHOP R,et al.Security conscious Web service composition with semantic Web support[C]//Proc of IEEE International Conference on Web Services.2007.
[11]GUDGIN M,HADLEY M,MENDELSOHN N,et al.SOAP version 1.2 part 1:messaging framework (2nd edition)[EB/OL]. (2007-04)[2008-03-20].http://www. w3.org/TR/ soap12-part1/.
[12]CLEMENT L,HATELY A,RIEGEN C,et al.UDDI version 3.0.2[EB/OL].(2004-10)[2008-03-20].http://www.uddi.org/pubs/uddi_v3.htm.
[13]Grid Resource Allocation Agreement Protocol (GRAAP)WG. Web services agreement specification (WSAgreement) version 2005/09[EB/OL].(2005)[2008-03-20].http: //www.ogf.org/Public_Comment_Docs/Documents /Oct- 2005/ WS-AgreementSpecificationDraft050920.pdf.
[14]MENASC’E D A.QoS issues in Web services[J].IEEE Internet Computing,2002,6(6):72-75.
[15]曹利培,劉靜,繆淮扣.基于圖的Web服務組合優化的研究[J].計算機科學,2007,34(2):96-98.
[16]OASIS extensible access control markup language (XACML) version 2.0[EB/OL].(2005) [2008-03-20].http://docs.oasis- open.org/ xacml/2.0/access_control- xacml-2.0-core-spec-os.pdf.