《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 通信與網(wǎng)絡(luò) > 設(shè)計(jì)應(yīng)用 > 網(wǎng)格服務(wù)中基于XACML和SAML的安全訪問控制
網(wǎng)格服務(wù)中基于XACML和SAML的安全訪問控制
來源:電子技術(shù)應(yīng)用2011年第10期
陶宇煒, 封紅旗, 符彥惟
(常州大學(xué) 信息中心, 江蘇 常州 213164)
摘要: 為了解決網(wǎng)格環(huán)境下資源訪問控制存在的安全性問題,通過分析可擴(kuò)展訪問標(biāo)記語言XACML、安全聲明標(biāo)記語言SAML及其相關(guān)技術(shù),提出了一個(gè)基于XACML和SAML的訪問控制模型。模型采用可擴(kuò)展訪問標(biāo)記語言XACML描述訪問控制的授權(quán)策略,以SAML聲明為載體傳遞用戶認(rèn)證和授權(quán)信息,提供安全、細(xì)粒度的訪問控制,具有較高的靈活性和可擴(kuò)展性。
中圖分類號(hào): TP393
文獻(xiàn)標(biāo)識(shí)碼: A
文章編號(hào): 0258-7998(2011)10-0131-03
Security access control based on XACML and SAML in grid service
Tao Yuwei, Feng Hongqi, Fu Yanwei
Information Center Changzhou University,Changzhou 213164,China
Abstract: In order to solve the security problem of resource access control in the grid environment, this paper presents an access control model based on XACML and SAML, which through analyzing the XACML and SAML. The model describes authorization policy about access control by XACML, the SAML assertion is used to exchange user’s authentication and authorization information. The model provides security and fine-grained access control, the frame ensure flexibility and extensibility of the model.
Key words : XACML;SAML;request/response;access control


 網(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)境的訪問控制需求,本文提出了基于XACMLSAML的動(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= &ldquo;Permit/Deny&rdquo;>
  <Target>目標(biāo)</Target>
  <Condition>執(zhí)行條件</Condition>
  </Rule>
  <Obligations>
  <Obligation FulfilOn= &ldquo;Permit/ Deny&rdquo;>&hellip;</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.

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。