專利名稱:使用加權搜索樹的基于上下文的安全策略評估的制作方法
技術領域:
本公開一般涉及分布式計算環(huán)境中的訪問控制機制,具體涉及評估用于授權和權限(entilement)處理的基于上下文的策略的在計算上高效的技術。
背景技術:
可擴展訪問控制標記語言或XACML是結構化信息標準促進組織(OASIS)管理的用于管理訪問控制策略的工業(yè)標準。該工業(yè)標準可從OASIS網站上獲得。XACML提供了用于指定訪問控制策略的基于XML的基于上下文的安全語言。當用于訪問控制時,諸如XACML的現(xiàn)有開放標準格式關注于返回單個訪問決定,諸如“允許”或“拒絕”。相比之下,“權限”包括返回一組允許訪問的項(item)的概念。典型地,權限是一組控制規(guī)范(通過策略呈現(xiàn)), 其管理身份對信息、應用和系統(tǒng)的訪問,其中用戶是一種這樣的身份。對權限的支持是促進更高效的訪問控制模型的共同要求。在其中訪問控制請求由包括關于請求本身的屬性的上下文與相關環(huán)境組成的、諸如XACML的上下文安全策略中,通常通過從策略中選擇這些屬性的子組用于“索引”和支持來提供權限。然而,此方法受以下限制僅選擇被索引的屬性可以被返回作為一組權限。例如,如果資源id(資源的唯一標識符)被選擇用于索引,則對允許主體(subject)訪問資源的權限的請求將不返回有意義的結果。期望允許在不需要顯式地索引某些屬性的情況下使用諸如XACML的上下文安全策略語言來評估權限。還期望提供用于執(zhí)行這種評估的在計算上高效的技術。
發(fā)明內容
一種用于使用從根節(jié)點延伸的一個或多個葉的加權索引樹來評估具有一組屬性的基于上下文的(例如XACML)策略的機器實現(xiàn)的方法。樹的每個葉表示一個策略規(guī)則。下至葉的深度優(yōu)先的路徑表示該組屬性中必須存在于對適用的規(guī)則的請求中的一個或多個屬性。針對該加權索引樹評估輸入以產生響應。一種類型的輸入是授權請求,在該情況下, 響應是授權決定(例如,允許或拒絕)。另一類型的輸入是對一組權限的查詢,在該情況下, 響應是一組權限。在另一實施例中,一種用于評估安全策略的裝置包括處理器和保存計算機指令的計算機存儲器,當該計算機指令被該處理器執(zhí)行時,執(zhí)行用于評估基于上下文的策略的方法,該策略具有一組屬性。該方法通過識別(從策略中)一組屬性值的相對頻率開始。該組屬性值接著被排序,并且對該組經排序的屬性值中的每個分配標識符。優(yōu)選地,該標識符是數(shù)值標識符(諸如唯一的整數(shù))。使用所分配的標識符,接著產生搜索樹。該搜索樹的每個葉定義一個規(guī)則,并且下至葉的深度優(yōu)先的路徑表示該組屬性中必須存在于對可使用的規(guī)則的請求中的一個或多個屬性。然后針對該搜索樹評估請求(諸如授權決定請求、權限查詢等)。搜索樹的結構使得策略評估在計算上高效。另外,當請求是權限查詢時,該方法使得能夠在不需要顯式地索引某些屬性的情況下使用基于上下文的安全策略評估權限。
根據(jù)另一方面,提供了一種用于產生在評估基于上下文的安全策略中使用的加權索引樹的計算機程序產品。該計算機程序產品保存計算機程序指令,當該計算機程序指令被數(shù)據(jù)處理系統(tǒng)執(zhí)行時,執(zhí)行樹產生方法。該方法包括以下步驟對策略進行正規(guī)化;在該策略中識別一組屬性值的出現(xiàn)頻率,對該組屬性值排序,對所排序的屬性值中的每個分配唯一的標識符;使用該唯一標識符產生正規(guī)化的規(guī)則組,該正規(guī)化的規(guī)則組中的每個規(guī)則具有與其關聯(lián)的鍵;以及使用該鍵構建加權索引樹。上文已經勾勒了本發(fā)明的某些更相關的特征。這些特征應被認為僅是說明性的。 通過以不同的方式或通過修改本發(fā)明來應用所公開的本發(fā)明,可以獲得許多其它有益的效果,如下文將描述的。
為了對本發(fā)明及其優(yōu)點有更完整的理解,現(xiàn)在參照與附圖一起進行的以下描述, 其中圖1描繪了可以實施說明性實施例的示例方面的分布式數(shù)據(jù)處理環(huán)境的示例框圖;圖2是可以實施說明性實施例的示例方面的數(shù)據(jù)處理系統(tǒng)的示例框圖;圖3是用于促進這里所描述的技術的策略評估管理器的高層組件的框圖;圖4是示出加權索引樹的產生以及該樹如何用于評估基于上下文的安全策略的處理流程圖;圖5是表示策略表的表;圖6是示出如何計算圖5的策略表中所示的策略屬性的出現(xiàn)頻率的表;圖7是示出如何對出現(xiàn)頻率排序、以及如何對已從圖5的策略表中獲得的經排序的策略屬性分配數(shù)值標識符的表;圖8是示出圖7中所分配的數(shù)值標識符如何被用于產生一組鍵(key)的表;圖9是對應于圖8的表中所定義的該組規(guī)則以及所關聯(lián)的鍵的加權索引樹;圖10是包括具有通配符屬性的規(guī)則的另一策略表;圖11是針對圖10的表的出現(xiàn)頻率的表;圖12是示出針對圖11的表的、經排序的策略屬性與所關聯(lián)的數(shù)值標識符的經排序的映射;圖13是示出針對圖12的經排序的映射的規(guī)則鍵的組;圖14是對應于圖12的表中所定義的該組規(guī)則和所關聯(lián)的鍵的加權索引樹;圖15是代表性的XACML策略;圖16是基于圖15的XACML策略的、并與策略表結合被存儲以促進對包括多個規(guī)則的請求的處理的第一數(shù)據(jù)結構;以及圖17是基于圖15的XACML策略的、并與策略表結合被存儲以促進對包括多個規(guī)則的請求的處理的第二數(shù)據(jù)結構。
具體實施例方式現(xiàn)在參照附圖尤其是參照圖1-2,提供其中可以實施本公開的說明性實施例的數(shù)據(jù)處理環(huán)境的示例圖。應該理解,圖1-2僅是說明性的,并不意在對可以實施所公開的主題的方面或實施例的環(huán)境施加或隱含任何限制??梢栽诓黄x本發(fā)明的精神和范圍的情況下對所描述的環(huán)境進行許多修改?,F(xiàn)在參照附圖,圖1描繪了其中可以實施說明性實施例的方面的說明性分布式數(shù)據(jù)處理系統(tǒng)的圖示表示。分布式數(shù)據(jù)處理系統(tǒng)100可以包括其中可以實施說明性實施例的方面的計算機的網絡。分布式數(shù)據(jù)處理系統(tǒng)100包含至少一個網絡102,其是用于在分布式數(shù)據(jù)處理系統(tǒng)100內連接在一起的各種設備與計算機之間提供通信鏈路的媒介。網絡102 可以包括連接,如有線線路、無線通信鏈路或光纜。在所描述的示例中,服務器104和服務器106與存儲單元108 —起連接到網絡 102。此外,客戶端110、112和114也連接到網絡102。所述客戶端110、112和114可以是例如個人計算機、網絡計算機等。在所描述的示例中,服務器104向客戶端110、112和114 提供數(shù)據(jù),諸如啟動文件、操作系統(tǒng)鏡像以及應用。在所描述的示例中,客戶端110、112和 114是對服務器104的客戶端。分布式數(shù)據(jù)處理系統(tǒng)100可以包括額外的服務器、客戶端和其它未示出的設備。在所描述的示例中,分布式數(shù)據(jù)處理系統(tǒng)100是具有網絡102的因特網,其表示使用傳輸控制協(xié)議/因特網協(xié)議(TCP/IP)的協(xié)議組合來互相通信的網絡和網關的全球集成。在因特網的核心是主節(jié)點或主機計算機之間的高速數(shù)據(jù)通信線的骨干網,由路由數(shù)據(jù)和消息的數(shù)千個商用、政府、教育和其它計算機系統(tǒng)組成。當然,分布式數(shù)據(jù)處理系統(tǒng)100 還可以被實施為包括多個不同類型的網絡,諸如,例如內聯(lián)網、局域網(LAN)、廣域網(WAN) 等。如上所述,圖1僅意在作為示例,而不作為對所公開的主題的不同實施例的結構限制, 因此,圖1中所示的特定元素不應該被認為是對其中可以實施本發(fā)明的說明性實施例的環(huán)境的限制。現(xiàn)在參照圖2,示出了其中可以實施說明性實施例的方面的示例數(shù)據(jù)處理系統(tǒng)的框圖。數(shù)據(jù)處理系統(tǒng)200是諸如圖1中的客戶端110的計算機的示例,其中,可以布置實施用于本公開的說明性實施例的處理的計算機可用代碼或指令。現(xiàn)在參照圖2,示出了其中可以實施說明性實施例的數(shù)據(jù)處理系統(tǒng)的框圖。數(shù)據(jù)處理系統(tǒng)200是諸如圖1中的服務器104或客戶端110的計算機的示例,其中可以布置實施用于說明性實施例的處理的計算機可用程序代碼或指令。在此說明性示例中,數(shù)據(jù)處理系統(tǒng)200包括通信構造(fabric) 202,其提供處理器單元204、存儲器206、永久存儲裝置208、 通信單元210、輸入/輸出(I/O)單元212和顯示器214之間的通信。處理器單元204用于執(zhí)行可以加載到存儲器206中的軟件的指令。取決于具體實施方式
,處理器單元204可以是一個或多個處理器的組,或者可以是多處理器核心。此外, 可以使用其中主處理器與次級處理器一起存在于單個芯片上的一個或多個異構處理器系統(tǒng)實施處理器單元204。作為另一說明性示例,處理器單元204可以是包含相同類型的多個處理器的對稱多處理器系統(tǒng)。存儲器206和永久存儲裝置208是存儲設備的示例。存儲設備是能夠臨時和/或永久地存儲信息的任何硬件。在所述示例中,存儲器206可以是例如隨機存取存儲器或任何其它合適的易失性或非易失性存儲設備。永久存儲裝置208取決于具體實施方式
可以采用各種形式。例如,所述永久存儲裝置208可包括一個或多個組件或器件。例如,永久存儲裝置208可以是硬盤驅動器、閃存、可重寫光盤、可重寫磁帶或它們的某些組合。永久存儲裝置208所使用的介質還可以是可移除的。例如,可移除硬盤驅動器可以被用于永久存儲裝置208。在所述示例中,通信單元210對通信提供其它數(shù)據(jù)處理系統(tǒng)或設備。在所述示例中,通信單元210是網絡接口卡。通信單元210可以通過使用物理和無線通信鏈路兩者或之一提供通信。輸入/輸出單元212允許利用可以連接到數(shù)據(jù)處理系統(tǒng)200的其它設備進行數(shù)據(jù)的輸入和輸出。例如,輸入/輸出單元212可以提供連接用于通過鍵盤和鼠標的用戶輸入。 此外,輸入/輸出單元212可以向打印機發(fā)送輸出。顯示器214提供將信息顯示給用戶的機制。用于操作系統(tǒng)和應用或程序的指令位于永久存儲裝置208上。這些指令可以被加載到存儲器206中,用于被處理單元204執(zhí)行。通過處理器單元204使用計算機實施的指令可以執(zhí)行不同實施例的處理,所述計算機實施的指令可以位于諸如存儲器206的存儲器中。這些指令被稱為可以被處理器單元204中的處理器讀取和執(zhí)行的程序代碼、計算機可用程序代碼或計算機可讀程序代碼??梢栽诓煌锢砘蛴行斡嬎銠C可讀介質(諸如存儲器 206或永久存儲裝置208)上實施不同實施例中的程序代碼。程序代碼216以函數(shù)形式位于可選擇性地移除的計算機可讀介質218上,并可以被加載或傳遞到數(shù)據(jù)處理系統(tǒng)200上用于被處理器單元204執(zhí)行。在所述示例中,程序代碼216和計算機可讀介質218形成計算機程序產品220。在一個示例中,計算機可讀介質 218可以是有形形式,諸如,例如被插入或放置到作為永久存儲裝置208的一部分的驅動器或其它設備(諸如作為永久存儲裝置208的一部分的硬盤驅動器)中用于傳遞到存儲設備的光盤或磁盤。在有形形式中,計算機可讀介質218還可以采用永久存儲裝置的形式,諸如連接到數(shù)據(jù)處理系統(tǒng)200的硬盤驅動器、拇指驅動器(thumb drive)或閃存。計算機可讀介質218的有形形式也被稱為計算機可讀存儲介質。在某些示例中,計算機可讀介質218 可以是不可移除的。替代地,可以通過至通信單元210的通信鏈路以及/或者通過至輸入/輸出單元 212的連接將程序代碼216從計算機可讀介質218傳遞至數(shù)據(jù)處理系統(tǒng)200。在說明性示例中,通信鏈路和/或連接可以是物理的或無線的。計算機可讀介質還可以采取非有形介質的形式,諸如包含程序代碼的通信鏈路或無線傳輸。針對數(shù)據(jù)處理系統(tǒng)200所示出的不同組件不意味著對可以實施不同實施例的方式提供了結構限制??梢栽诎ㄡ槍?shù)據(jù)處理系統(tǒng)200所示出的組件之外的或對其替代的組件的數(shù)據(jù)處理系統(tǒng)中實施不同說明性實施例。圖2中所示的其它組件可以從所示的說明性示例變化。作為一個示例,數(shù)據(jù)處理系統(tǒng) 200中的存儲設備是可以存儲數(shù)據(jù)的任何硬件裝置。存儲器206、永久存儲裝置208和計算機可讀介質218是有形形式的存儲設備的示例。在另一示例中,總線系統(tǒng)可以被用于實施通信構造202,并可以包括一個或多個總線,諸如系統(tǒng)總線或輸入/輸出總線。當然,可以使用任何合適類型的體系結構實施總線系統(tǒng),其規(guī)定在附接至該總線系統(tǒng)的不同組件或設備之間傳遞數(shù)據(jù)。另外,通信單元可以包括用于傳送和接收數(shù)據(jù)的一個或多個設備,諸如調制解調器或網絡適配器。此外,存儲器可以是例如存儲器206或高速緩存(cache),如在可以存在于通信構造202中的接口和存儲控制器集線器中所發(fā)現(xiàn)的。用于執(zhí)行本發(fā)明的操作的計算機程序代碼可以以一個或多個編程語言的任意組合編寫,包括面向對象的編程語言(諸如JaVaTM、Smalltalk、C++等)、以及傳統(tǒng)的過程編程語言(諸如“C”編程語言等)、或類似編程語言。程序代碼可以作為獨立的軟件包完全在用戶的計算機上執(zhí)行,部分地在用戶的計算機上執(zhí)行,部分在用戶的計算機上部分在遠程計算機上執(zhí)行,或者完全在遠程計算機或服務器上執(zhí)行。在后面的情形中,遠程計算機可以通過任何類型的網絡(包括局域網(LAN)或廣域網(WAN))連接到用戶的計算機,或者對外部計算機進行該連接(例如,使用因特網服務提供商通過因特網)。本領域的普通技術人員將理解,圖1-2中的硬件可以根據(jù)實施方式而變化。在圖 1-2中所描繪的硬件之外或替代其,可以使用其它內部硬件或外圍設備,諸如閃存、等效的非易失性存儲器或者光盤驅動器等。而且,說明性實施例的處理還可以應用于多處理器數(shù)據(jù)處理系統(tǒng),并非前述的SMP系統(tǒng),而不偏離所公開的主題的精神和范圍。數(shù)據(jù)處理系統(tǒng)支持本領域公知的基于上下文的安全策略機制。一個這種機制是可擴展的訪問控制標記語言或XACML。假定對XACML熟悉。XACML策略由策略組(policy set)和策略組合算法組成。策略組是策略或策略組的序列以及目標,并且策略是目標、規(guī)則組和規(guī)則組合算法。目標指定對其應用策略的請求的類型。僅在請求滿足策略的目標的情況下,才針對策略規(guī)則組檢查該請求。規(guī)則組是一組規(guī)則,并且規(guī)則具有目標、可選條件和效果(例如,允許或拒絕)。規(guī)則目標指定該規(guī)則是否適用于該請求。如果請求匹配了該目標以及規(guī)則的任何條件,則效果被作為決定返回。XACML規(guī)定了若干規(guī)則或策略組合算法, 包括但不限于最先適用(first-applicable)、僅一個適用(only-one-applicable)、拒絕優(yōu)先(deny-overrides)以及允許優(yōu)先(permit-overrides)。XACML訪問控制通過利用一個或多個基于XACML的訪問控制策略評估XACML請求(包含授權的主體、正被訪問資源以及正被執(zhí)行的動作)以及返回允許或拒絕所請求的訪問的XACML響應而工作。圖3示出了這里使用的已知策略評估管理器的高層組件。在于2008年6月5日提交的題為“Indexing of Security Policies (安全策略的索引)”、序列號為12/133,850 的、共用的、共同未決的申請中描述了該功能。策略管理配置300是圖2的數(shù)據(jù)處理系統(tǒng) 200的上下文中的評估管理器302的示例實施方式。具體地,策略評估管理器302被示出在圖2的數(shù)據(jù)處理系統(tǒng)200的存儲器206內。策略評估管理器302還可以位于其它存儲位置內,直到被期望使用所需要。其它存儲位置包括圖2的永久存儲裝置208。策略評估管理器 302包括多個合作的組件以提供對與安全策略相關的請求的有效評估。所述組件典型地包括索引創(chuàng)建器304、解析器306、編輯器308、檢索器310、評估器312和規(guī)則數(shù)據(jù)庫(DB) 314。 所述組件互相合作地工作,但也與其它與系統(tǒng)相關的組件合作地工作。雖然被示出為分離的實體,但所述組件也可以被實施為共同產品中的服務的集合,或者被以其它方式組合以獲得相同的功能上的能力。索引創(chuàng)建器304提供基于用于詞匯元素的規(guī)則的值產生鍵的能力。索引的鍵是必須包含在對適用的規(guī)則的請求中的屬性值的組合。因此根據(jù)屬性值組合創(chuàng)建該鍵。索引鍵減少了用于確定與請求相關的適用策略元素所需要的時間。策略元素是屬性和值的組合。 例如,屬性“主體id (subject-id) ”和關聯(lián)的值“Craig”定義策略元素“主體id = Craig”。 然后,策略是一組策略元素,當其被利用關聯(lián)的條件評估時可以提供單個結果。解析器306提供分析請求、規(guī)則信息和策略詞匯的解析能力。解析器可以是用于翻譯所使用的標記語言的同一解析器,或者可以是為額外的任務專用的。編輯器308具有創(chuàng)建、修改和刪除規(guī)則以及策略元素的功能。編輯器308可以是典型的文本編輯器或適配于與選擇用于策略元素和規(guī)則實施的數(shù)據(jù)格式一起工作的其它具有編輯能力的組件。檢索器310從規(guī)則數(shù)據(jù)庫或存儲系統(tǒng)中獲取評估請求所需要的規(guī)則。檢索可以是針對以后評估的候選規(guī)則的列表或組。還可以檢索規(guī)則用于由編輯器進行的后續(xù)處理。評估器312提供檢查被依次提供來確定結果的規(guī)則的能力。如前所述,結果對適用的規(guī)則必須返回“真(true)”。規(guī)則數(shù)據(jù)庫 (DB) 314包含一組規(guī)則。規(guī)則由目標部分和條件部分組成。目標部分定義規(guī)則的主體或目標。條件部分定義了對于規(guī)則為真、適用于必須與主體結合被滿足的目標的準則。例如,用于薪水處理的規(guī)則可以具有“年薪”的目標,以及“少于20,000”的條件部分。索引316是通過索引創(chuàng)建器304的創(chuàng)建處理獲得的一組相關的鍵。索引316的鍵表示對應策略元素的經排序的列表。策略表318是包括用于策略元素和規(guī)則標識符的條目的數(shù)據(jù)結構。數(shù)據(jù)結構中的每行當被實施為表時,包括策略和對應的規(guī)則條目。策略元素定義鍵。一旦已經展平了 XACML策略,例如通過序列號12/133,580中所描述的處理,則結果是一組獨特(distinct)的策略元素。優(yōu)選地,每個規(guī)則僅適用于一個請求。此適用性由函數(shù)(諸如“字符串等于(string-equals)”和“整數(shù)大于(integer-greater-than) ”)的組合確定。對函數(shù)僅有的限制是它們必須采用兩個參數(shù)作為自變量并返回布爾(Boolean) 值。索引處理要求僅相等函數(shù)出現(xiàn)在策略元素的目標中。此限制確??梢詧?zhí)行高效的組查找,而不是XACML通常所需要的對匹配值的順序檢查。為了實現(xiàn)此,非相等匹配函數(shù)被與使用布爾AND運算符的任意現(xiàn)有條件組合地從規(guī)則的目標部分移動到規(guī)則的條件部分。因此,并根據(jù)序列號12/133,580中公開的主題,提供索引策略的方法,使得適用于給定請求的策略元素可以被快速并高效地確定。具體地,策略被簡化到一組獨特的規(guī)則, 其中每個規(guī)則適用于僅一個請求。為這些獨特規(guī)則創(chuàng)建索引,其中索引的鍵是必須出現(xiàn)在對可使用的規(guī)則的請求中的屬性值的組合。為了確保從索引的高效查找,不包括相等檢查的所有函數(shù)被放置在規(guī)則的條件部分。此索引處理典型地允許安全策略的大組能夠被更高效地評估。包含策略元素的請求被接收。該請求被處理,使得通過對用于該組策略元素的規(guī)則的索引查找分解(resolve)策略元素。然后對策略元素評估規(guī)則。說明性實施例典型地減少了必須被評估來確定適用的規(guī)則的表達的復雜性和不同形式。所描述的索引提供了確定用于給定策略的規(guī)則的適用性的更高效的機制。將以上作為背景,可以描述本公開的主題。此公開一般涉及對基于上下文的安全策略“展平(flattening)”技術(如序列號12/133,850)的“加權索引樹”增強,其即使在某些策略屬性未被顯式地索引的情況下也促進權限處理。如將看到的,這里的技術提供了超過現(xiàn)有技術的若干優(yōu)點。首先,策略中沒有特定屬性在索引重要性方面被提升到其余之上;因此,可以針對權限,查詢策略中的所有屬性。其次,加權索引樹確保策略評估的每個步驟(不論對于授權決定還是響應于權限查詢)盡可能在計算上高效。具體地,加權索引樹中僅與給定請求相關的部分被訪問,并且沿樹向下的每個決定盡可能地排除最大量的不相關結果。使用此方法,實現(xiàn)了對XACML v2.0標準中的策略的權限查詢。圖4是示出根據(jù)這里所描述的技術的、加權索引樹的產生以及如何使用該樹評估基于上下文的安全策略的處理流程圖。在所示的處理流程之前,安全策略已被索引(展平)為一組獨特的規(guī)則,其中每個規(guī)則包含必須出現(xiàn)上下文中的屬性值的組,用于使該規(guī)則被評估。這是序列號12/133,580中的上述技術。在步驟402中,并根據(jù)此公開,跨越整個(或幾乎整個)展平的策略,計算這些屬性值中的每個的相對頻率。例如,要求“主體id”為 “Craig”可能在策略中出現(xiàn)十(10)次,以及要求“主體id”為“Fiona”可能僅出現(xiàn)五(5) 次。一旦計算了,屬性值就被根據(jù)它們的頻率排序,并且在步驟404,創(chuàng)建加權索引樹,其中較頻繁使用的屬性高于較不頻繁使用的屬性。如將看到的,此決定樹中的節(jié)點由使所述規(guī)則適用所需要的屬性值的組合確定。此樹被迭代地創(chuàng)建,依次加入用于每個規(guī)則的節(jié)點。因此,例如,規(guī)則1可能要求值主體id (subject-id) = Craig,資源id (resource-id)=資源 1 (Resource-I),并且動作 id (action-id)=讀(read),而規(guī)則 2 可能要求主體 id = Craig, 資源id =資源2(ReSourCe-2),并且動作id =讀。在此示例中,主體id = Craig以及動作 id=讀是最頻繁使用的屬性,所以它們在樹中被放置為高于資源1和資源2。假定“Craig” 被放置在“讀”之前,則使用此方法,針對這兩個規(guī)則的簡化決定樹可能像如下主體id = Craig —動作id =讀一資源id =資源1—資源id=資源2返回到圖4,接著以多個可能的方式使用加權索引樹,例如響應于授權決定請求, 響應于權限查詢等。因此,給定的請求(例如針對授權決定、權限查詢等)被轉換為鍵。這是步驟406。在步驟408,鍵被用于遍歷(walk)該樹。如將看到的,遍歷該決定樹是指以深度優(yōu)先的方式搜索該樹。對于授權決定,以深度優(yōu)選方式搜索該樹,僅當合適的節(jié)點在輸入請求上下文中(如被鍵中的值所確定的)時才訪問子節(jié)點。一旦到達了樹中的葉(通過步驟408),便返回和評估合適的規(guī)則。這是第一實施例中的步驟410 (評估針對授權決定的安全策略)。在第二實施例中,關于權限查詢而評估安全策略。對于這種查詢,請求輸入是請求上下文、以及響應于該查詢而將被收集的一個或多個屬性類型(例如“資源id”)。在此實施例中,步驟408包括仍然以深度優(yōu)先的方式窮盡地搜索該樹,如果子節(jié)點要么在輸入請求中或者如果它們具有正被收集的屬性類型,則訪問該子節(jié)點。所收集的屬性類型被保存直到到達葉節(jié)點。在到達葉節(jié)點時,必須被評估的規(guī)則以及被授權給該規(guī)則的屬性值被獲知,并且返回該響應(步驟410)。步驟402和404 —起包括樹產生函數(shù)400。此函數(shù)可以被離線(off-line)執(zhí)行, 例如,當安全策略被加載到策略管理器中時,或者其可以被動態(tài)地(“在線(on-the-fIy) ”) 執(zhí)行,例如響應于授權請求、權限查詢或其它請求輸入的接收。此外,雖然未詳細示出,但本領域的普通技術人員將理解,“策略”典型地包括在該策略被索引(展平)并接著被處理,以產生加權索引樹之前被聚集到一起的多個策略組。因此,給定的加權索引樹典型地包括來自多個策略組的數(shù)據(jù),但這不是限制。在優(yōu)選實施例中,給定策略符合XACML規(guī)范,但這里所描述的技術也并不限制于基于XACML的安全策略。而是,圖4中所示的技術適用于任何基于上下文的安全策略實施方式。以下部分描述圖4中所示的技術的幾個示例,其中,策略被正規(guī)化并接著被索引為樹結構。如公知的,基于XACML的策略具有詞匯,即一組屬性制定器 (AttributeDesignator)和屬性選擇器(Attribut必elector)元素,以確定輸入請求的哪個部分是必須的。這些屬性源中的每個在策略中具有一組具體值。為了索引該策略,如上所述,所公開的技術首先計算每個具體屬性值的相對頻率,優(yōu)選地對其分配0 — η之間的等級。這允許相關的輸入值由整數(shù)表示(這加速了執(zhí)行,因為比較整數(shù)比比較字符串值在計算上更高效),以及確定檢查哪些屬性以獲得每個點的最多的值,從而允許以最高效的形式創(chuàng)建比較樹。作為具體的例子,圖5示出了顯示經正規(guī)化的策略的表500。這是圖3中引用的策略表318。在此策略表的情況下,圖6是示出如何計算圖5的策略表中所示的策略屬性值的出現(xiàn)頻率的表600。如可看出的,屬性值“動作id=查看(View)”具有最高頻率(3次出現(xiàn)),接著是屬性值“主體id = Craig”和“資源id =資源1”,分別具有第二高的頻率O 次出現(xiàn))。一旦計算了所述頻率(這是圖4中的步驟402),它們被以頻率排序,并被分配數(shù)值標識符。該結果是圖7中所示的表700。具體地,表700示出了如何對出現(xiàn)頻率排序以及如何對已經從圖5的策略表獲得的經排序的策略屬性分配數(shù)值標識符。繼續(xù)上述示例, 屬性值“動作id =查看”(在策略中具有最高出現(xiàn)頻率的屬性值)被分配最低值的標識符 (“0”),接著是第二頻繁的屬性值(被分配標識符“1”和“2”),等等。表700中的每個屬性值條目被分配唯一的數(shù)值標識符(唯一整數(shù))。使用所分配的標識符,可以接著創(chuàng)建加權索引樹。具體地,經正規(guī)化的規(guī)則組中的每個規(guī)則(來自圖5中的表500)被分配一組數(shù)值標識符作為它的鍵。因此,具有主體id “Craig”、資源id “資源1”以及動作id “查看”的規(guī)則l(r0001)(在表500中)被分配鍵
,具有主體id “Craig”、資源id “資源1” 以及動作id “編輯(Edit) ”的規(guī)則2被分配鍵[1,2,3],等等。圖8示出了顯示如何使用圖7中所分配的數(shù)值標識符產生一組鍵的表800。然后,使用表800中定義的該組規(guī)則和所關聯(lián)的鍵,創(chuàng)建加權索引數(shù)900。如可以看出的,深度優(yōu)先的搜索依次產生鍵中的節(jié)點的每個。具體地,每個葉節(jié)點,諸如葉節(jié)點 902,表示策略(策略組)中的規(guī)則,并且從樹向下深度優(yōu)先的路徑表示必須出現(xiàn)在針對適用的規(guī)則的請求中的屬性。通過使用鍵中經排序的值(優(yōu)選從最小到最大的整數(shù)),樹的每個葉被“排序”,從而,當葉從根節(jié)點開始向下移動時,該整數(shù)值的序列增加。這使得能夠在針對給定的進入(in-bound)請求搜索該樹時獲得計算效率。雖然不作為限制性,但在具體實施方式
上,加權索引樹中的每個節(jié)點可以是用 Java編寫的對象,其中,每個對象知道一個或多個子對象。然后使用加權索引以針對進入請求、權限查詢或其它進入請求評估策略。在第一實施例中,授權決定請求被如下評估。請求首先被轉換為一系列數(shù)值標識符(如利用規(guī)則本身),并接著執(zhí)行對該數(shù)的深度優(yōu)先搜索。例如,假定針對授權決定的請求是主體id = Craig,資源id =資源1以及動作id =查看。使用上述示例將此請求轉換為數(shù)值鍵W,1,2]。然后遍歷該樹,在每個節(jié)點處確保當前數(shù)值標識符在該請求中。如果不,則不需要沿樹向下繼續(xù)進行。根據(jù)圖9中所示的搜索樹,可以看出到達的唯一葉節(jié)點是 “rOOl”,意味著其是適用于該請求的唯一規(guī)則。然后評估該規(guī)則,并以通常的方式返回授權響應(例如“允許”或“拒絕”)。在另一示例中,假定該請求包括不在該策略中的屬性。在這種情況下,用于該屬性的數(shù)值標識符不被加入到請求鍵中。因此,如果請求是主體id = Vern,資源id =資源1,以及動作id =查看,則新請求鍵是W,1],因為“Vern”未出現(xiàn)在策略中。對于權限查詢,處理類似。“權限”查詢典型地指以下形式的查詢“返回Craig可以查看的資源id的列表”或“返回Kerry可以對資源2執(zhí)行的動作id的列表”。加權索引樹(如圖9中所示)接著被用于計算在給定輸入“部分請求”和輸入“屬性源”的情況下應該返回哪些具體的值。繼續(xù)上述示例,用于第一個查詢(Craig可以查看什么)的輸入是-部分請求-主體 id = Craig-動作id=查看-屬性源-資源id為了評估此權限查詢,合適時,在使用該部分請求之前遍歷該樹。然而,當碰到包含用于該屬性源的具體值的樹節(jié)點時,該值被加入到組中并被跟蹤用于以后的使用。還跟蹤碰到的規(guī)則標識符。在圖9中的樹的情況下,輸出部分請求是W,2],并且潛在匹配是[1, 4,5]。利用
遍歷該樹以聚集的結果[1]和規(guī)則“rOOl”結束。因此,響應于此具體權限查詢,如果rOOl針對“允許”評估,則評估返回“資源1”。以下段落描述替代示例,其中對該規(guī)則組的另一規(guī)則。在此示例中,規(guī)則包括由通配符定義的屬性值。圖10示出了包括具有通配符屬性的規(guī)則1002的策略表1000。在此示例中,通配符“*”是指對于適用的此規(guī)則,對動作id沒有限制。換句話說,Craig可以對資源3執(zhí)行任何動作。圖11是針對圖10的表的發(fā)生頻率的表1100,圖12是示出針對圖11 的表的、經排序的策略屬性和所關聯(lián)的數(shù)值標識符的經排序的映射的表1200。圖13是示出用于圖12的經排序的映射的規(guī)則鍵組的表1300。圖14是對應于圖12的表中定義的規(guī)則組與所關聯(lián)的鍵的加權索引樹1400。在樹1400的情況下,假定接收到權限查詢“Craig 可以對資源3做什么?”。查詢鍵是[1,2],其意味著對樹的遍歷到達規(guī)則r005,而沿途沒有遇到任何候選響應。這意味著對此屬性源的所有潛在匹配都必須被返回(也包括“全部 (ALL) ”的顯式返回)。以上僅是加權索引樹的代表示例,而不意味著限制所公開的技術。如前所述,可以在傳統(tǒng)的基于XACML的處理鏈中實施上述技術,其優(yōu)選地包括合適的請求和響應協(xié)議,以使用加權索引樹處理查詢。雖然不被要求,但XACML請求-響應協(xié)議可以包括包含xacml 請求對象的響應。這是因為語義是將輸入請求與所返回的響應組合來創(chuàng)建將針對指定的效果(例如,允許)評估的請求。在響應容器中使用請求允許保留可能出現(xiàn)的任何布爾AND語義。此外,在權限的實施例中,應用編程接口(API)可以被用于調用權限引擎來處理該加權索引樹,并且,在響應中返回一組權限。例如,XACML4J (針對Java 的XACML)可以被擴展來提供API。如上所述,由XACML指定的基于內容的安全策略典型地包括一個或多個“組合” 算法,諸如最先適用(first-applicable)、僅一個適用(only-one-applicable)、拒絕優(yōu)先 (deny-overrides)以及允許優(yōu)先(permit-overrides)。優(yōu)選地,當組合規(guī)則(以進行評估決定或返回權限)時考慮這些組合算法?,F(xiàn)在,描述此“規(guī)則組合”功能。因為規(guī)則本身僅指定與它們一起被包含的策略和策略組(而不是組合算法),所以在策略正規(guī)化(如前所述)期間,包含對象的層級(hierarchy)和所關聯(lián)的組合算法被跟蹤。接著,為了找到對請求或查詢的正確結果,必須在索引樹中的每個層級處采用組合算法。因此,一種方法是構建優(yōu)先級隊列(或等同物),其中“最深的”規(guī)則在該隊列的頂部。 如這里所使用的,通過其中包含每個規(guī)則的策略組/策略對象的數(shù)量計算“最深的”。然后,處理包括在優(yōu)先級隊列上的迭代,利用策略組/策略對象的同一列表提取“η”個最頂部元素。然后使用最深的策略組/策略的組合算法。一旦此算法被用于確定結果,例如“允許”, 則此結果接著被放回優(yōu)先級隊列上,作為對原始的“η”個最頂部元素的替代。隨后,對優(yōu)先級隊列重新排序,并開始下一次迭代。最后,在優(yōu)先級隊列上留下一個包含最后的評估/權限決定的項。因此,在具體示例中,假定上述索引的評估技術已經識別了三C3)個規(guī)則適用于輸入請求。而且,假定策略正規(guī)化步驟導致從樹中提取的以下數(shù)據(jù)規(guī)則1 —[策略組Α,策略組B,策略C]規(guī)則4 —[策略組Α,策略組B,策略C]規(guī)則5 —[策略組Α,策略D]其中組合算法是策略組A=最先適用策略組B=拒絕優(yōu)先策略C=最先適用策略D=最先適用如上所述,利用最深的規(guī)則在頂部來構建優(yōu)先級隊列。在此示例中,規(guī)則1和4具有3的深度,規(guī)則5具有2的深度。因此,從規(guī)則1和4開始迭代。接著使用最深策略組/ 策略的組合算法,在此情況下為策略C(最先適用)。一旦該算法被用于確定結果,例如允許,則此結果被放置回該優(yōu)先級隊列上允許(Pernit)—[策略組Α,策略組B]如上所述,優(yōu)先級隊列接著被重新排序,并且迭代繼續(xù)直到在優(yōu)先級隊列上留下單個項。概括地,為了采用組合算法,應該以保留策略的原始意圖的方式組合適用于輸入請求的每個規(guī)則的評估結果。例如,如以上示例所示,可以使用諸如“拒絕優(yōu)先于其它結果” 或“允許優(yōu)先于其它結果”(等)的算法組合決定。如果存在兩個適用的規(guī)則,并且其中之一返回允許,另一個返回拒絕,則需要決定使用哪個組合算法。因此,如上所述,在正規(guī)化期間(即,當策略被展平為單組規(guī)則時),記錄包括其中包含規(guī)則的策略組和/或策略標識符的經排序的列表的第一數(shù)據(jù)結構。在分離的第二數(shù)據(jù)結構中,記錄為每個策略組和策略而使用的組合算法。因此,假定圖15是代表性的XACML策略。圖16是用于該策略的第一數(shù)據(jù)結構,圖17是第二數(shù)據(jù)結構。優(yōu)選地,第一表被存儲在展平的規(guī)則本身中;第二表被存儲在分離的數(shù)據(jù)結構中。在評估期間,當多個規(guī)則是適用的,優(yōu)先級隊列構造被用于對包含策略標識符的列表向回進行(work back up),優(yōu)選地從原始策略的底部至頂部。對于曾經是同一策略組的一部分的兩個規(guī)則,原始策略組的組合算法被用于分解最終結果。優(yōu)選地,此組合技術從“最深的”規(guī)則開始,向回進行,并組合中間結果。關于圖15中所示的XACML策略,如果規(guī)則1、規(guī)則3和規(guī)則4全適用于給定請求, 則此技術首先組合規(guī)則3和規(guī)則4,因為它們在同一策略中;在策略表中查找算法,使用“最先適用”組合算法。然后,該技術使用根策略組(“拒絕優(yōu)先”)的算法將此組合的結果與評估規(guī)則1的結果組合,以達成最后的決定。如上所述,在代表性的實施方式中,該技術使用優(yōu)先級隊列、所描述的數(shù)據(jù)結構以及比較器功能,其將“最深的”的規(guī)則移動到用于評估的隊列的頂部。如此,規(guī)則組合算法在評估的每一步僅需要檢查隊列的頂部。不作為限制,如上所述,可以在軟件中實施策略索引(包括屬性值頻率計算、排序和整數(shù)分配),加權樹產生以及規(guī)則組合功能,作為一個或多個專用或“特定”機器。策略評估可以與加權樹(數(shù)據(jù)結構)一起被在專用或“特定”機器中實施,諸如權限服務器。傳統(tǒng)識別管理工具和系統(tǒng),諸如IBM Tivoli 安全策略管理器,以及集成解決控制臺可以被適配用于此目的,或者可以以任何其它方便的方式實施該技術。所描繪的不同實施例中的框圖示出了裝置、方法和計算機產品的某些可能實施方式的體系結構、功能和操作。因此,流程圖或框圖中的每個塊可以表示代碼的模塊、片段或部分,其包括一個或多個可執(zhí)行的指令用于實施所指定的功能。在某些可選實施方式中,塊中示出的功能可以不以圖中示出的順序執(zhí)行。例如,在某些情況下,取決于所涉及的功能, 順序示出的兩個塊可以被幾乎同時執(zhí)行,或者所述塊有時可以被相反順序地執(zhí)行。所公開的主題可以采取完全硬件實施例、完全軟件實施例或包含硬件和軟件元素兩者的實施例的形式。在優(yōu)選實施例中,以軟件實施本發(fā)明,其包括但不限制于固件、常駐軟件、微代碼等。所公開的主題可以采取計算機程序產品的形式,其可以從提供程序代碼的計算機可用或計算機可讀的介質中取得,用于由計算機或任何指令執(zhí)行系統(tǒng)使用或與它們一起使用。對于此說明書的目的,計算機可用或計算機可讀介質可以是可以包含或存儲用于被指令執(zhí)行系統(tǒng)、裝置或設備使用或與它們一起使用的任何有形裝置。該介質是有形的,并且其可以是電、磁、光、電磁、紅外或半導體系統(tǒng)(裝置或設備)。計算機可讀介質的示例包括半導體或固態(tài)存儲器、磁帶、可移除計算機盤、隨機存取存儲器(RAM)、只讀存儲器(ROM)、堅固磁盤或光盤。光盤的當前示例包括CD-ROM、CD-R/W和 DVD。適合于存儲和/或執(zhí)行程序代碼的數(shù)據(jù)處理系統(tǒng)將包括通過系統(tǒng)總線直接或間接耦接到存儲器元件的至少一個處理器。存儲器元件可以包括在程序代碼的真實執(zhí)行期間使用的本地存儲器、批量存儲器以及提供至少某些程序代碼的臨時存儲以減少執(zhí)行期間必須從批量存儲器中檢索代碼的次數(shù)的高速緩存存儲器。輸入/輸出或I/O設備(包括但不限制于鍵盤、顯示器、指針設備等)可以直接或者通過插入I/O控制器而耦接到系統(tǒng)。網絡適配器也可以耦接到該系統(tǒng),以使得數(shù)據(jù)處理系統(tǒng)能夠變得通過插入私有或公共網絡而耦接到其它數(shù)據(jù)處理系統(tǒng)或者遠程打印機或存儲設備。調制解調器、線纜調制解調器和以太網卡僅是當前可用的網絡適配器的類型中的幾個。已經為說明性和說明性的目的呈現(xiàn)了所公開的主題的描述,但其并不意在窮舉, 也不被限制于本發(fā)明所公開的形式。對本領域的普通技術人員而言,許多修改和改變將是顯然的。實施例被選擇和描述來最好地說明本發(fā)明的原理和實際應用,以及使得本領域的其它技術人員能夠理解本發(fā)明,因為具有各種修改的各種實施例適合于所構思的特定應用。如所述,可以以各種服務器側的體系結構或者與其一起實施這里描述的技術,該體系結構包括簡單的η層(n-tier)體系結構、網站入口(web portal)、聯(lián)合系統(tǒng)等。實施所公開的技術的訪問控制機制可以被實施為服務或獨立的機器。
產生和評估加權索引樹的技術可以應用到任何基于上下文的安全策略,而不僅僅是基于XACML的技術?;谏舷挛牡陌踩呗缘钠渌纠蓴U展權限標記語言(XrML) 以及企業(yè)隱私授權語言(EPAL)。在所描述的實施例中,每個具體的屬性值被轉換為唯一的整數(shù),從而該樹可以被使用這些整數(shù)值創(chuàng)建和索引。雖然此方法是優(yōu)選的,但并不必要,因為存在創(chuàng)建索引樹的其它方法。例如,可選實施方式可以選擇對每種類型保持原始屬性值,并使用原始的相等函數(shù) (諸如比較兩個字符串,或比較兩個電子郵箱地址)。此外,若需要,則可以僅使用策略中的屬性值組的一部分創(chuàng)建索引樹。此外,附圖中示出的加權索引樹僅用于說明性的目的;也可以使用其它類型的數(shù)據(jù)結構和定向。因此,可以利用其它基于節(jié)點的可搜索的結構實施搜索“樹”,包括鏈接的對象、列表或數(shù)據(jù)陣列。在產生索引樹之前也可以使用用于將標識符分配給屬性值的其它技術。它們包括例如在有關請求而不是策略中的屬性值的相對頻率的策略評估期間產生矩陣,并且基于所獲取的頻率矩陣周期性地重計算該樹??梢岳萌魏握埱?響應協(xié)議或利用不是上述基于XACML的版本的其它API機制實施策略評估。已經描述了本發(fā)明,所附的是權利要求。
權利要求
1.一種用于評估基于上下文的策略的方法,所述策略具有一組屬性,所述方法包括 識別一組屬性值的相對頻率;對該組屬性值排序;對經排序的屬性值中的每個分配標識符;使用分配給所述經排序的屬性值的標識符,產生搜索樹,所述搜索樹的每個葉定義規(guī)則,并且其中,下至所述葉的深度優(yōu)先的路徑表示該組屬性中的必須出現(xiàn)在對適用的規(guī)則的請求中的一個或多個屬性;以及針對所述搜索樹評估請求,以產生響應。
2.如權利要求1所述的方法,其中,所述請求是授權請求,并且,所述響應是允許或拒絕授權決定。
3.如權利要求2所述的方法,其中,評估所述授權請求的步驟包括 將所述授權請求轉換為一組標識符;以及使用與所述授權請求關聯(lián)的該組標識符,執(zhí)行所述搜索樹的深度優(yōu)先搜索。
4.如權利要求1所述的方法,其中,所述請求是權限查詢,并且,所述響應是一組權限。
5.如權利要求4所述的方法,其中,評估所述權限查詢的步驟包括 將所述權限查詢轉換為一組標識符;使用與所述權限查詢關聯(lián)的該組標識符,執(zhí)行所述搜索樹的深度優(yōu)先搜索。
6.如權利要求1所述的方法,其中,所述標識符是數(shù)值標識符。
7.如權利要求1所述的方法,其中,在標記語言中指定上下文策略。
8.如權利要求7所述的方法,其中,所述標記語言是XACML。
9.如權利要求8所述的方法,其中,所述評估步驟包括采用XACML組合算法。
10.一種用于評估基于XACML的策略的方法,所述策略具有一組屬性,所述方法包括 產生具有從根延伸的一個或多個葉的加權索引樹,所述樹的每個葉表示表示策略規(guī)則,其中,下至所述葉的深度優(yōu)先的路徑表示該組屬性中的必須出現(xiàn)在對適用的規(guī)則的請求中的一個或多個屬性;以及針對所述加權索引樹評估請求,以產生響應。
11.如權利要求10所述的方法,其中,所述請求是授權請求,并且,所述響應是允許或拒絕授權決定。
12.如權利要求11所述的方法,其中,評估所述授權請求的步驟包括 將所述授權請求轉換為一組數(shù)值標識符;以及使用與所述授權請求關聯(lián)的該組數(shù)值標識符,執(zhí)行所述搜索樹的深度優(yōu)先搜索。
13.如權利要求10所述的方法,其中,所述請求是權限查詢,并且,所述響應是一組權限。
14.如權利要求13所述的方法,其中,評估所述權限查詢的步驟包括 將所述權限查詢轉換為一組數(shù)值標識符;使用與所述權限查詢關聯(lián)的該組數(shù)值標識符,執(zhí)行所述搜索樹的深度優(yōu)先搜索。
15.一種裝置,包括 處理器;以及計算機存儲器,其保存計算機指令,當所述計算機指令被所述處理器執(zhí)行時,執(zhí)行包括以下步驟的方法產生具有從根延伸的一個或多個葉的加權索引樹,所述樹的每個葉表示策略規(guī)則,其中,下至所述葉的深度優(yōu)先的路徑表示該組屬性中的必須出現(xiàn)在對適用的規(guī)則的請求中的一個或多個屬性;以及針對所述加權索引樹評估請求,以產生響應。
16.如權利要求15所述的裝置,其中,所述請求是授權請求,并且,所述響應是允許或拒絕授權決定。
17.如權利要求16所述的裝置,其中,評估所述授權請求的步驟包括 將所述授權請求轉換為一組數(shù)值標識符;以及使用與所述授權請求關聯(lián)的該組數(shù)值標識符,執(zhí)行所述搜索樹的深度優(yōu)先搜索。
18.如權利要求15所述的裝置,其中,所述請求是權限查詢,并且,所述響應是一組權限。
19.如權利要求18所述的方法,其中,評估所述權限查詢的步驟包括 將所述權限查詢轉換為一組數(shù)值標識符;使用與所述權限查詢關聯(lián)的該組數(shù)值標識符,執(zhí)行所述搜索樹的深度優(yōu)先搜索。
20.一種用于產生在評估策略中使用的搜索樹的數(shù)據(jù)處理系統(tǒng),包括 用于正規(guī)化所述策略的單元;用于識別一組屬性值在所述策略中的相對出現(xiàn)頻率的單元; 用于對該組屬性值排序的單元;用于對經排序的屬性值中的每個分配唯一標識符的單元;用于使用分配給所述經排序的屬性值的唯一標識符產生經正規(guī)化的規(guī)則組的單元,所述經正規(guī)化的規(guī)則組中的每個規(guī)則具有與其關聯(lián)的鍵;以及用于使用所述鍵創(chuàng)建經排序的深度優(yōu)先的搜索樹的單元。
21.如權利要求20所述的數(shù)據(jù)處理系統(tǒng),其中,通過將詞匯應用到所述策略而正規(guī)化所述策略。
22.如權利要求20所述的數(shù)據(jù)處理系統(tǒng),其中,所述策略是基于XACML的安全策略。
23.一種訪問控制系統(tǒng),包括基于上下文的安全策略,其被存儲在計算機存儲器中;策略評估機制,用于產生具有各自表示策略規(guī)則的一個或多個葉的加權索引樹,所述策略評估機制響應于請求的接收,針對所述加權索引樹執(zhí)行深度優(yōu)先的搜索,以返回響應; 以及訪問控制機制,其使用所述響應,使得能夠進行訪問控制操作。
全文摘要
公開了使用加權搜索樹的基于上下文的安全策略評估。提供了一種用于使用具有從根節(jié)點延伸的一個或多個葉的加權索引樹評估具有一組屬性的基于上下文(例如XACML)的策略的方法、裝置和計算機程序產品。該樹的每個葉表示策略規(guī)則。下至葉的深度優(yōu)先的路徑表示該組屬性中必須出現(xiàn)在對適用的規(guī)則的請求中的一個或多個屬性。針對該加權索引樹評估輸入,以產生響應。一種類型的輸入是授權請求,在該情況中,響應是授權決定(例如,允許或拒絕)。另一類型的輸入是對一組權限的查詢,在該情況中,響應是一組權限。
文檔編號G06F17/30GK102207955SQ201110077968
公開日2011年10月5日 申請日期2011年3月30日 優(yōu)先權日2010年3月30日
發(fā)明者克雷格·R·W·福斯特 申請人:國際商業(yè)機器公司