999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于XACML的Web服務訪問控制模型

2007-01-01 00:00:00史毓達沈海波
計算機應用研究 2007年6期

摘 要:為克服基于身份授權的粗粒度缺點,增強系統的互操作性和適應Web服務的特性,提出了基于XACML并結合RBAC以及SAML的Web服務訪問控制系統模型。采用基于用戶、資源和環境屬性而不是用戶身份的授權機制,可提供更細粒度的訪問控制和保護隱私;采用XACML、SAML標準,既可滿足分布式環境下的互操作性,又特別適合于Web服務的動態性、異構性等特點。

關鍵詞:Web服務; 可擴展訪問控制標記語言; 安全聲明標記語言; 基于角色的訪問控制

中圖分類號:TP393文獻標志碼:A

文章編號:1001-3695(2007)06-0087-04

0 引言

Web服務是一種嶄新的分布式計算模式,基于一系列開放的標準技術,如SOAP、UDDI和WSDL。其松散耦合、語言中立、平臺無關性、開放性將使它成為下一代電子商務的框架。它通過利用現存的Web框架為不同平臺之間建立了互操作;但同時,Web服務帶來了傳統的安全模型不能處理的許多新的安全挑戰。最主要的挑戰是發展訪問控制模型,使之能提供基于內容、與上下文相關的訪問,并能處理主體和客體的異構性、動態性,適合于分布式的動態變化環境。這意味著,訪問控制模型應能捕獲與安全相關的內容和上下文信息,如時間、位置、環境狀態等,并將它們用于訪問控制決策中。同時,還要能根據用戶角色的動態變化,適時更新訪問控制決策。

XACML(eXtensible Access Control Markup Language,可擴展訪問控制標記語言)[1]定義了一種通用的用于保護資源的策略語言和一種訪問決策語言,并且與基于角色(或基于屬性)的授權機制相結合,提供對資源的細粒度訪問控制,為建立Web服務的訪問控制模型提供了技術支持。但當XACML的構件分布在不同地方時,XACML沒有定義這些構件之間的通信協議。SAML(Security Assertion Markup Language,安全聲明標記語言)[2]可用于在業務伙伴之間(不同管理域)交換認證、屬性和授權信息,為在不同實體之間建立安全通信提供了通信協議。因此,XACML和SAML的結合能為Web服務提供一個完整的授權解決方案。

本文在分析和研究基于XACML的訪問控制機制的基礎上,提出了一種基于XACML和SAML,并結合了RBAC(RoleBased Access Control,基于角色的訪問控制)[3]授權機制的訪問控制系統模型,并詳細說明其工作流程。

1 基于XACML的訪問控制機制分析

1.1 基于XACML的訪問控制體系結構

XACML定義了一種通用的用于保護資源的策略語言和一種訪問決策語言,并定義了基于PAP(Policy Administration Point,策略管理點)、PIP(Policy Information Point,策略信息點)、PDP(Policy Decision Point,策略決策點)和PEP(Policy Enforcement Point,策略執行點)等構件的體系結構,能夠在分布式的環境中根據資源、請求者和環境屬性(而不僅僅是局部身份)動態地評估訪問請求,并進行授權決策。XACML 2.0已于2005年3月2日獲得OASIS批準,正式成為OASIS標準。其體系結構如圖1所示。

XACML定義的策略語言和訪問決策語言主要包括三個高層的策略元素:rule(規則)、policy(策略)和policyset(策略集)。每條rule由condition(條件)、effect(結果)、target(目標)組成;policy由目標、規則、規則組合算法等組成;三個高層元素均包含target元素。target由subject(主體)、resource(資源)、action(動作)組成。XACML提供的策略語言允許管理員定義訪問控制需求,以便獲取所需的應用資源。語言和模式支持包括數據類型、函數和允許定義復雜(或簡單)規則組合邏輯。XACML提供的訪問決策語言,用于描述對資源運行時的請求。當確定了保護資源的策略后,函數會將請求中的屬性與包含在策略規則中的屬性進行比較;最終生成一個許可或拒絕決策。

圖1 XACML訪問控制系統構件和流程

另外,XACML還定義了問詢策略系統的請求(XACML請求)和響應(XACML響應)格式,可構成一個問詢(Query)來判斷一個動作(Action)是否被允許執行,并對結果進行解釋。請求和響應格式定義了PDP與PEP之間的接口。PEP發布請求和處理響應;PDP根據資源的訪問策略、請求者的屬性和環境屬性等,評估請求并返回一個響應。

