XACML

XACML

XACML是一種用於決定請求/響應的通用訪問控制策略語言和執行授權策略的框架,它在傳統的分散式環境中被廣泛用於訪問控制策略的執行。

簡介


XACML(可擴展的訪問控制高標識語言)是一種基於XML的開放標準語言,它設計用於描述安全政策以及對網路服務、數字版權管理(DRM)以及企業安全應用信息進行訪問的許可權。XACML在2003年2月由結構化信息標準促進組織(OASIS)批准,它開發用於標準化XML的訪問控制,從而,例如,工人可以使用一個用戶名訪問多個相關的網址。XACML有時也稱可擴展的訪問控制高標識語言(XACL)。
XACML設計成與另一個OASIS標準安全性斷言標記語言(SAML)協同工作。SAML定義安全系統之間的共享授權信息,例如用戶密碼和安全檢查。使用XACML描述政策的規則引擎(檢查已建立的規則並提示與之相符的行為的程序)可將這種信息與已建立的標準比較以判定用戶許可權。XACML規範是包括IBMSun MicrosystemsEntrust在內的OASIS成員合作開發的。
在基於Web的分散式應用環境中,安全策略廣泛使用XACML語言進行表示。
XACML在策略表達上結構清晰,將安全規則表示為主體,客體,行為和約束四個主要屬性的屬性值集合。XACML策略表達舉例見圖2-2。XACML是基於XML的訪問控制策略指派語言,使用標籤來標識安全策略的各個元素。XACML的標籤規定了策略名,規則名及規則屬性等,種類豐富。如圖2所示,XACML通過標籤及其屬性值聲明策略ID,策略適用群組和規則聯合演演算法,以對策略做出標識和說明。PolicyID和PolicyTarget分別用於聲明策略ID和策略適用群組,RuleCombiningAlgId聲明了規則聯合演演算法,規則聯合演演算法的作用是解決安全策略中不同安全規則可能造成的衝突,以保證每個訪問請求只得到一個最終授權結果。策略是由規則組成的,XACML用標籤來標示規則,在規則標籤頭中,RuleID是規則ID, Effect標示該規則的效用:是一個許可規則還是拒絕規則。在規則體內,用標示規則的各屬性,包括主體Subject,客體Resource和行為Action,對每一個屬性,都在相應標籤中先標示屬性名稱,如“FileType”,再標示該屬性的屬性值。約束屬性用標籤標示,位於之後。安全規則的四個屬性中,如果對某個屬性沒有安全約束限制,則可以省略該屬性的標籤。
XACML實例
XACML實例

優點


作為國際標準化組織制定的安全策略表示標準,XACML最大的優點就在於它提供了統一的策略描述語言,提高了Web環境下不同組織之間協同工作的效率。XACML能適應多種應用環境,支持廣泛的數據類型和規則聯合演演算法,策略表達能力很強,可用來描述各種複雜的和細粒度的訪問控制安全需求。但是,XACML在進行安全策略表達時,標籤定義比較複雜,且其核心規範認為所有的策略都是可信的,無法適用於委託授權和可信計算,也無法提供一個形式化的機制來聯合Web服務中不同部分的安全策略。