文獻標識碼: A
文章編號: 0258-7998(2011)10-0131-03
網格環(huán)境跨越多個不同地點和不同自治域,每個自治域的訪問控制策略和需求互不相同。大多數(shù)網格系統(tǒng)的訪問控制是通過擴展傳統(tǒng)的自主訪問控制(DAC)、強制訪問控制(MAC)或基于角色的訪問控制(RBAC)而來的。在網格環(huán)境下,應用這類訪問控制機制缺乏安全控制的靈活性。網格環(huán)境異構、動態(tài)和多域的特點決定了它需要易于擴展的、動態(tài)的、靈活的和細粒度的訪問控制機制。
為了滿足網格環(huán)境的訪問控制需求,本文提出了基于XACML和SAML的動態(tài)授權訪問控制模型。采用XACML來描述訪問授權策略,實現(xiàn)策略的標準化,便于系統(tǒng)的擴展及不同應用系統(tǒng)之間的溝通,并具有很好的跨平臺性??紤]到網格環(huán)境下資源的動態(tài)性,動態(tài)地為用戶授予權限,實現(xiàn)訪問控制管理。為在不同實體之間建立安全通信機制,采用安全聲明標記語言SAML在不同自治域之間交換認證、屬性和授權信息。
1 XACML
可擴展訪問控制標記語言XACML[1](Extensible Access Control Markup Language)是由國際標準化組織OASIS安全服務協(xié)會提出的一種通用的用于保護資源的訪問控制策略語言和訪問決策語言。策略語言用于定義通用的訪問控制需求,最終生成一個拒絕或許可的決策。訪問決策語言用于設置是否允許對某些服務器資源的訪問。
XACML策略機制主要由策略管理點PAP(Policy Administration Point)、策略信息點PIP(Policy Information Point)、策略決策點PDP(Policy Decision Point)和策略執(zhí)行點PEP(Policy Enforcement Point)等模塊構成,能夠在分布式的環(huán)境中根據資源、請求者和環(huán)境屬性動態(tài)地評估訪問請求,并進行授權決策;XACML請求和響應格式定義了PDP與PEP之間的接口。PEP發(fā)布請求和處理響應;PDP根據資源的訪問策略、請求者的屬性和環(huán)境屬性等,評估請求并返回一個響應。
XACML用于表示控制信息訪問的規(guī)則和策略,具備可移植、可擴展、支持參數(shù)化的策略描述和多樣化的策略組合。這些規(guī)則和策略與整體訪問控制和保密策略的上下文的目標資源有關。其目的是定義一個XML規(guī)范來表達對互聯(lián)網上的信息進行訪問的策略。此規(guī)范的核心思想是圍繞一個四元組<subject、object、action、condition>來定義授權策略,其中subject代表授權實體,object代表資源,action代表對資源的操作,condition是關于請求者可以對特定資源采取特定操作的先決條件的聲明。
XACML策略格式如下:
<Policy>
<Target>目標</Target>
<Rule Effect= “Permit/Deny”>
<Target>目標</Target>
<Condition>執(zhí)行條件</Condition>
</Rule>
<Obligations>
<Obligation FulfilOn= “Permit/ Deny”>…</Obligation>
</Obligations>
</Policy>
2 SAML框架
SAML是由OASIS制定的基于XML實現(xiàn)Web服務互操作的安全訪問控制框架體系和協(xié)議,其框架如圖1所示。SAML建立了一種獨立于協(xié)議和平臺的驗證和授權交換機制。具有XML跨平臺數(shù)據表述的特性。SAML利用XML對認證和授權信息進行編碼,實現(xiàn)Internet環(huán)境中異構安全系統(tǒng)間信息的交換和處理,從而為系統(tǒng)間的應用提供協(xié)同的安全服務。SAML主要由兩部分構成:聲明和請求/響應協(xié)議。