盡管XACML也有與其他策略描述語言同樣的要素,如訪問目標、主體(訪問者)、動作和規則,但與以往的策略語言相比,XACML是基于XML標準的,具有能夠同時被人和計算機識別的特點,并且提供了一個標準化的訪問控制決策模型。由于它充分考慮了主體、資源和環境的屬性,其資源訪問策略是基于主體、資源和環境的屬性,而不是基于請求者的身份,可以提供比基于身份的、簡單地拒絕訪問或授權訪問更細粒度的控制訪問機制。XACML 不但處理授權請求,還定義了一種機制來創建進行授權決策所需的規則、策略和策略集的完整基礎設施。特別地,它可利用規則組合算法將來自不同授權實體的多個策略結合成唯一可用的策略集,為位于分布式系統中的資源進行訪問控制決策;而且單個訪問策略可被用于分布在不同管理域的異構資源。目前,早期的基于身份和專用策略語言的訪問控制系統開發商都紛紛表示,采用XACML作為其策略決策語言[5]。

1.2 與SAML的結合

SAML 是面向基于XML的Web服務架構,用于在Internet上的業務伙伴之間(位于不同管理域)交換認證和授權等安全信息。安全信息用關于主體(Subject,指用戶或Web服務等)的聲明(Assertion)形式來表達,聲明包含認證信息、主體的屬性和有關資源的授權決策等信息。聲明由SAML權威發布和管理。這些權威包括認證權威、屬性權威和策略決策點。客戶端向SAML權威請求聲明;SAML權威加以響應。請求(SAML請求)和響應(SAML響應)均是XML格式,用于運載請求和響應的協議是HTTP之上的簡單對象訪問協議(Simple Object Access Protocol,SOAP)。SOAP[4]是一個基于XML并用于在分散或分布式環境中交換信息的協議。SAML2.0已于2005年3月14日正式成為OASIS標準[5]。

XACML與 SAML 體系結構是緊密相關的。它們有很多相同的概念,要處理的問題域也在很大程度上重疊:驗證、授權和訪問控制。但是在同一問題域中,它們要解決的是不同的問題。SAML 要解決的是驗證,并提供一種機制,在合作的實體間傳遞驗證和授權決策信息;XACML 則專注于傳遞這些授權決策的機制。SAML 標準提供了允許第三方實體請求驗證和授權信息的接口。內部如何處理這些授權請求則由 XACML 標準解決。盡管XACML提供了一個標準化的訪問控制決策模型,但它沒有定義這些構件之間的通信協議和機制。這就需要SAML來定義聲明、協議和傳輸機制了。XACML和SAML的結合才能提供一個完整的授權解決方案。

事實上,在圖1所示的XACML決策執行過程中,策略執行點到上下文處理器之間的請求與響應一般是SAML格式的請求與響應;而在上下文處理器與策略決策點之間的請求與響應是XACML格式的請求與響應。由于一個SAML AuthzDecisionQuery不能夠傳遞XACML PDP能夠接收的、作為其請求上下文部分的所有信息;同樣,SAML AuthzDecisionStatement也不能傳遞包含在XACML響應上下文中的所有信息。需要上下文處理器在其中起相互轉換的作用。SAML格式的請求和響應與XACML格式的請求和響應格式有所不同,但都是基于XML的。上下文處理器可以用XSLT(eXtensible Stylesheet Language Transformation)將SAML映射成XACML;反之亦然。XSLT是一種用來轉換XML文檔結構的語言。

但這種處理方式,不僅增加了系統開銷,而且也不直觀方便。為了更好地將XACML與SAML結合起來,允許PEP利用SAML請求和響應語法來完全支持XACML請求上下文和響應上下文語法。OASIS專門發布了XACML中使用SAML的文檔規范[6]。規范定義了多個SAML擴展,并且規定了XACML中各構件之間的通信格式和機制。結合SAML的XACML訪問控制體系結構如圖2所示。

其中,XADQ=XACMLAuthzDecisionQuery;XADS=XACMLAuthz ̄Decision ̄Statement

圖2 利用SAML的XACML訪問控制體系結構

圖2中有六種Query和Statement,其含義和功能如下:

(1)AttributeQuery:一種標準的SAML請求,用于從AA(Attribute Authority)請求一個或多個屬性。

(2)AttributeStatement:一種標準SAML聲明,它包含一個或多個屬性。這種聲明用于來自AA的SAML響應中,或者作為一種將屬性存儲在Attribute Repository(屬性存儲器)的格式,用于SAML聲明中。

(3)XACMLPolicyQuery:一種SAML請求的擴展,用于從策略管理點處請求一個或多個策略。

(4)XACMLPolicyStatement:一種SAML聲明的擴展。它用于來自策略管理點的SAML響應中,或者作為一種將策略存儲在Policy Repository(策略存儲器)的格式,用于SAML聲明中。

(5)XACMLAuthzDecisionQuery:一種SAML請求的擴展,用于PEP從XACML PDP處請求授權決策。

(6)XACMLAuthzDecisionStatement:一種SAML聲明的擴展。它用于來自XACML PDP的SAML響應中;也可用于用做憑證的SAML聲明中。

