文獻(xiàn)標(biāo)識(shí)碼: A
文章編號(hào): 0258-7998(2011)10-0131-03
網(wǎng)格環(huán)境跨越多個(gè)不同地點(diǎn)和不同自治域,每個(gè)自治域的訪問控制策略和需求互不相同。大多數(shù)網(wǎng)格系統(tǒng)的訪問控制是通過擴(kuò)展傳統(tǒng)的自主訪問控制(DAC)、強(qiáng)制訪問控制(MAC)或基于角色的訪問控制(RBAC)而來的。在網(wǎng)格環(huán)境下,應(yīng)用這類訪問控制機(jī)制缺乏安全控制的靈活性。網(wǎng)格環(huán)境異構(gòu)、動(dòng)態(tài)和多域的特點(diǎn)決定了它需要易于擴(kuò)展的、動(dòng)態(tài)的、靈活的和細(xì)粒度的訪問控制機(jī)制。
為了滿足網(wǎng)格環(huán)境的訪問控制需求,本文提出了基于XACML和SAML的動(dòng)態(tài)授權(quán)訪問控制模型。采用XACML來描述訪問授權(quán)策略,實(shí)現(xiàn)策略的標(biāo)準(zhǔn)化,便于系統(tǒng)的擴(kuò)展及不同應(yīng)用系統(tǒng)之間的溝通,并具有很好的跨平臺(tái)性。考慮到網(wǎng)格環(huán)境下資源的動(dòng)態(tài)性,動(dòng)態(tài)地為用戶授予權(quán)限,實(shí)現(xiàn)訪問控制管理。為在不同實(shí)體之間建立安全通信機(jī)制,采用安全聲明標(biāo)記語言SAML在不同自治域之間交換認(rèn)證、屬性和授權(quán)信息。
1 XACML
可擴(kuò)展訪問控制標(biāo)記語言XACML[1](Extensible Access Control Markup Language)是由國際標(biāo)準(zhǔn)化組織OASIS安全服務(wù)協(xié)會(huì)提出的一種通用的用于保護(hù)資源的訪問控制策略語言和訪問決策語言。策略語言用于定義通用的訪問控制需求,最終生成一個(gè)拒絕或許可的決策。訪問決策語言用于設(shè)置是否允許對(duì)某些服務(wù)器資源的訪問。
XACML策略機(jī)制主要由策略管理點(diǎn)PAP(Policy Administration Point)、策略信息點(diǎn)PIP(Policy Information Point)、策略決策點(diǎn)PDP(Policy Decision Point)和策略執(zhí)行點(diǎn)PEP(Policy Enforcement Point)等模塊構(gòu)成,能夠在分布式的環(huán)境中根據(jù)資源、請(qǐng)求者和環(huán)境屬性動(dòng)態(tài)地評(píng)估訪問請(qǐng)求,并進(jìn)行授權(quán)決策;XACML請(qǐng)求和響應(yīng)格式定義了PDP與PEP之間的接口。PEP發(fā)布請(qǐng)求和處理響應(yīng);PDP根據(jù)資源的訪問策略、請(qǐng)求者的屬性和環(huán)境屬性等,評(píng)估請(qǐng)求并返回一個(gè)響應(yīng)。
XACML用于表示控制信息訪問的規(guī)則和策略,具備可移植、可擴(kuò)展、支持參數(shù)化的策略描述和多樣化的策略組合。這些規(guī)則和策略與整體訪問控制和保密策略的上下文的目標(biāo)資源有關(guān)。其目的是定義一個(gè)XML規(guī)范來表達(dá)對(duì)互聯(lián)網(wǎng)上的信息進(jìn)行訪問的策略。此規(guī)范的核心思想是圍繞一個(gè)四元組<subject、object、action、condition>來定義授權(quán)策略,其中subject代表授權(quán)實(shí)體,object代表資源,action代表對(duì)資源的操作,condition是關(guān)于請(qǐng)求者可以對(duì)特定資源采取特定操作的先決條件的聲明。
XACML策略格式如下:
<Policy>
<Target>目標(biāo)</Target>
<Rule Effect= “Permit/Deny”>
<Target>目標(biāo)</Target>
<Condition>執(zhí)行條件</Condition>
</Rule>
<Obligations>
<Obligation FulfilOn= “Permit/ Deny”>…</Obligation>
</Obligations>
</Policy>
2 SAML框架
SAML是由OASIS制定的基于XML實(shí)現(xiàn)Web服務(wù)互操作的安全訪問控制框架體系和協(xié)議,其框架如圖1所示。SAML建立了一種獨(dú)立于協(xié)議和平臺(tái)的驗(yàn)證和授權(quán)交換機(jī)制。具有XML跨平臺(tái)數(shù)據(jù)表述的特性。SAML利用XML對(duì)認(rèn)證和授權(quán)信息進(jìn)行編碼,實(shí)現(xiàn)Internet環(huán)境中異構(gòu)安全系統(tǒng)間信息的交換和處理,從而為系統(tǒng)間的應(yīng)用提供協(xié)同的安全服務(wù)。SAML主要由兩部分構(gòu)成:聲明和請(qǐng)求/響應(yīng)協(xié)議。
聲明是SAML的基本數(shù)據(jù)對(duì)象,是對(duì)主體(用戶、角色等)的安全信息(身份、權(quán)限等)的XML描述形式,由認(rèn)證授權(quán)權(quán)威機(jī)構(gòu)頒發(fā),確保其有效性。SAML定義了認(rèn)證、授權(quán)和屬性三種聲明。認(rèn)證聲明描述與認(rèn)證成功事件相關(guān)的信息(如認(rèn)證的機(jī)構(gòu)、方式和有效期等);授權(quán)決議聲明描述許可權(quán)查詢和檢查的結(jié)果,此結(jié)果可以是接收或拒絕主體(用戶、角色等)對(duì)資源的訪問請(qǐng)求;屬性聲明描述與主體(用戶、角色等)的認(rèn)證和授權(quán)決議相關(guān)的信息(如主體的標(biāo)志、所屬用戶組、角色、可訪問的資源及權(quán)限等)。聲明實(shí)際上就是一組由簽發(fā)者提供的包含認(rèn)證、屬性和授權(quán)決議信息的集合。
請(qǐng)求/響應(yīng)協(xié)議規(guī)定了兩點(diǎn)間共享SAML數(shù)據(jù)所需交換的消息種類和格式,而兩點(diǎn)間的消息傳輸通過與具體傳輸協(xié)議的綁定實(shí)現(xiàn),因此可與多種標(biāo)準(zhǔn)的傳輸協(xié)議或XML消息交換架構(gòu)相綁定(如HTTP、MIME、SMTP、FTP,以及SOAP、Biztalk、ebXML等),使得SAML具有良好的開放性和可擴(kuò)展性[2-3]。SAML當(dāng)前可提供使用的綁定協(xié)議是SMAL/HTTP協(xié)議和SAML/SOAP協(xié)議。例如SAML/SOAP協(xié)議說明了如何使用SOAP消息發(fā)送和接收SAML請(qǐng)求和響應(yīng)。
3 XACML和SAML相關(guān)性分析[4]
XACML定義了一種創(chuàng)建進(jìn)行授權(quán)決策所需的規(guī)則、策略和策略集的機(jī)制,提供了一個(gè)標(biāo)準(zhǔn)化的細(xì)粒度的訪問控制決策模型,但它沒有定義這些構(gòu)件之間的通信協(xié)議和機(jī)制。需要SAML來定義聲明、協(xié)議和傳輸機(jī)制。
SAML標(biāo)準(zhǔn)提供了允許第三方實(shí)體請(qǐng)求驗(yàn)證和授權(quán)信息的接口,并提供策略決策點(diǎn)PDP和策略執(zhí)行點(diǎn)PEP處理用戶身份驗(yàn)證和授權(quán)。策略決策點(diǎn)對(duì)用戶的權(quán)限進(jìn)行判斷,并發(fā)出授權(quán)聲明;策略執(zhí)行點(diǎn)接收用戶請(qǐng)求,并將通過身份認(rèn)證的用戶信息發(fā)送到策略決策點(diǎn),并接收來自策略決策點(diǎn)的授權(quán)決策信息,進(jìn)行訪問控制的實(shí)施。
因此,XACML和SAML相結(jié)合才能提供安全的訪問控制解決方案。為了更好地將XACML與SAML結(jié)合,允許PEP利用SAML請(qǐng)求和響應(yīng)語法來完全支持XACML請(qǐng)求上下文和響應(yīng)上下文。OASIS發(fā)布了在XACML中使用SAML的文檔規(guī)范[5]。規(guī)范定義了多個(gè)SAML擴(kuò)展,并且規(guī)定了XACML中各構(gòu)件之間的通信格式和機(jī)制。結(jié)合SAML的XACML訪問控制體系結(jié)構(gòu)如圖2所示。其中SAQ=SAMLAttributeQuery,SAS=SAMLAttributeStatement。
圖2中有6種Query和Statement,其含義和功能描述如下:
(1)AQ(AttributeQuery):一種標(biāo)準(zhǔn)的SAML請(qǐng)求,用于從屬性權(quán)威AA(Attribute Authority)請(qǐng)求一個(gè)或多個(gè)屬性。
(2)AS(AttributeStatement):一種標(biāo)準(zhǔn)的SAML聲明,包含一個(gè)或多個(gè)屬性。這種聲明用于來自屬性權(quán)威的SAML響應(yīng)中,或者作為一種將屬性存儲(chǔ)在Attribute Repository (屬性存儲(chǔ)器)的格式,用于SAML聲明中。
(3)XPQ(XACMLPolicyQuery):一種SAML請(qǐng)求的擴(kuò)展,用于從策略管理點(diǎn)處請(qǐng)求一個(gè)或多個(gè)策略。
(4)XPS(XACMLPolicyStatement):一種SAML聲明的擴(kuò)展。用于來自策略管理點(diǎn)的SAML響應(yīng)中,或者作為一種將策略存儲(chǔ)在策略存儲(chǔ)器(Policy Repository)的格式,用于SAML聲明中。
(5)XADQ(XACMLAuthorizationDecisionQuery):一種SAML請(qǐng)求的擴(kuò)展,用于PEP從XACML PDP處請(qǐng)求授權(quán)決策。
(6)XADS(XACMLAuthorizationDecisionStatement):一種SAML聲明的擴(kuò)展。用于來自XACML PDP的SAML響應(yīng)中;也可用于用做憑證的SAML聲明中。
有了這些SAML的擴(kuò)展,PDP就可以直接利用SAML形式的請(qǐng)求和響應(yīng)與XACML的各構(gòu)件之間直接通信,獲取所需的信息。
4 基于XACML的授權(quán)訪問控制模型
4.1 訪問控制模型體系結(jié)構(gòu)
基于對(duì)XACML和SAML技術(shù)的分析,建立由SAML服務(wù)器、一個(gè)或多個(gè)屬性權(quán)威AA、策略執(zhí)行模塊、策略決策模塊、策略管理模塊、策略信息收集模塊、XACML上下文處理模塊、UDDI服務(wù)等組件組成的訪問控制體系結(jié)構(gòu),如圖3所示。
策略執(zhí)行模塊執(zhí)行訪問控制策略;負(fù)責(zé)監(jiān)聽轉(zhuǎn)發(fā)訪問請(qǐng)求并更新屬性,實(shí)施策略決策模塊對(duì)訪問請(qǐng)求的授予或拒絕決定。
SAML服務(wù)器負(fù)責(zé)接收來自策略執(zhí)行模塊的認(rèn)證請(qǐng)求〈AuthnRequest〉,并產(chǎn)生和發(fā)送相應(yīng)的認(rèn)證聲明。SAML利用UDDI服務(wù)找到相應(yīng)的屬性權(quán)威;接收來自策略決策組件的屬性請(qǐng)求〈AttributeQuery〉并轉(zhuǎn)發(fā)給屬性權(quán)威,接收來自屬性權(quán)威的SAML屬性聲明,并將其轉(zhuǎn)換為XACML的屬性形式。
屬性權(quán)威負(fù)責(zé)接收來自SAML服務(wù)器的屬性請(qǐng)求,產(chǎn)生并發(fā)送相應(yīng)的屬性聲明,包含若干〈AttributeStatement〉。
統(tǒng)一描述、發(fā)現(xiàn)和集成協(xié)議UDDI[6](Universal Description Discovery and Integration)是一套基于Web的、分布式的、為Web服務(wù)提供信息注冊(cè)中心的實(shí)現(xiàn)標(biāo)準(zhǔn)規(guī)范;同時(shí)也包含一組使企業(yè)能將自身提供的Web服務(wù)注冊(cè),以使別的企業(yè)能夠發(fā)現(xiàn)的訪問協(xié)議實(shí)現(xiàn)標(biāo)準(zhǔn)。這種應(yīng)用程序能夠在后臺(tái)自動(dòng)訪問UDDI目錄,尋找它們需要完成業(yè)務(wù)處理的信息。UDDI服務(wù)給相應(yīng)的構(gòu)件提供請(qǐng)求服務(wù),以便SAML利用主體身份找到相應(yīng)的屬性權(quán)威。
XACML上下文處理器用于將XACML核心語言與應(yīng)用程序環(huán)境及其他內(nèi)容隔離。XACML上下文提供了PEP與PDP之間信息交換的模式,無論應(yīng)用程序的環(huán)境是XACML、SAML,還是.NET等,都能夠?qū)⑺鼈冝D(zhuǎn)換為XACML的上下文。使PDP對(duì)XACML請(qǐng)求和屬性信息進(jìn)行解析和判決, 而與具體的應(yīng)用完全脫離,極大地提高了靈活性。策略信息收集點(diǎn)PIP的存在也使得XACML能實(shí)施訪問請(qǐng)求、決策結(jié)果與決策響應(yīng)之間格式的轉(zhuǎn)換。
策略決策模塊的主要功能是依據(jù)訪問控制策略、上下文信息等對(duì)主體的請(qǐng)求作出授權(quán)決策。策略決策模塊根據(jù)主體、資源和環(huán)境的屬性,以及資源的訪問策略(此策略以XACMLPolicyQuery和XACMLPolicyStatement的方式從策略管理模塊獲取),向SAML服務(wù)器發(fā)送屬性請(qǐng)求〈AttributeQuery〉,獲取相關(guān)授權(quán)決策所需的屬性進(jìn)行授權(quán)決策,并產(chǎn)生和發(fā)送相應(yīng)的授權(quán)決策聲明,包含若干〈XACMLAuthorizationDecisionStatement〉,將決策結(jié)果返回給PEP。
4.2 基于XACML的授權(quán)訪問控制模型實(shí)現(xiàn)機(jī)制
訪問發(fā)起者發(fā)起訪問請(qǐng)求,策略執(zhí)行模塊從訪問請(qǐng)求者獲得訪問請(qǐng)求,向SAML服務(wù)器發(fā)送SAML認(rèn)證請(qǐng)求〈AuthnRequest〉。
SAML服務(wù)器對(duì)用戶進(jìn)行認(rèn)證(用戶名/口令認(rèn)證或X.509證書認(rèn)證等),產(chǎn)生并返回SAML認(rèn)證聲明。SAML服務(wù)器利用系統(tǒng)提供的UDDI服務(wù),找到相應(yīng)的屬性權(quán)威(其URI)。
上下文處理模塊向策略信息收集模塊提出屬性請(qǐng)求。策略信息收集模塊從主體、資源、環(huán)境功能模塊獲取相關(guān)屬性,返回給上下文處理模塊。上下文處理模塊將這些屬性和資源信息以及請(qǐng)求信息做一定的處理,向策略決策模塊提出包含請(qǐng)求主體身份、請(qǐng)求的資源(URI)和請(qǐng)求的操作等信息的授權(quán)決策請(qǐng)求<XACMLAuthorizationDecisionQuery>。
策略決策模塊根據(jù)策略管理模塊提供的策略對(duì)決策請(qǐng)求作出決定,并返回結(jié)果。
上下文處理模塊將結(jié)果返回策略執(zhí)行模塊,由策略執(zhí)行模塊實(shí)施決策結(jié)果,向服務(wù)提供模塊提交任務(wù)要求或拒絕用戶訪問請(qǐng)求。
利用XACML創(chuàng)建策略和規(guī)則,以SAML聲明和請(qǐng)求/響應(yīng)機(jī)制為載體,傳遞用戶的認(rèn)證和授權(quán)信息。根據(jù)主體、資源、環(huán)境的屬性進(jìn)行訪問控制決策,動(dòng)態(tài)地評(píng)估訪問請(qǐng)求,控制信息的訪問,創(chuàng)建更加細(xì)粒度的訪問控制,具有可擴(kuò)展性和靈活性的特點(diǎn),同時(shí)滿足網(wǎng)格環(huán)境下訪問控制的安全性要求。
參考文獻(xiàn)
[1] OASIS. Extensible access control markup language committee draft 04[S].2004.
[2] 鐘迅科. 基于SAML實(shí)現(xiàn)Web服務(wù)的單點(diǎn)登錄[J].現(xiàn)代計(jì)算機(jī),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.