聲明是SAML的基本數(shù)據對象,是對主體(用戶、角色等)的安全信息(身份、權限等)的XML描述形式,由認證授權權威機構頒發(fā),確保其有效性。SAML定義了認證、授權和屬性三種聲明。認證聲明描述與認證成功事件相關的信息(如認證的機構、方式和有效期等);授權決議聲明描述許可權查詢和檢查的結果,此結果可以是接收或拒絕主體(用戶、角色等)對資源的訪問請求;屬性聲明描述與主體(用戶、角色等)的認證和授權決議相關的信息(如主體的標志、所屬用戶組、角色、可訪問的資源及權限等)。聲明實際上就是一組由簽發(fā)者提供的包含認證、屬性和授權決議信息的集合。
請求/響應協(xié)議規(guī)定了兩點間共享SAML數(shù)據所需交換的消息種類和格式,而兩點間的消息傳輸通過與具體傳輸協(xié)議的綁定實現(xiàn),因此可與多種標準的傳輸協(xié)議或XML消息交換架構相綁定(如HTTP、MIME、SMTP、FTP,以及SOAP、Biztalk、ebXML等),使得SAML具有良好的開放性和可擴展性[2-3]。SAML當前可提供使用的綁定協(xié)議是SMAL/HTTP協(xié)議和SAML/SOAP協(xié)議。例如SAML/SOAP協(xié)議說明了如何使用SOAP消息發(fā)送和接收SAML請求和響應。
3 XACML和SAML相關性分析[4]
XACML定義了一種創(chuàng)建進行授權決策所需的規(guī)則、策略和策略集的機制,提供了一個標準化的細粒度的訪問控制決策模型,但它沒有定義這些構件之間的通信協(xié)議和機制。需要SAML來定義聲明、協(xié)議和傳輸機制。
SAML標準提供了允許第三方實體請求驗證和授權信息的接口,并提供策略決策點PDP和策略執(zhí)行點PEP處理用戶身份驗證和授權。策略決策點對用戶的權限進行判斷,并發(fā)出授權聲明;策略執(zhí)行點接收用戶請求,并將通過身份認證的用戶信息發(fā)送到策略決策點,并接收來自策略決策點的授權決策信息,進行訪問控制的實施。
因此,XACML和SAML相結合才能提供安全的訪問控制解決方案。為了更好地將XACML與SAML結合,允許PEP利用SAML請求和響應語法來完全支持XACML請求上下文和響應上下文。OASIS發(fā)布了在XACML中使用SAML的文檔規(guī)范[5]。規(guī)范定義了多個SAML擴展,并且規(guī)定了XACML中各構件之間的通信格式和機制。結合SAML的XACML訪問控制體系結構如圖2所示。其中SAQ=SAMLAttributeQuery,SAS=SAMLAttributeStatement。

圖2中有6種Query和Statement,其含義和功能描述如下:
(1)AQ(AttributeQuery):一種標準的SAML請求,用于從屬性權威AA(Attribute Authority)請求一個或多個屬性。
(2)AS(AttributeStatement):一種標準的SAML聲明,包含一個或多個屬性。這種聲明用于來自屬性權威的SAML響應中,或者作為一種將屬性存儲在Attribute Repository (屬性存儲器)的格式,用于SAML聲明中。
(3)XPQ(XACMLPolicyQuery):一種SAML請求的擴展,用于從策略管理點處請求一個或多個策略。
(4)XPS(XACMLPolicyStatement):一種SAML聲明的擴展。用于來自策略管理點的SAML響應中,或者作為一種將策略存儲在策略存儲器(Policy Repository)的格式,用于SAML聲明中。
(5)XADQ(XACMLAuthorizationDecisionQuery):一種SAML請求的擴展,用于PEP從XACML PDP處請求授權決策。
(6)XADS(XACMLAuthorizationDecisionStatement):一種SAML聲明的擴展。用于來自XACML PDP的SAML響應中;也可用于用做憑證的SAML聲明中。
有了這些SAML的擴展,PDP就可以直接利用SAML形式的請求和響應與XACML的各構件之間直接通信,獲取所需的信息。
4 基于XACML的授權訪問控制模型
4.1 訪問控制模型體系結構
基于對XACML和SAML技術的分析,建立由SAML服務器、一個或多個屬性權威AA、策略執(zhí)行模塊、策略決策模塊、策略管理模塊、策略信息收集模塊、XACML上下文處理模塊、UDDI服務等組件組成的訪問控制體系結構,如圖3所示。