有了這些SAML的擴展,PDP就可以直接利用SAML形式的請求和響應與XACML的各構件之間直接通信,獲取所需的信息。

1.3 與RBAC的結合

基于角色的訪問控制(RBAC)現已成為工業標準,廣泛用于各種系統的訪問控制中。它是通過角色將用戶和權限聯系起來的。用戶被賦予某種角色,角色被賦予相關的權限。這種將權限賦予角色,而不是直接賦予用戶(身份)的授權機制,既簡化了管理,又增加了安全性,同時可表達更為復雜的訪問控制策略,使控制粒度更細。另外,這種機制可以讓用戶自己決定聲明用戶屬性信息的數量和類型,在一定程度上可維護用戶的匿名性和隱私?;诮巧脑L問控制有時也稱做基于屬性的訪問控制;其訪問策略通常要根據用戶、資源的相關屬性來制定。

由于XACML的PDP要根據主體(用戶)、資源和環境的屬性來作出授權決策,這自然需要與RBAC結合。為此,OASIS專門為如何在XACML中使用RBAC來表達訪問策略制定了規范文檔[7]。XACML與RBAC的結合,可為Web服務提供更好的訪問控制策略和機制。

2 基于XACMLRBAC和SAML的訪問控制系統模型

本文提出的基于XACMLRBAC和SAML的訪問控制系統由SAML服務器、一個或多個屬性權威(AA)、資源服務器(相關于PEP)、一個或多個XACML策略管理點(PAP)、XACML服務器、UDDI服務等主要構件組成。盡管這些構件可以合作集成在同樣的機器中,利用局部通信機制(中間API)進行交互,假定這些構件分布在不同的機器中,以便適應AAI將認證和授權分開的需求,更好地適合分布式環境。系統組成如圖3所示。

2.1 系統構件的主要功能

系統各構件的主要功能如下:

(1)資源服務器:相關于PEP,主要負責接收用戶的訪問請求。首先向SAML服務器發送認證請求,并接收來自SAML服務器的認證聲明;其次向XACML服務器發送授權請求,接收來自XACML服務器的授權決策并執行。必要時,還需向屬性權威請求并接收需求的相關屬性。

(2)SAML服務器:負責接收來自資源服務器的認證請求,并產生和發送相應的認證聲明。SAML要利用UDDI服務找到相應的屬性權威;接收來自XACML服務器的屬性請求并轉發給屬性權威,接收來自屬性權威的SAML屬性聲明,并將其轉換為XACML的屬性形式。

(3)屬性權威:負責接收來自SAML服務器的屬性請求,產生并發送相應的屬性聲明。

(4)UDDI服務:給相應的構件提供請求服務,以便SAML利用用戶的全局身份找到相應的屬性權威。UDDI(Univer ̄sal Description, Discovery and Integration,統一描述、發現和集成協議)是一套基于Web的、分布式的、為Web服務提供信息注冊中心的實現標準規范;同時也包含一組使企業能將自身提供的Web服務注冊以使別的企業能夠發現的訪問協議實現標準。這種應用程序能夠在后臺自動訪問UDDI目錄,尋找它們需要完成業務處理的信息。

(5)XACML服務器:接收來自資源服務器的授權請求,并根據相應的屬性及資源訪問策略產生和發送授權決策聲明。

(6)策略管理點:負責為請求的資源制定相應的訪問策略。本系統中的資源訪問策略是由XACML 結合RBAC制定的,具體的策略形式見文獻[6]。策略的制定通常是一件較難的工作,需要開發相應的輔助工具來實現策略的制定。

2.2 系統采用的通信協議和安全措施

系統各構件之間的通信采用XACML和SAML標準,如獲取信息的請求和響應格式。傳輸機制采用HTTP上SOAP綁定方式,即利用SOAP消息傳送請求與響應信息。為保證信息的完整性和機密性,采用WSSecurity[8]提供的安全措施,對消息進行XML加密或XML數字簽名。信息的傳送均利用SSL/TLS安全連接方式。

設計時,可利用Apache Axis體系結構[9]作為一個引擎來傳輸和接收SOAP消息。Axis引擎從消息載荷中抽取原始的SAML或XACML結構,前傳到指定的接收端,并用定制的Axis Handler對消息進行XML數字簽名和驗證簽名。

2.3 系統的工作流程

系統的主要工作流程如下:

(1)用戶向資源服務器發送訪問請求。

(2)資源服務器向SAML服務器發送SAML認證請求〈AuthnRequest〉。

(3)SAML服務器對用戶進行認證后(具體認證方式可選,如利用用戶名/口令認證,或X.509證書認證等),產生并返回認證聲明。

(4)SAML服務器利用系統提供的UDDI服務,找到相應的屬性權威(其URI)。

