專利名稱:訪問控制策略生成方法及裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及訪問控制技術(shù),特別涉及一種訪問控制策略生成方法及裝置,屬于網(wǎng)
絡(luò)應(yīng)用領(lǐng)域。
背景技術(shù):
為了保證網(wǎng)絡(luò)具有足夠的安全性,國(guó)際標(biāo)準(zhǔn)化組織I SO在其網(wǎng)絡(luò)安全體系的設(shè) 計(jì)標(biāo)準(zhǔn)(IS07498-2)中,定義了五大安全服務(wù)功能,包括身份認(rèn)證服務(wù)、訪問控制服務(wù)、 數(shù)據(jù)保密服務(wù)、數(shù)據(jù)完整性服務(wù)以及不可否認(rèn)服務(wù)。其中,訪問控制服務(wù)是針對(duì)越權(quán)使用 資源的防御措施,用于防止用戶在未授權(quán)的情況下對(duì)各種資源的隨意訪問,從而使計(jì)算機(jī) 系統(tǒng)能夠在合法的范圍內(nèi)被使用。訪問控制可以有效的阻止非法用戶對(duì)系統(tǒng)資源的訪 問,以及合法用戶對(duì)系統(tǒng)資源的非法訪問?,F(xiàn)有的訪問控制策略主要包括自主訪問控制 (Discretionary Access Control,以下簡(jiǎn)稱DAC)策略、強(qiáng)制訪問控制(Mandatoty Access Control,以下簡(jiǎn)稱MAC)策略,基于標(biāo)識(shí)的訪問控制(Identity Based Access Control,以 下簡(jiǎn)稱IBAC)策略和基于角色的訪問控制(Role Based Access Control,以下簡(jiǎn)稱RBAC) 策略。 上述傳統(tǒng)的訪問控制策略雖然能夠適用于不同的領(lǐng)域,但本質(zhì)上都是封閉式的, 不支持對(duì)系統(tǒng)未定義用戶的授權(quán),因此,上述訪問控制策略均不具備足夠的靈活性和可擴(kuò) 展性。例如,為解決面向服務(wù)的體系結(jié)構(gòu)(Service-Oriented Architecture,以下簡(jiǎn)稱 S0A)環(huán)境下訪問控制的問題,可以利用RBAC策略為S0A構(gòu)建安全體系。但由于RBAC僅僅 將用戶的功能或職責(zé)屬性定義為角色,未考慮用戶的其它屬性,并且RBAC未考慮用戶訪問 的客體的除標(biāo)識(shí)之外的其它屬性以及與SOA環(huán)境相關(guān)的安全屬性,所以其難以適用于多種 商業(yè)應(yīng)用場(chǎng)景。為解決現(xiàn)有的訪問控制策略靈活性和可擴(kuò)展性差的問題,基于屬性的訪問 控制(Attribute Based Access control,以下簡(jiǎn)稱ABAC)策略被提出,ABAC是基于IBAC 和RBAC中策略定義標(biāo)識(shí)或角色的局限性而做出擴(kuò)展和改進(jìn),其基本思想是基于主體,資 源或者可操作上下文的相關(guān)屬性進(jìn)行策略定義。在訪問控制的范疇內(nèi),一般會(huì)考慮到基于 主體、資源(即客體)、授權(quán)、環(huán)境這四種實(shí)體屬性進(jìn)行策略定義,換言之,四種實(shí)體屬性可 包括主體屬性、資源屬性、授權(quán)屬性和環(huán)境屬性,并且ABAC策略可以基于任意的主體、資源 或環(huán)境屬性的組合來(lái)定義策略。與傳統(tǒng)的訪問控制策略不同,ABAC策略基于請(qǐng)求者的屬性 對(duì)其訪問進(jìn)行授權(quán),不需要預(yù)先定義用戶,因此具有很好的靈活性和動(dòng)態(tài)可擴(kuò)展性。所以相 比于IBAC策略和RBAC策略,ABAC策略具有更加豐富的語(yǔ)義,能夠提供更加細(xì)粒度的訪問 控制。 針對(duì)ABAC的規(guī)范問題,高級(jí)結(jié)構(gòu)化信息標(biāo)準(zhǔn)組織(Organization for theAdvancement of Structured Information Standards,以下簡(jiǎn)禾爾0ASIS)提出了二個(gè) 標(biāo)準(zhǔn),包括安全斷言標(biāo)記語(yǔ)言(Security Assertion Mark卯Language,以下簡(jiǎn)稱SAML) 禾口可J廣展i方問控制t示記i吾言(extensible AccessControl Markup Language, XACML)。其 中XACML標(biāo)準(zhǔn)對(duì)ABAC提供了良好的支持, 一方面,它為ABAC策略提出了一個(gè)訪問控制框架,定義了參與訪問控制的執(zhí)行流程的關(guān)鍵實(shí)體及各實(shí)體之間的交互關(guān)系;另一方面,它定 義了一種基于XML的訪問控制策略定義語(yǔ)言,可以描述多種訪問控制策略。XACML在策略 定義、策略索引以及策略組織方面給出了良好的解決方法;該標(biāo)準(zhǔn)還給出了策略定義時(shí)的 各種實(shí)體可參考屬性,用于定義策略的常用數(shù)據(jù)類型和能夠施加于常用數(shù)據(jù)之上的常用函 數(shù),為策略定義提供了很好的基礎(chǔ)設(shè)施。除此之外,XACML還定義了用于策略執(zhí)行點(diǎn)接受請(qǐng) 求和給與應(yīng)答的標(biāo)準(zhǔn)XML格式,這對(duì)于異構(gòu)的系統(tǒng)間實(shí)現(xiàn)訪問控制提供了很好的支持。因 此,XACML被公認(rèn)為是一種可以對(duì)ABAC策略進(jìn)行準(zhǔn)確而全面描述的標(biāo)準(zhǔn),利用XACML進(jìn)行 表達(dá)的ABAC策略(即基于XACML的ABAC策略)具有很強(qiáng)的實(shí)用性。
但基于XACML的ABAC策略也存在如下問題XACML作為一種特定的XML規(guī)范,雖 然其可以實(shí)現(xiàn)對(duì)ABAC策略準(zhǔn)確的描述,但基于XACML的ABAC策略語(yǔ)法復(fù)雜、語(yǔ)句冗長(zhǎng),當(dāng) 用戶定義基于XACML的ABAC策略時(shí),需要首先理解XACML的描述方法并通過人工方式寫出 復(fù)雜的基于XACML進(jìn)行表達(dá)的ABAC策略,這對(duì)于用戶來(lái)講難以掌握和應(yīng)用,導(dǎo)致了用戶難 于定義基于XACML的ABAC策略;并且在用戶定義基于XACML的ABAC策略時(shí),通過人工方式 寫出復(fù)雜的基于XACML的ABAC策略過程中容易出現(xiàn)錯(cuò)誤。
發(fā)明內(nèi)容
本發(fā)明的目的是針對(duì)現(xiàn)有技術(shù)中存在的問題,提出一種訪問控制策略生成方法及
裝置,從而解決現(xiàn)有技術(shù)中用戶難于定義基于XACML的ABAC策略以及通過人工方式寫出復(fù)
雜的基于XACML的ABAC策略過程中容易出現(xiàn)錯(cuò)誤的問題。 為實(shí)現(xiàn)上述目的,本發(fā)明提供了一種訪問控制策略生成方法,包括 根據(jù)用戶通過預(yù)先建立的基于屬性的訪問控制ABAC策略視圖模板輸入的ABAC策
略信息,生成ABAC策略表達(dá)式; 根據(jù)預(yù)先設(shè)置的ABAC策略視圖模板與可擴(kuò)展訪問控制標(biāo)記語(yǔ)言XACML模板之間 的映射規(guī)則,將所述ABAC策略表達(dá)式轉(zhuǎn)換成符合XACML模板的基于XACML的ABAC策略。
為實(shí)現(xiàn)上述目的,本發(fā)明還提供了一種訪問控制策略生成裝置,包括
生成模塊,用于根據(jù)用戶通過預(yù)先建立的ABAC策略視圖模板輸入的ABAC策略信 息,生成ABAC策略表達(dá)式; 轉(zhuǎn)換模塊,用于根據(jù)預(yù)先設(shè)置的ABAC策略視圖模板與XACML模板之間的映射規(guī) 則,將所述ABAC策略表達(dá)式轉(zhuǎn)換成符合XACML模板的基于XACML的ABAC策略。
本發(fā)明的技術(shù)方案中根據(jù)輸入的ABAC策略信息生成ABAC策略表達(dá)式,再通過設(shè) 置的映射規(guī)則將ABAC策略表達(dá)式自動(dòng)轉(zhuǎn)換成基于XACML的ABAC策略,在此過程中用戶只 需通過ABAC策略視圖模板輸入一些簡(jiǎn)單的ABAC策略信息,無(wú)需以人工方式寫出復(fù)雜的基 于XACML的ABAC策略,減輕了用戶的負(fù)擔(dān),便于用戶理解和操作,從而解決了用戶難于定義 基于XACML的ABAC策略的問題;同時(shí)由于基于XACML的ABAC策略是自動(dòng)生成的,避免了用 戶以人工方式寫出復(fù)雜的基于XACML的ABAC策略過程中容易出現(xiàn)錯(cuò)誤的問題,從而保證了 基于XACML的ABAC策略的準(zhǔn)確性。 下面通過附圖和實(shí)施例,對(duì)本發(fā)明的技術(shù)方案做進(jìn)一步的詳細(xì)描述。
圖1為本發(fā)明訪問控制策略生成方法實(shí)施例一的流程圖; 圖2為本發(fā)明訪問控制策略生成方法實(shí)施例二的流程圖; 圖3為本發(fā)明ABAC策略視圖模板的結(jié)構(gòu)示意圖; 圖4為本發(fā)明XACML模板的結(jié)構(gòu)示意圖; 圖5為本發(fā)明XACML模板的整體結(jié)構(gòu)示意圖; 圖6為本發(fā)明ABAC策略視圖模板與XACML模板之間的映射規(guī)則的結(jié)構(gòu)示意圖; 圖7為本發(fā)明將ABAC策略表達(dá)式轉(zhuǎn)換成符合XACML模板的基于XACML的ABAC策 略的方法的流程圖; 圖8為本發(fā)明實(shí)體約束表達(dá)式轉(zhuǎn)換成XACML策略模板中元素的示意圖; 圖9為本發(fā)明原子約束表達(dá)式轉(zhuǎn)換為XACML模板〈A卯ly〉的流程圖; 圖10為本發(fā)明原子約束表達(dá)式轉(zhuǎn)換成的XACML策略模板中元素的示意圖; 圖11為本發(fā)明復(fù)合約束表達(dá)式的多叉樹的結(jié)構(gòu)示意圖; 圖12為本發(fā)明多叉樹轉(zhuǎn)換成的XACML策略模板中元素的示意圖; 圖13為本發(fā)明訪問控制裝置實(shí)施例一的結(jié)構(gòu)示意圖; 圖14為本發(fā)明訪問控制裝置實(shí)施例二的結(jié)構(gòu)示意圖。
具體實(shí)施例方式
圖1為本發(fā)明訪問控制策略生成方法實(shí)施例一的流程圖,如圖1所示,該方法包 括 步驟101、根據(jù)用戶通過預(yù)先建立的ABAC策略視圖模板輸入的ABAC策略信息,生 成ABAC策略表達(dá)式; 步驟102、根據(jù)預(yù)先設(shè)置的ABAC策略視圖模板與XACML模板之間的映射規(guī)則,將 ABAC策略表達(dá)式轉(zhuǎn)換成符合XACML模板的基于XACML的ABAC策略。 本實(shí)施例的技術(shù)方案中根據(jù)輸入的ABAC策略信息生成ABAC策略表達(dá)式,再通過 設(shè)置的映射規(guī)則將ABAC策略表達(dá)式自動(dòng)轉(zhuǎn)換成基于XACML的ABAC策略,在此過程中用戶 只需通過ABAC策略視圖模板輸入一些簡(jiǎn)單的ABAC策略信息,無(wú)需以人工方式寫出復(fù)雜的 基于XACML的ABAC策略,減輕了用戶的負(fù)擔(dān),便于用戶理解和操作,從而解決了用戶難于定 義基于XACML的ABAC策略的問題;同時(shí)由于該方法中基于XACML的ABAC策略是自動(dòng)生成 的,避免了用戶以人工方式寫出復(fù)雜的基于XACML的ABAC策略過程中容易出現(xiàn)錯(cuò)誤的問 題,從而保證了基于XACML的ABAC策略的準(zhǔn)確性。 圖2為本發(fā)明訪問控制策略生成方法實(shí)施例二的流程圖,如圖2所示,
步驟201、建立ABAC策略視圖模板; ABAC策略視圖模板是直接面向用戶的ABAC策略表達(dá),用戶可以通過該ABAC策略 視圖模板輸入ABAC策略信息。實(shí)際操作中,ABAC策略視圖模板可以向用戶提供一個(gè)進(jìn)行策 略定義的視圖界面,用戶可以根據(jù)該視圖界面的提示輸入自己所需的ABAC策略信息,從而 完成對(duì)ABAC策略的定義。圖3為本發(fā)明ABAC策略視圖模板的結(jié)構(gòu)示意圖,如圖3所示,由 于XACML模板在結(jié)構(gòu)上具有樹狀結(jié)構(gòu)的特征,所以ABAC策略視圖模板也是以樹狀結(jié)構(gòu)表示 的,樹狀結(jié)構(gòu)是以節(jié)點(diǎn)的形式組織屬性定義和策略定義中的各個(gè)元素。ABAC策略視圖模板
6可包括屬性定義和策略定義二個(gè)部分,屬性定義可包括主體屬性集、資源屬性集、授權(quán)屬性 集和環(huán)境屬性集四種實(shí)體屬性集。每個(gè)實(shí)體屬性集均包括多個(gè)實(shí)體屬性,即多個(gè)原子屬性。 策略定義可包括若干策略,每個(gè)策略包括若干規(guī)則,每條規(guī)則均可包括主體約束集、資源約 束集、授權(quán)約束集和環(huán)境約束集四種實(shí)體約束集。每個(gè)實(shí)體約束集均可包括多個(gè)實(shí)體約束, 即多個(gè)原子約束和多個(gè)復(fù)合約束。用戶可以通過定義各類實(shí)體屬性集下包括的原子屬性進(jìn) 行屬性定義,即定義實(shí)體約束中要使用的原子屬性;用戶還可以通過定義各個(gè)實(shí)體約束集 包括的原子約束和/或復(fù)合約束進(jìn)行安全策略的定義。其中,原子約束還可稱為簡(jiǎn)單約束 (Simple Rule,簡(jiǎn)稱SR),其可以通過例如(屬性,操作符,屬性值)表達(dá)式或者(屬性,操 作符,屬性)表達(dá)式來(lái)表示;復(fù)合約束(Complex Rule,簡(jiǎn)稱CR)為各原子約束的任意的邏 輯復(fù)合,例如al、a2和a3為三個(gè)原子約束表達(dá)式,則al and(a2 or a3)即為一條復(fù)合約束 表達(dá)式。采用樹狀結(jié)構(gòu)組織ABAC策略視圖模板,對(duì)于用戶來(lái)說(shuō)易于理解、便于操作,并且可 以使ABAC策略視圖模板中的元素與XACML模板中的元素實(shí)現(xiàn)完全映射以保證從ABAC策略 表達(dá)式到基于XACML的ABAC策略轉(zhuǎn)換的順利進(jìn)行。
步驟202 、建立XACML模板; 本實(shí)施例中可以利用XACML標(biāo)準(zhǔn)中定義的38種元素對(duì)ABAC策略進(jìn)行描述,從而 生成基于XACML的ABAC策略。例如,其常用的元素包括〈Policy〉(策略)、〈Rule〉(規(guī)則)、 〈Target〉(目標(biāo))、〈A卯ly〉(請(qǐng)求)、〈Condition〉(條件)等,實(shí)際應(yīng)用中,可以根據(jù)需要 利用XACML定義的元素中的其它元素對(duì)ABAC策略進(jìn)行描述。圖4為本發(fā)明XACML模板的 結(jié)構(gòu)示意圖,如圖4所示,XACML模板為樹狀結(jié)構(gòu),圖4的XACML模板中僅列出了一些外層 的元素,例如圖4中的〈Policy〉、〈Rule〉、〈Target〉、〈A卯ly〉以及〈Condition〉元素,其中 〈Policy〉和〈Rule〉為XACML模板的二種頂層元素,而內(nèi)層的元素在此沒有詳細(xì)列出,并且 該XACML模板僅為一種示例,不能成為對(duì)本發(fā)明技術(shù)方案的限制。 其中,〈Target〉本質(zhì)上是一個(gè)布爾表達(dá)式,其固定元素結(jié)構(gòu)表達(dá)了一種固定 的邏輯關(guān)系。〈Target〉可中以包括四個(gè)實(shí)體元素集合,分別是〈Sub jects〉(主體)、 〈Resources〉(資源)、〈Actions〉(授權(quán))禾口 〈Enviro騰nts〉(環(huán)境),每一個(gè)實(shí)體元素 集合中可以包含一個(gè)或多個(gè)相應(yīng)的實(shí)體元素,例如,〈Subjects〉中可以包括一個(gè)或多個(gè) 〈Subject〉、 〈Resource〉中可以包括一個(gè)或多個(gè)〈Resource〉、 〈Action〉中可以包括一個(gè)或 多個(gè)〈Action〉以及〈Environment〉中可以包括一個(gè)或多個(gè)〈Environment〉。上述每一個(gè)實(shí) 體元素還可以包括一個(gè)或多個(gè)相應(yīng)的實(shí)體匹配元素,分別是〈SubjectMatch〉(主體匹配)、 〈ResourceMatch〉(資源匹配)、〈ActionMatch〉(授權(quán)匹配)禾口 〈Enviro騰ntMatch〉(環(huán)境 匹配)。上述〈Target〉中的元素用于描述具體的ABAC策略,因圖4僅為XACML模板的示意 圖,所以上述〈Target〉中的元素在圖4中未示出。 〈Condition〉本質(zhì)上也是一個(gè)布爾表達(dá)式,用來(lái)表示資源訪問請(qǐng)求應(yīng)滿足的約束 條件。當(dāng)某一請(qǐng)求通過〈Rule〉中〈Target〉的評(píng)估,如果該〈Rule〉中〈Condition〉存在, 則使用〈Condition〉進(jìn)行進(jìn)一步的計(jì)算。 〈Target〉與〈Condition〉的區(qū)別在于〈Target〉具有固定的元素結(jié)構(gòu)和計(jì)算邏 輯,〈Condition〉雖然不具備上述特點(diǎn),但是它更加靈活,策略編寫者甚至可以使用各種元 素在〈Condition〉中構(gòu)造和〈Target〉相同的結(jié)構(gòu);〈Target〉中最終表達(dá)的是一種屬性值 與屬性間的簡(jiǎn)單匹配關(guān)系,這是因?yàn)椤碩arget〉的作用是索引,考慮到效率問題,其匹配關(guān)系不能定義的過于復(fù)雜,而在〈Condition〉中,可以定義更加復(fù)雜的匹配關(guān)系,比如可以在 表達(dá)式中的屬性值、屬性和子表達(dá)式中任取二種以構(gòu)造具有實(shí)際意義的匹配關(guān)系。
為進(jìn)一步說(shuō)明XACML模板中的各種元素,可參見圖5,圖5為本發(fā)明XACML模板的 整體結(jié)構(gòu)示意圖。 一條策略〈Policy〉中必須包含一個(gè)目標(biāo)〈Target〉元素,用于在策略查 找的過程中,確定策略是否適合用于對(duì)指定的請(qǐng)求進(jìn)行訪問控制。 一條策略中可以包含0 條、1條或多條規(guī)則〈Rule〉,策略中提供了標(biāo)準(zhǔn)的規(guī)則組合算法來(lái)處理多條規(guī)則對(duì)同一請(qǐng) 求進(jìn)行評(píng)估時(shí)出現(xiàn)的沖突,其中當(dāng)策略中包含0條規(guī)則時(shí)表示該條策略不對(duì)訪問請(qǐng)求進(jìn)行 控制。規(guī)則是表達(dá)訪問控制策略語(yǔ)義的最小元素,包括實(shí)體約束,實(shí)體約束的邏輯表達(dá)式構(gòu) 成條件〈Condition〉,該條件用來(lái)對(duì)請(qǐng)求進(jìn)行評(píng)估,以便于使規(guī)則給出決策結(jié)果。規(guī)則不能 獨(dú)立存在,它必須被封裝在某條策略中。基于XACML的ABAC策略中的規(guī)則主要在〈Target〉 或〈Condition〉元素中定義。 步驟203、設(shè)置ABAC策略視圖模板與XACML模板之間的映射規(guī)則;
設(shè)置的ABAC策略視圖模板與XACML模板之間的映射規(guī)則要符合以下原則保證 ABAC策略表達(dá)式轉(zhuǎn)換成基于XACML的ABAC策略過程中,ABAC策略表達(dá)式中的各個(gè)實(shí)體約 束不丟失,以及各實(shí)體約束間的邏輯關(guān)系不改變。 在上述原則下,設(shè)置的ABAC策略視圖模板與XACML模板之間的映射規(guī)則可以如圖 6所示,圖6為本發(fā)明ABAC策略視圖模板與XACML模板之間的映射規(guī)則的結(jié)構(gòu)示意圖。ABAC 策略視圖模板與XACML模板之間的映射規(guī)則可包括以下二個(gè)部分ABAC策略視圖模板中實(shí) 體屬性集與XACML模板中元素之間的映射以及ABAC策略視圖模板中實(shí)體約束集與XACML 模板中元素之間的映射。其中,ABAC策略視圖模板的實(shí)體屬性集中的每個(gè)實(shí)體屬性均直接 映射到XACML模板中〈Target〉或者〈Condition〉中的元素Attribute ID (屬性標(biāo)識(shí))。而 ABAC策略視圖模板中的實(shí)體約束集中的實(shí)體約束可映射到〈Target〉中的〈Entity〉或者 〈Condition>中的〈Apply>。 步驟204、根據(jù)用戶通過ABAC策略視圖模板輸入的ABAC策略信息,生成ABAC策略 表達(dá)式; 用戶通過ABAC策略視圖模板輸入ABAC策略信息,ABAC策略信息可以包括屬性定 義以及策略定義中各元素(具體參見圖3)的內(nèi)容,例如,用戶可以輸入各實(shí)體屬性集中的 原子屬性的內(nèi)容、各實(shí)體約束集中的原子約束以及復(fù)合約束的內(nèi)容,以及策略名,規(guī)則名等 ABAC策略信息。特別地,用戶輸入的ABAC策略信息可以為空集,原子屬性的內(nèi)容、各實(shí)體約 束集中的原子約束以及復(fù)合約束的內(nèi)容等均為空集,即用戶可以不輸入上述ABAC策略信息。
根據(jù)用戶輸入的ABAC策略信息生成ABAC策略表達(dá)式。該ABAC策略表達(dá)式在包 括原子屬性表達(dá)式的基礎(chǔ)上,根據(jù)策略定義的需要還可以包括原子約束表達(dá)式和/或復(fù)合 約束表達(dá)式。特別地,ABAC策略表達(dá)式還可以為空策略,即ABAC策略表達(dá)式中既不包括原 子屬性表達(dá)式,也不包括原子約束表達(dá)式和復(fù)合約束表達(dá)式,ABAC策略表達(dá)式為一個(gè)空集 合。 步驟205、根據(jù)ABAC策略視圖與XACML模板之間的映射規(guī)則,將ABAC策略表達(dá)式 轉(zhuǎn)換成符合XACML模板的基于XACML的ABAC策略; 具體參見圖7,圖7為本發(fā)明將ABAC策略表達(dá)式轉(zhuǎn)換成符合XACML模板的基于 XACML的ABAC策略的方法的流程圖,步驟205具體包括
步驟2051 、將ABAC策略表達(dá)式中的原子屬性表達(dá)式轉(zhuǎn)換成XACML模板中 〈Target>或者〈Condition>中的Attribute ID ; 步驟2052 、將所述ABAC策略表達(dá)式中的原子約束表達(dá)式和/或復(fù)合約束表達(dá)式轉(zhuǎn) 換成XACML模板的〈Rule〉中的〈Target〉中的〈Entity〉或者〈Condition〉中的〈A卯ly〉;
ABAC策略視圖模板中,各實(shí)體約束集中的實(shí)體約束之間的關(guān)系是平等的,根據(jù)其 生成的各表達(dá)式之間的關(guān)系也是平等的。而在XACML策略模板中,〈Target〉和〈Condition〉 中雖然都可以容納各實(shí)體約束集中的實(shí)體約束表達(dá)式,但是二者的結(jié)構(gòu)和作用有所不同。 〈Target〉 一般容納原子約束表達(dá)式,用于確定策略或規(guī)則是否適合用于對(duì)某一請(qǐng)求進(jìn)行決 策;〈Condition〉是規(guī)則的主體,一般由復(fù)雜的布爾表達(dá)式構(gòu)成,用于對(duì)請(qǐng)求進(jìn)行決策。因 為布爾表達(dá)式過于復(fù)雜會(huì)影響策略的驗(yàn)證效率,所以應(yīng)將能被快速?zèng)Q策的實(shí)體約束表達(dá)式 放在〈Target〉中,這一方面能夠利用〈Target〉中實(shí)體約束表達(dá)式的過濾作用避免不必要 的〈Condition〉驗(yàn)證,另一方面也減小了 〈Condition〉的復(fù)雜度,從而提高策略的驗(yàn)證效 率。 因此,為保證最終生成的基于XACML的ABAC策略具有良好的驗(yàn)證效率,首先將所 述ABAC策略表達(dá)式中的原子約束表達(dá)式和/或復(fù)合約束表達(dá)式按照分類規(guī)則進(jìn)行分類處 理,也就是按照各表達(dá)式的復(fù)雜程度進(jìn)行分類,其中,原子約束表達(dá)式可以是如(第一操作 數(shù),操作符,第二操作數(shù))形式的表達(dá)式,其中,第一操作數(shù)可以為屬性,第二操作數(shù)可以為 屬性或者屬性值,即(第一操作數(shù),操作符,第二操作數(shù))可以為(屬性,操作符,屬性值) 或者(屬性,操作符,屬性)形式的表達(dá)式,其表示屬性與屬性值或兩個(gè)不同的屬性之間的 關(guān)系運(yùn)算,其中,屬性和屬性值可以為簡(jiǎn)單類型值,具體分類規(guī)則如下
l)SRO :形如(屬性,操作符,屬性值)的原子約束表達(dá)式,其中屬性為各種實(shí)體的 id、主體白勺ip—address或dns—name白勺——禾中。 2)SR1 :形如(屬性,操作符,屬性值)的原子約束表達(dá)式,其中屬性不屬于各種實(shí) 體的id,主體的ip-address或者dns-n咖e。 3)SR2:SR0、SR1之外的原子約束表達(dá)式,例如(屬性,操作符,屬性)形式的原子 約束表達(dá)式。
基于上述對(duì)原子約束表達(dá)式的分類,進(jìn)一步對(duì)復(fù)合約束表達(dá)式進(jìn)行分類
l)CRO :由SR0中原子約束表達(dá)式之間的"或"關(guān)系構(gòu)成的復(fù)合約束表達(dá)式。
2)CR1 :由SR0和SR1中原子約束表達(dá)式之間的"或"關(guān)系構(gòu)成的復(fù)合約束表達(dá)式。
3)CR2 :由SR0和SR1中原子約束表達(dá)式之間的"與"關(guān)系構(gòu)成的復(fù)合約束表達(dá)式。
4)CR3 :CR0、CR1以及CR2之外的其它復(fù)合約束表達(dá)式。 綜上所述,按照上述分類規(guī)則,可得到如下分類結(jié)果原子約束表達(dá)式可分為 SRO、 SR1和SR2三種類型,而復(fù)合約束表達(dá)式可分為CRO、 CR1、 CR2和CR3四種類型。
將分類結(jié)果按照分配規(guī)則轉(zhuǎn)換成XACML模板〈Rule〉或者〈Condition〉;分配規(guī)則 主要包括各分類結(jié)果中各實(shí)體約束表達(dá)式的復(fù)雜程度、各個(gè)分類結(jié)果中各實(shí)體約束表達(dá)式 間的相關(guān)性大小以及〈Target〉的長(zhǎng)度三方面因素。 具體地,可以參見圖8,圖8為本發(fā)明實(shí)體約束表達(dá)式轉(zhuǎn)換成XACML策略模板中元 素的示意圖。XACML模板中〈Target〉中的〈Entities〉可分為三種類型①〈Entities〉中 只包含一個(gè)〈Entity〉,并且〈Entity〉中只包含一個(gè)〈EntityMatch〉;②〈Entities〉中包含多個(gè)〈Entity〉,每個(gè)〈Entity〉中只包含一個(gè)〈EntityMatch〉;③〈Entities〉中包含一個(gè) 〈Entity〉,并且〈Entity〉中包含多個(gè)〈EntityMatch〉。上述XACML模板中〈Entities〉的數(shù) 量可以為多個(gè),〈Condition〉中〈A卯ly〉的數(shù)量也可以為多個(gè),圖中僅示出一個(gè)作為示例。 圖8中,SR0型原子約束表達(dá)式轉(zhuǎn)換成類型①的〈Entity〉,因類型①的〈Entities〉中只包 含一個(gè)〈Entity〉,〈Entity〉中只包含一個(gè)〈EntityMatch〉,所以轉(zhuǎn)換成〈Entity〉的實(shí)際過 程就是轉(zhuǎn)換成〈Entity〉中的〈EntityMatch〉;部分CR0中的復(fù)合約束表達(dá)式轉(zhuǎn)換成類型 ②中的一個(gè)〈Entity〉,部分CRl中的復(fù)合約束表達(dá)式轉(zhuǎn)換成類型②中的另一個(gè)〈Entity〉, 因類型②的〈Entities〉中每個(gè)〈Entity〉中只包含 一 個(gè)〈EntityMatch〉,所以轉(zhuǎn)換成 〈Entity〉的實(shí)際過程就是轉(zhuǎn)換成〈Entity〉中的〈EntityMatch〉;部分SR1型原子約束表達(dá) 式轉(zhuǎn)換成類型③的〈Entity〉中的一個(gè)〈EntityMatch〉,部分CR2型的復(fù)合約束表達(dá)式轉(zhuǎn)換 成類型③的〈Entity〉中的另一個(gè)〈EntityMatch〉 ;SR1中的其它原子約束表達(dá)式每個(gè)轉(zhuǎn)換 成〈Condition〉中的一個(gè)〈Apply〉,CRl中的其它復(fù)合約束表達(dá)式每個(gè)轉(zhuǎn)換成〈Condition〉 中的一個(gè)或多個(gè)〈A卯ly〉,CR2中的其它復(fù)合約束表達(dá)式每個(gè)轉(zhuǎn)換成〈Condition〉中的一個(gè) 或多個(gè)〈Apply〉。圖8中的轉(zhuǎn)換是在對(duì)各種約束進(jìn)行分類的基礎(chǔ)上,再按照分配規(guī)則進(jìn)行分 配的結(jié)果,該分配規(guī)則充分考慮了各分類結(jié)果中各實(shí)體約束表達(dá)式的復(fù)雜程度、各個(gè)分類 結(jié)果內(nèi)部各實(shí)體約束表達(dá)式間的相關(guān)性大小以及〈Target〉的長(zhǎng)度,按照上述分類規(guī)則以 及分配規(guī)則轉(zhuǎn)換成的基于XACML的ABAC策略,具有良好的驗(yàn)證效率。圖8中的示例中轉(zhuǎn)換 成〈Entity〉或〈Apply〉的實(shí)體約束表達(dá)式均包括原子約束表達(dá)式和復(fù)合約束表達(dá)式,實(shí)際 策略定義過程中還可以包括僅有原子約束表達(dá)式或者僅有復(fù)合約束表達(dá)式的情況。
在轉(zhuǎn)換過程中,按照分配規(guī)則將所述分類結(jié)果中適合轉(zhuǎn)換成XACML模板〈Rule〉中 的〈Target〉中的〈Entity〉的原子約束表達(dá)式和/或復(fù)合約束表達(dá)式轉(zhuǎn)換成〈Rule〉中的 〈Target〉中的〈Entity〉。在具體執(zhí)行過程中,將分類結(jié)果分別放入到不同的List(列表) 中,即將不同類型的原子約束表達(dá)式和復(fù)合約束表達(dá)式放入不同的List,然后對(duì)List進(jìn)行 掃描篩選,List中的原子約束表達(dá)式或復(fù)合約束表達(dá)式位置越靠前其優(yōu)先級(jí)越高,然后將 原子約束表達(dá)式或復(fù)合約束表達(dá)式進(jìn)行分解,按照分配規(guī)則,將其中適合轉(zhuǎn)換成〈Target〉 的原子約束表達(dá)式和/或復(fù)合約束表達(dá)式轉(zhuǎn)換成〈Target〉中的〈Entity〉,在轉(zhuǎn)換過程中原 子約束表達(dá)式或復(fù)合約束表達(dá)式按優(yōu)先級(jí)依次轉(zhuǎn)換,對(duì)優(yōu)先級(jí)高的原子約束表達(dá)式或復(fù)合 約束表達(dá)先進(jìn)行轉(zhuǎn)換。將未轉(zhuǎn)換成〈Target〉的原子約束表達(dá)式和/或復(fù)合約束表達(dá)式轉(zhuǎn) 換成XACML模板〈Rule〉中的〈Condition〉中的〈A卯ly〉。 其中,原子約束表達(dá)式轉(zhuǎn)換成〈Rule〉中的元素〈Condition〉中的〈Apply〉的步驟 可如圖9所示,圖9為本發(fā)明原子約束表達(dá)式轉(zhuǎn)換為XACML模板〈A卯ly〉的流程圖,原子 約束表達(dá)式為(第一操作數(shù),操作符,第二操作數(shù))形式的原子約束表達(dá)式,其轉(zhuǎn)換過程包 括 步驟2061 、創(chuàng)建〈A卯ly〉; 步驟2062、將原子約束表達(dá)式的操作符轉(zhuǎn)換成〈A卯ly〉中的Functionld ; 步驟2063、將原子約束表達(dá)式的第一操作數(shù)轉(zhuǎn)換成〈A卯ly〉中的元素; 步驟2064、將原子約束表達(dá)式的第二操作數(shù)轉(zhuǎn)換成〈A卯ly〉中的元素。 具體地,可參見圖10,圖10為本發(fā)明原子約束表達(dá)式轉(zhuǎn)換成的XACML策略模板中
元素的示意圖,本實(shí)施例中原子約束表達(dá)式為(第一操作數(shù),操作符,第二操作數(shù)),將操作符轉(zhuǎn)換成〈A卯ly〉中的Functionld,具體地,轉(zhuǎn)換成操作符對(duì)應(yīng)的XACML元素,即以XACML 語(yǔ)言表達(dá)的操作符;將第一操作數(shù)轉(zhuǎn)換成〈Apply〉中的元素,具體地,轉(zhuǎn)換成第一操作數(shù)對(duì) 應(yīng)的XACML元素,即以XACML語(yǔ)言表達(dá)的第一操作數(shù);將第二操作數(shù)轉(zhuǎn)換成〈A卯ly〉中的元 素,具體地,轉(zhuǎn)換成第二操作數(shù)對(duì)應(yīng)的XACML元素,即以XACML語(yǔ)言表達(dá)的第二操作數(shù)。圖 10中的轉(zhuǎn)換后的"操作符"、"第一操作數(shù)"和"第二操作數(shù)"具體應(yīng)為其對(duì)應(yīng)的XACML元素, 在此僅作為一種示例以說(shuō)明原子約束表達(dá)式的轉(zhuǎn)換過程。 其中,復(fù)合約束表達(dá)式轉(zhuǎn)換成〈Rule〉中的元素〈Condition〉中的〈A卯ly〉可采用 樹的遍歷這一運(yùn)算方法,本實(shí)施例中采用的是先序遍歷。 首先,將復(fù)合約束表達(dá)式按照優(yōu)先級(jí)順序轉(zhuǎn)換成多叉樹,優(yōu)先級(jí)順序是指復(fù)合約 束表達(dá)式中的各元素從左到右的排列順序; 例如,對(duì)于復(fù)合約束表達(dá)式al and a2 and a3 or(a4 or a5)and a6,其轉(zhuǎn)換成的 多叉樹可參見圖11,圖11為本發(fā)明復(fù)合約束表達(dá)式的多叉樹的結(jié)構(gòu)示意圖,圖11中的多叉 樹包括多個(gè)節(jié)點(diǎn),分別為al、a2、a3、a4、a5、a6、and禾P or,其中,al、 a2、 a3、 a4、 a5、 a6為 原子約束表達(dá)式,and和or為邏輯連接詞,并且多叉樹分為多個(gè)層次。
其次,對(duì)多叉樹中的節(jié)點(diǎn)進(jìn)行先序遍歷,將遍歷到的節(jié)點(diǎn)依次轉(zhuǎn)換成〈Condition〉 中的〈A卯ly〉; 多叉樹先序遍歷的節(jié)點(diǎn)依次為or、 and、 al、 a2、 a3、 and、 or、 a4、 a5和a6,按照上 述順序?qū)⒈闅v到的節(jié)點(diǎn)依次轉(zhuǎn)換成〈Condition〉中的〈A卯ly〉。其中,將遍歷到的邏輯連接 詞轉(zhuǎn)換成〈Apply〉中的Functionld ;將遍歷到的原子約束表達(dá)式轉(zhuǎn)換成〈A卯ly〉。具體地, 可參見圖12,圖12為本發(fā)明多叉樹轉(zhuǎn)換成的XACML策略模板中元素的示意圖,以圖11中的 多叉樹為例。將頂層的邏輯連接詞or轉(zhuǎn)換為〈A卯ly〉中的Functionld ;將原子約束表達(dá) 式al、a2、a3的邏輯連接詞and轉(zhuǎn)換成〈A卯ly〉中的Functionld,該〈Apply〉為or轉(zhuǎn)換成 的〈A卯ly〉的下一層;將原子約束表達(dá)式al、 a2、 a3轉(zhuǎn)換成〈A卯ly〉中的元素,該〈Apply〉 為and轉(zhuǎn)換成的〈Apply〉,也就是說(shuō)該〈Apply〉中Functionld中的and表明了 al、 a2、 a3 的邏輯關(guān)系;將另一個(gè)邏輯連接詞and轉(zhuǎn)換成另一個(gè)〈A卯ly〉中的Functionld,該〈A卯ly〉 與al、 a2、 a3的邏輯連接詞and轉(zhuǎn)換成的〈A卯ly〉為并列關(guān)系;將原子約束表達(dá)式a4、 a5 的邏輯連接詞or轉(zhuǎn)換為〈A卯ly〉中的Functionld,該〈A卯ly〉為邏輯連接詞and轉(zhuǎn)換成的 〈A卯ly〉的下一層;將原子約束表達(dá)式a4、 a5轉(zhuǎn)換成〈A卯ly〉中的元素,該〈A卯ly〉為or 轉(zhuǎn)換成的〈A卯ly〉,也就是說(shuō)該〈A卯ly〉中Functionld中的or表明了 a4、a5的邏輯關(guān)系; 將原子約束表達(dá)式a6轉(zhuǎn)換成〈A卯ly〉中的元素,〈Apply〉為頂層的邏輯連接詞or轉(zhuǎn)換成 的〈A卯ly〉。其中對(duì)al、a2、a3、a4、a5和a6的轉(zhuǎn)換與原子約束表達(dá)式轉(zhuǎn)換成〈Condition〉 中的〈A卯ly〉的方法相同,可以參見圖9和圖10,此處不再詳細(xì)描述。圖12中的轉(zhuǎn)換后的 "操作符"、各個(gè)"第一操作數(shù)"和各個(gè)"第二操作數(shù)"具體應(yīng)為其對(duì)應(yīng)的XACML元素,在此僅 作為一種示例以說(shuō)明復(fù)合約束表達(dá)式的轉(zhuǎn)換過程。 由上述轉(zhuǎn)換過程可以得出,多叉樹的層次數(shù)對(duì)應(yīng)〈Condition〉中〈A卯ly〉的層次 數(shù)。如果多叉樹的某層的節(jié)點(diǎn)為邏輯連接詞,則節(jié)點(diǎn)轉(zhuǎn)換后對(duì)應(yīng)該層的〈Apply〉中只含有 Functionld這一個(gè)元素,并且該元素的值為邏輯連接詞代表的邏輯關(guān)系。如果某層節(jié)點(diǎn) 為al、 a2等原子約束表達(dá)式,則原子約束表達(dá)式中的二個(gè)操作數(shù)轉(zhuǎn)換為〈Appl y>中的元 素,如果多叉樹的某一層包含多個(gè)節(jié)點(diǎn),那么這些節(jié)點(diǎn)每個(gè)轉(zhuǎn)換為一個(gè)〈A卯ly〉,轉(zhuǎn)換成的
11〈A卯ly〉是并列關(guān)系,并且這些〈A卯ly〉的邏輯關(guān)系為其上層〈A卯ly〉的Functionld中所 指示的邏輯關(guān)系。 步驟2053、對(duì)所有〈Target〉中的〈Entity〉中的〈Resource〉進(jìn)行取并集處理,生 成〈Policy〉中的〈Target〉。 〈Policy〉中的〈Target〉起到對(duì)策略進(jìn)行索引的作用,但由于ABAC策略視圖模板 的策略中并不直接包含各實(shí)體約束,因此需要利用策略中的每條規(guī)則轉(zhuǎn)換成的〈Rule〉中 的〈Target〉來(lái)構(gòu)造〈Policy〉的〈Target〉。 特別地,當(dāng)ABAC策略表達(dá)式為空策略時(shí),其轉(zhuǎn)換成的基于XACML的ABAC策略為空
隹A 朱n o 本實(shí)施例的技術(shù)方案中根據(jù)輸入的ABAC策略信息生成ABAC策略表達(dá)式,再通過 設(shè)置的映射規(guī)則將ABAC策略表達(dá)式自動(dòng)轉(zhuǎn)換成基于XACML的ABAC策略,在此過程中用戶 只需通過ABAC策略視圖模板輸入一些簡(jiǎn)單的ABAC策略信息,無(wú)需以人工方式寫出復(fù)雜的 基于XACML的ABAC策略,減輕了用戶的負(fù)擔(dān),便于用戶理解和操作,從而解決了用戶難于定 義基于XACML的ABAC策略的問題;同時(shí)由于該方法中基于XACML的ABAC策略是自動(dòng)生成 的,避免了用戶以人工方式寫出復(fù)雜的基于XACML的ABAC策略過程中容易出現(xiàn)錯(cuò)誤的問 題,從而保證了基于XACML的ABAC策略的準(zhǔn)確性。 圖13為本發(fā)明訪問控制裝置實(shí)施例一的結(jié)構(gòu)示意圖,如圖13所示,該裝置包括相 互連接的生成模塊1和轉(zhuǎn)換模塊2。生成模塊1根據(jù)用戶通過預(yù)先建立的ABAC策略視圖 模板輸入的ABAC策略信息,生成ABAC策略表達(dá)式;轉(zhuǎn)換模塊2根據(jù)預(yù)先設(shè)置的ABAC策略 視圖模板與XACML模板之間的映射規(guī)則,將生成模塊1生成的ABAC策略表達(dá)式轉(zhuǎn)換成符合 XACML模板的基于XACML的ABAC策略。 圖14為本發(fā)明訪問控制裝置實(shí)施例二的結(jié)構(gòu)示意圖,如圖14所示,本實(shí)施例在實(shí) 施例一的基礎(chǔ)上增設(shè)了第一建立模塊3、第二建立模塊4以及設(shè)置模塊5。第一建立模塊3 分別與生成模塊1以及設(shè)置模塊5連接,第二建立模塊4與設(shè)置模塊5連接,設(shè)置模塊5與 轉(zhuǎn)換模塊2連接。第一建立模塊3建立ABAC策略視圖模板;第二建立模塊4建立XACML模 板;設(shè)置模塊5設(shè)置第一建立模塊3建立的ABAC策略視圖模板與第二建立模塊4建立的 XACML模板之間的映射規(guī)則;用戶通過第一建立模塊3建立的ABAC策略視圖模板輸入ABAC 策略信息,并由第一建立模塊3將ABAC策略信息發(fā)送給生成模塊1。 本實(shí)施例中的訪問控制裝置根據(jù)用戶輸入的ABAC策略信息生成ABAC策略表達(dá) 式,再通過設(shè)置的映射規(guī)則將ABAC策略表達(dá)式自動(dòng)轉(zhuǎn)換成基于XACML的ABAC策略,在此過 程中用戶只需通過ABAC策略視圖模板輸入一些簡(jiǎn)單的ABAC策略信息,無(wú)需以人工方式寫 出復(fù)雜的基于XACML的ABAC策略,減輕了用戶的負(fù)擔(dān),便于用戶理解和操作,從而解決了 用戶難于定義基于XACML的ABAC策略的問題;同時(shí)由于訪問控制裝置可以自動(dòng)生成基于 XACML的ABAC策略,避免了用戶以人工方式寫出復(fù)雜的基于XACML的ABAC策略過程中容易 出現(xiàn)錯(cuò)誤的問題,從而保證了基于XACML的ABAC策略的準(zhǔn)確性。 最后應(yīng)說(shuō)明的是以上實(shí)施例僅用以說(shuō)明本發(fā)明的技術(shù)方案而非對(duì)其進(jìn)行限制, 盡管參照較佳實(shí)施例對(duì)本發(fā)明進(jìn)行了詳細(xì)的說(shuō)明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解其依 然可以對(duì)本發(fā)明的技術(shù)方案進(jìn)行修改或者等同替換,而這些修改或者等同替換亦不能使修 改后的技術(shù)方案脫離本發(fā)明技術(shù)方案的精神和范圍。
權(quán)利要求
一種訪問控制策略生成方法,其特征在于,包括根據(jù)用戶通過預(yù)先建立的基于屬性的訪問控制ABAC策略視圖模板輸入的ABAC策略信息,生成ABAC策略表達(dá)式;根據(jù)預(yù)先設(shè)置的ABAC策略視圖模板與可擴(kuò)展訪問控制標(biāo)記語(yǔ)言XACML模板之間的映射規(guī)則,將所述ABAC策略表達(dá)式轉(zhuǎn)換成符合XACML模板的基于XACML的ABAC策略。
2. 根據(jù)權(quán)利要求1所述的方法,其特征在于,所述ABAC策略表達(dá)式包括原子屬性表達(dá)式。
3. 根據(jù)權(quán)利要求2所述的方法,其特征在于,所述ABAC策略表達(dá)式還包括原子約束表 達(dá)式和/或復(fù)合約束表達(dá)式。
4. 根據(jù)權(quán)利要求l所述的方法,其特征在于,所述根據(jù)用戶通過預(yù)先建立的ABAC策略 視圖模板輸入的ABAC策略信息,生成ABAC策略表達(dá)式之前還包括建立所述ABAC策略視圖模板。
5. 根據(jù)權(quán)利要求1所述的方法,其特征在于,所述根據(jù)預(yù)先設(shè)置的ABAC策略視圖模 板與XACML模板之間的映射規(guī)則,將所述ABAC策略表達(dá)式轉(zhuǎn)換成符合XACML模板的基于 XACML的ABAC策略之前還包括建立所述XACML模板。
6. 根據(jù)權(quán)利要求1所述的方法,其特征在于,所述根據(jù)預(yù)先設(shè)置的ABAC策略視圖模 板與XACML模板之間的映射規(guī)則,將所述ABAC策略表達(dá)式轉(zhuǎn)換成符合XACML模板的基于 XACML的ABAC策略之前還包括設(shè)置所述ABAC策略視圖模板與所述XACML模板之間的映射規(guī)則。
7. 根據(jù)權(quán)利要求1至6任一所述的方法,其特征在于,所述根據(jù)預(yù)先設(shè)置的ABAC策略 視圖模板與XACML模板之間的映射規(guī)則,將所述ABAC策略表達(dá)式轉(zhuǎn)換成符合XACML模板的 基于XACML的ABAC策略包括將所述ABAC策略表達(dá)式中的原子屬性表達(dá)式轉(zhuǎn)換成XACML模板的規(guī)則〈Rule〉中的目 標(biāo)〈Target〉或者條件〈Condition〉中的屬性標(biāo)識(shí)Attribute ID ;將所述ABAC策略表達(dá)式中的原子約束表達(dá)式和/或復(fù)合約束表達(dá)式轉(zhuǎn)換成XACML模 板的〈Rule〉中的〈Target〉中的實(shí)體〈Entity〉或者〈Condition〉中的請(qǐng)求〈Apply〉;對(duì)所有〈Rule〉中的〈Target〉中的〈Entity〉中的資源〈Resource〉進(jìn)行取并集處理, 生成策略〈Policy〉的〈Target〉。
8. 根據(jù)權(quán)利要求7所述的方法,其特征在于,將所述ABAC策略表達(dá)式中的原子約束表 達(dá)式和/或復(fù)合約束表達(dá)式轉(zhuǎn)換成XACML模板的〈Rule〉中的〈Target〉中的〈Entity〉或 者〈Condition〉中的〈A卯ly〉包括將所述ABAC策略表達(dá)式中的原子約束表達(dá)式和/或復(fù)合約束表達(dá)式按照分類規(guī)則進(jìn) 行分類處理,得出分類結(jié)果;按照分配規(guī)則將所述分類結(jié)果中適合轉(zhuǎn)換成XACML模板〈Rule〉中的〈Target〉中的 〈Entity〉的原子約束表達(dá)式和/或復(fù)合約束表達(dá)式轉(zhuǎn)換成〈Rule〉中的〈Target〉中的 〈Entity> ;將分類結(jié)果中未轉(zhuǎn)換成〈Target〉中的〈Entity〉的原子約束表達(dá)式和/或復(fù)合約束表 達(dá)式轉(zhuǎn)換成XACML模板〈Rule〉中的元素〈Condition〉。
9. 一種訪問控制策略生成裝置,其特征在于,包括生成模塊,用于根據(jù)用戶通過預(yù)先建立的ABAC策略視圖模板輸入的ABAC策略信息,生 成ABAC策略表達(dá)式;轉(zhuǎn)換模塊,用于根據(jù)預(yù)先設(shè)置的ABAC策略視圖模板與XACML模板之間的映射規(guī)則,將 所述ABAC策略表達(dá)式轉(zhuǎn)換成符合XACML模板的基于XACML的ABAC策略。
10. 根據(jù)權(quán)利要求9所述的裝置,其特征在于,還包括 第一建立模塊,用于建立所述ABAC策略視圖模板; 第二建立模塊,用于建立所述XACML模板;設(shè)置模塊,用于設(shè)置所述ABAC策略視圖模板與所述XACML模板之間的映射規(guī)則。
全文摘要
本發(fā)明公開了一種訪問控制策略生成方法及裝置。方法包括根據(jù)用戶通過預(yù)先建立的基于屬性的訪問控制ABAC策略視圖模板輸入的ABAC策略信息,生成ABAC策略表達(dá)式;根據(jù)預(yù)先設(shè)置的ABAC策略視圖模板與可擴(kuò)展訪問控制標(biāo)記語(yǔ)言XACML模板之間的映射規(guī)則,將所述ABAC策略表達(dá)式轉(zhuǎn)換成符合XACML模板的基于XACML的ABAC策略。本發(fā)明中用戶只需通過ABAC策略視圖模板輸入一些簡(jiǎn)單的ABAC策略信息,無(wú)需以人工方式寫出復(fù)雜的基于XACML的ABAC策略,從而解決了用戶難于定義基于XACML的ABAC策略的問題,并且避免了用戶以人工方式寫出復(fù)雜的基于XACML的ABAC策略過程中容易出現(xiàn)錯(cuò)誤的問題,從而保證了基于XACML的ABAC策略的準(zhǔn)確性。
文檔編號(hào)H04L29/06GK101771683SQ20091007611
公開日2010年7月7日 申請(qǐng)日期2009年1月7日 優(yōu)先權(quán)日2009年1月7日
發(fā)明者倪文婷, 江川, 葛琨, 郎波, 雷凱 申請(qǐng)人:北京航空航天大學(xué)