策略執(zhí)行模塊執(zhí)行訪問控制策略;負責監(jiān)聽轉發(fā)訪問請求并更新屬性,實施策略決策模塊對訪問請求的授予或拒絕決定。
SAML服務器負責接收來自策略執(zhí)行模塊的認證請求〈AuthnRequest〉,并產生和發(fā)送相應的認證聲明。SAML利用UDDI服務找到相應的屬性權威;接收來自策略決策組件的屬性請求〈AttributeQuery〉并轉發(fā)給屬性權威,接收來自屬性權威的SAML屬性聲明,并將其轉換為XACML的屬性形式。
屬性權威負責接收來自SAML服務器的屬性請求,產生并發(fā)送相應的屬性聲明,包含若干〈AttributeStatement〉。
統(tǒng)一描述、發(fā)現(xiàn)和集成協(xié)議UDDI[6](Universal Description Discovery and Integration)是一套基于Web的、分布式的、為Web服務提供信息注冊中心的實現(xiàn)標準規(guī)范;同時也包含一組使企業(yè)能將自身提供的Web服務注冊,以使別的企業(yè)能夠發(fā)現(xiàn)的訪問協(xié)議實現(xiàn)標準。這種應用程序能夠在后臺自動訪問UDDI目錄,尋找它們需要完成業(yè)務處理的信息。UDDI服務給相應的構件提供請求服務,以便SAML利用主體身份找到相應的屬性權威。
XACML上下文處理器用于將XACML核心語言與應用程序環(huán)境及其他內容隔離。XACML上下文提供了PEP與PDP之間信息交換的模式,無論應用程序的環(huán)境是XACML、SAML,還是.NET等,都能夠將它們轉換為XACML的上下文。使PDP對XACML請求和屬性信息進行解析和判決, 而與具體的應用完全脫離,極大地提高了靈活性。策略信息收集點PIP的存在也使得XACML能實施訪問請求、決策結果與決策響應之間格式的轉換。
策略決策模塊的主要功能是依據訪問控制策略、上下文信息等對主體的請求作出授權決策。策略決策模塊根據主體、資源和環(huán)境的屬性,以及資源的訪問策略(此策略以XACMLPolicyQuery和XACMLPolicyStatement的方式從策略管理模塊獲取),向SAML服務器發(fā)送屬性請求〈AttributeQuery〉,獲取相關授權決策所需的屬性進行授權決策,并產生和發(fā)送相應的授權決策聲明,包含若干〈XACMLAuthorizationDecisionStatement〉,將決策結果返回給PEP。
4.2 基于XACML的授權訪問控制模型實現(xiàn)機制
訪問發(fā)起者發(fā)起訪問請求,策略執(zhí)行模塊從訪問請求者獲得訪問請求,向SAML服務器發(fā)送SAML認證請求〈AuthnRequest〉。
SAML服務器對用戶進行認證(用戶名/口令認證或X.509證書認證等),產生并返回SAML認證聲明。SAML服務器利用系統(tǒng)提供的UDDI服務,找到相應的屬性權威(其URI)。
上下文處理模塊向策略信息收集模塊提出屬性請求。策略信息收集模塊從主體、資源、環(huán)境功能模塊獲取相關屬性,返回給上下文處理模塊。上下文處理模塊將這些屬性和資源信息以及請求信息做一定的處理,向策略決策模塊提出包含請求主體身份、請求的資源(URI)和請求的操作等信息的授權決策請求<XACMLAuthorizationDecisionQuery>。
策略決策模塊根據策略管理模塊提供的策略對決策請求作出決定,并返回結果。
上下文處理模塊將結果返回策略執(zhí)行模塊,由策略執(zhí)行模塊實施決策結果,向服務提供模塊提交任務要求或拒絕用戶訪問請求。
利用XACML創(chuàng)建策略和規(guī)則,以SAML聲明和請求/響應機制為載體,傳遞用戶的認證和授權信息。根據主體、資源、環(huán)境的屬性進行訪問控制決策,動態(tài)地評估訪問請求,控制信息的訪問,創(chuàng)建更加細粒度的訪問控制,具有可擴展性和靈活性的特點,同時滿足網格環(huán)境下訪問控制的安全性要求。
參考文獻
[1] OASIS. Extensible access control markup language committee draft 04[S].2004.
[2] 鐘迅科. 基于SAML實現(xiàn)Web服務的單點登錄[J].現(xiàn)代計算機,2004,185(1):32-36.
[3] GROB T. Security analysis of the SAML single sign on browser/artifact profile[R]. IBM Zurich Research Laboratory Zurich, Switzerland, 2002.
[4] VERMA M.Control information access with XACML[EB/OL]. http://www.ibm.com/developerworks/xml/library/x-xacml/sidefile1.html.2004.
[5] ANDERSON. A core and hierarchical role based access control profile of XACML, version2.0, committee draft 01 [EB/OL].http://docs.Oasis-open.org/xacml/access_controlxacml-2. 0-rbac_profile1-spec-cd-01.pdf.2004.
[6] UDDI. UDDI technical white paper[DB/OL]. http://www.uddi.org/pubs/Iru_UDDI_Technical_White_Paper.pdf,2000.