(5)資源服務器向XACML服務器發送授權請求〈XACML ̄Authz ̄DecisionQuery〉、此請求中的用戶身份、請求的資源(URI)和請求的操作。

(6)XACML服務器根據基于屬性的訪問策略,向SAML服務器發送屬性請求〈AttributeQuery〉,獲取相關授權決策所需的屬性。

(7)SAML服務器向相關的屬性權威傳發此屬性請求(SAML屬性請求方式)。

(8) 相關的屬性權威產生相應的SAML屬性聲明。其中包含若干〈AttributeStatement〉。

(9)SAML服務器將SAML AttributeStatement數據轉換為本地的XACML Attribute格式(通常以定制的功能來實現,轉換方式參考文獻[6]),并前傳給XACML服務器。

(10)XACML服務器根據主體、資源和環境的屬性,以及資源的訪問策略(此策略以XACMLPolicyQuery和XACMLPolicyStatement的方式,從策略管理點獲取),進行授權決策,并產生和發送相應的授權決策聲明,包含若干〈XACMLAuthzDecisionStatement〉。

(11)資源服務器根據授權決策的結果,向資源發送允許或拒絕訪問的信息。必要時,還需向屬性權威請求并接收需求的相關屬性。

2.4 隱私保護

為防止用戶敏感屬性的暴露,保護用戶隱私,在SAML服務器與用戶屬性權威的交互過程中,可采用信任協商機制[10]來實現用戶屬性的調用。TrustX[10]是一個基于XML的完整信任協商框架,支持敏感屬性和隱私的保護。

3 結束語

有效的訪問控制機制是保障Web服務順利發展的重要措施。本文提出的訪問控制模型,采用最新的策略決策語言XACML和傳輸機制SAML,可以動態地根據用戶、資源、環境的屬性進行訪問控制決策,提供細粒度訪問控制和良好的互操作性,非常適合于Web服務環境。將來的工作將主要集中發展配套的策略管理工具、屬性管理工具和用戶會話管理子系統,使之能更好地實現訪問控制過程。

本文中所涉及到的圖表、注解、公式等內容請以PDF格式閱讀原文。

主站蜘蛛池模板: 伊人久久精品无码麻豆精品 | 亚洲成人在线免费观看| 伦伦影院精品一区| 欧美成人精品在线| 国产精品无码AV片在线观看播放| a级毛片在线免费| 日本成人精品视频| 无码又爽又刺激的高潮视频| 国产精品第一区| 亚洲αv毛片| 久久99热这里只有精品免费看| 亚洲国产成人麻豆精品| 精品1区2区3区| 日韩AV手机在线观看蜜芽| 秋霞国产在线| 国产91小视频| 国产不卡在线看| 国产欧美专区在线观看| 中文精品久久久久国产网址| 成人字幕网视频在线观看| 亚洲另类第一页| 综合亚洲网| 国产浮力第一页永久地址| 亚洲综合狠狠| 久久国产高清视频| 欧美成人二区| 亚洲人成网址| 国产精品三级av及在线观看| 久久久久人妻一区精品| 国产swag在线观看| 国产午夜福利在线小视频| 国产精品手机在线观看你懂的| 国产啪在线| 激情综合激情| 99久久亚洲综合精品TS| 茄子视频毛片免费观看| 在线欧美日韩| 69国产精品视频免费| 欧美啪啪视频免码| 国产精品自在在线午夜区app| 亚洲αv毛片| 欧美在线精品一区二区三区| 欧美va亚洲va香蕉在线| 欧美激情视频一区| 国产成人亚洲无吗淙合青草| 91小视频版在线观看www| 国产精品lululu在线观看| 无码人妻免费| 国产毛片不卡| 国产日韩欧美精品区性色| 人妻丰满熟妇αv无码| 国产a网站| 国产97视频在线观看| 欧美一区日韩一区中文字幕页| 国产一区二区影院| 欧美成人午夜影院| 欧美精品综合视频一区二区| 精品国产网站| 看看一级毛片| 婷婷五月在线| 精品国产一区91在线| av色爱 天堂网| 又粗又大又爽又紧免费视频| 国产Av无码精品色午夜| 午夜毛片免费观看视频 | 国产精彩视频在线观看| 免费aa毛片| 国产一区二区三区在线观看视频 | 欧美视频在线不卡| 色悠久久久久久久综合网伊人| 国产不卡一级毛片视频| 国内精品手机在线观看视频| 狠狠色成人综合首页| 国产精品无码久久久久久| 久久国产精品无码hdav| 97国产在线播放| 免费黄色国产视频| 国产精品真实对白精彩久久| 亚洲人成在线免费观看| 国产成人91精品免费网址在线| 国产激爽大片高清在线观看| 91娇喘视频|