一種基于abac和rbac的權(quán)限控制方法
【專利摘要】本發(fā)明公開了一種基于ABAC和RBAC的權(quán)限控制方法,本方法基于ABAC和RBAC的權(quán)限控制,能夠?qū)崿F(xiàn)權(quán)限的動態(tài)控制和不同粒度的訪問控制,尤其適用于業(yè)務(wù)較復(fù)雜的系統(tǒng)中對于資源的權(quán)限控制。該控制方法不僅能夠更好的利用ABAC和RBAC的自身的優(yōu)勢,而且能夠?qū)烧呓Y(jié)合起來,按照定義的控制信息,靈活的對資源進(jìn)行不同粒度的控制,以滿足用戶對資源的不同粒度的權(quán)限控制。尤其適用于比較復(fù)雜的業(yè)務(wù)系統(tǒng)中對資源的訪問控制,能夠比較圓滿的滿足系統(tǒng)的權(quán)限控制需求。
【專利說明】-種基于ABAC和RBAC的權(quán)限控制方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明公開了一種基于ABAC和RBAC的權(quán)限控制方法,涉及計算機(jī)資源訪問控制 領(lǐng)域,具體涉及復(fù)雜業(yè)務(wù)系統(tǒng)中對資源的訪問相關(guān)控制。
【背景技術(shù)】
[0002] 訪問控制作為一種重要的安全措施在系統(tǒng)安全中得到廣泛的用用,在針對訪問控 制的研究中產(chǎn)生了各種不同的訪問控制模型,這些模型的目標(biāo)是禁止未授權(quán)用戶訪問資 源。訪問控制核心是訪問控制策略和基于策略的授權(quán)判定,訪問控制策略描述了系統(tǒng)的安 全需求,訪問控制模型主要研究的是訪問控制策略的表示,而訪問控制策略自身是否安全 以及其是否能夠真實、及時的反應(yīng)實際安全需求則直接影響整個系統(tǒng)的安全性和用戶對系 統(tǒng)的滿意度,為了滿足復(fù)雜系統(tǒng)對訪問控制模型的需求。
[0003] 傳統(tǒng)的訪問控制模型,如自主訪問控制DAC(Discretionary Access Control)、 強(qiáng)制訪問控制MAC(Mandatory Access Control)、基于角色的訪問控制RBAC(Role Based Access Control)和基于屬性的訪問控制模型 ABAC(Attribute Based Access Control) 等,并不能完全適用現(xiàn)今對資源的訪問控制的要求,他們不能表示復(fù)雜的場景對資源的訪 問控制策略,對主體和資源的描述都比較片面,而且往往無法滿足對訪問資源控制的需求。
[0004] 本文針對以上問題提出了一種有效的解決方法。
【發(fā)明內(nèi)容】
[0005] 本發(fā)明的目的是提供一種基于ABAC和RBAC的權(quán)限控制方法。
[0006] 本發(fā)明的目的是按以下方式實現(xiàn)的,包括以下步驟和內(nèi)容: 步驟一:權(quán)限模型的實體類定義,實體類的定義的信息包括基本信息、控制項信息、分 配結(jié)果表信息和維度信息; 步驟二:權(quán)限模型控制觸發(fā)點設(shè)置,基于步驟一定義的實體類,將該實體類與需要控制 業(yè)務(wù)資源對象關(guān)聯(lián)起來,即設(shè)置權(quán)限模型控制的觸發(fā)點; 步驟三:權(quán)限模型控制條件設(shè)置,根據(jù)步驟一定義的模型實體類,獲取定義的控制項信 息,然后對定義的各個控制項,設(shè)置對應(yīng)控制的條件,并將設(shè)置的條件持久化,以便后面步 驟調(diào)用; 步驟四:權(quán)限模型訪問控制的調(diào)用,當(dāng)用戶訪問某個業(yè)務(wù)資源時,如果該業(yè)務(wù)資源對象 經(jīng)過步驟二的設(shè)置,則會根據(jù)步驟二設(shè)置的關(guān)聯(lián)關(guān)系,獲取定義的實體類信息,然后根據(jù)實 體類信息,獲取步驟三定義的模型控制的條件信息; 步驟五:權(quán)限模型控制條件的解析,將步驟四獲取出來的控制條件,按照類型不同,調(diào) 用不同的條件解析器進(jìn)行解析,然后將結(jié)果返回; 步驟六:根據(jù)返回結(jié)果,訪問資源。根據(jù)步驟五解析的模型控制條件結(jié)果,對資源進(jìn)行 控制訪問。
[0007] 所述基于ABAC和RBAC的權(quán)限控制方法,步驟一,定義權(quán)限模型的實體類,除了包 括定義的基本信息之外,還需定義控制項信息,對于基于屬性權(quán)限對象來說,則需定義屬性 控制項集合AttributeltemCollection,里面包括了定義的屬性的項名稱以及該項對應(yīng)的 屬性資源的類型,包括主體屬性和環(huán)境變量;對于基于角色的權(quán)限對象來說,則需定義對應(yīng) 的數(shù)據(jù)源信息DataSourceCollection,里面包括數(shù)據(jù)源的編號、類型以及分配時的設(shè)置信 肩、。
[0008] 所述基于ABAC和RBAC的權(quán)限控制方法,步驟二,設(shè)置權(quán)限模型控制觸發(fā)點,選取 待控制的業(yè)務(wù)資源對象,并將定義的模型與業(yè)務(wù)資源對象關(guān)聯(lián)起來,對于基于屬性權(quán)限對 象,主要是將定義的模型信息與業(yè)務(wù)資源對象關(guān)聯(lián)ResAttributeRelation ;對于基于角色 的權(quán)限對象,除了定義的模型信息與業(yè)務(wù)資源對象關(guān)聯(lián)信息ResourceRelation之外,還需 要定義相關(guān)對應(yīng)的關(guān)聯(lián)字段信息ElementMappingCollection。
[0009] 所述基于ABAC和RBAC的權(quán)限控制方法,步驟三,設(shè)置權(quán)限模型控制條件,對于基 于屬性的權(quán)限對象,主要根據(jù)定義的屬性項信息,設(shè)置該屬性項對應(yīng)的條件表達(dá)式;對于 基于角色的權(quán)限對象,則根據(jù)定義的控制信息,定義模型控制的條件信息,包括規(guī)則或者枚 舉。
[0010] 所述基于ABAC和RBAC的權(quán)限控制方法,步驟四到步驟六所述的權(quán)限模型訪問控 制的調(diào)用、條件解析,其主要的步驟包括以下幾步: 1) 用戶請求對資源進(jìn)行訪問,觸發(fā)了權(quán)限模型的控制; 2) 獲取基于屬性權(quán)限對象的控制信息ResAttributeRelation,如果該資源不控制屬 性權(quán)限,則直接跳過屬性權(quán)限的控制;如果控制屬性權(quán)限,則繼續(xù)執(zhí)行以下步驟; 3) 獲取屬性權(quán)限的定義信息AttributePermission,屬性權(quán)限的定義信息,包括定義 的屬性項類型和屬性項名稱; 4) 獲取屬性權(quán)限的控制信息AttributeAssignment,首先獲取上一步定義的屬性項信 息,然后根據(jù)獲取的屬性項,獲取每個屬性項設(shè)置的控制信息; 5) 解析屬相權(quán)限的控制信息,根據(jù)上一步獲取的控制信息,調(diào)用屬性權(quán)限解析引擎,將 控制信息進(jìn)行解析,將結(jié)果返回;根據(jù)返回的布爾結(jié)果,如果是FALSE,則拒絕訪問資源對 象;如果是TRUE,則繼續(xù)執(zhí)行后面的步驟; 6) 獲取基于角色權(quán)限對象控制信息ResourceRelation,如果不存在控制信息,則直接 訪問資源對象;如果存在控制信息,則繼續(xù)下面的步驟; 7) 獲取基于角色權(quán)限對象的定義信息PermissionObject,定義的信息主要包括承載 的數(shù)據(jù)源以及分配結(jié)果表設(shè)置的信息; 8) 獲取基于角色權(quán)限對象的控制信息DataAssignment,根據(jù)前面步驟定義的信息,獲 取對應(yīng)的控制信息; 9) 解析基于角色權(quán)限對象的控制信息,交給基于角色權(quán)限模型解析引擎和數(shù)據(jù)訪問引 擎,對獲取的數(shù)據(jù)進(jìn)行條件過濾,然后根據(jù)過濾之后的結(jié)果,對資源進(jìn)行訪問。
[0011] 本發(fā)明的優(yōu)異效果:本發(fā)明公開了一種基于ABAC和RBAC的權(quán)限控制方法,能夠?qū)?現(xiàn)權(quán)限的動態(tài)控制和不同粒度的訪問控制,尤其適用于業(yè)務(wù)較復(fù)雜的系統(tǒng)中對于資源的權(quán) 限控制。該控制方法不僅能夠更好的利用ABAC和RBAC的自身的優(yōu)勢,而且能夠?qū)烧呓Y(jié) 合起來,按照定義的控制信息,靈活的對資源進(jìn)行不同粒度的控制,以滿足用戶對資源的不 同粒度的權(quán)限控制。
【專利附圖】
【附圖說明】
[0012] 圖1是權(quán)限控制模型總體框架圖; 圖2是權(quán)限模型訪問控制總體流程圖; 圖3是權(quán)限模型控制流程圖。
【具體實施方式】
[0013] 參照說明書附圖對本發(fā)明的一種基于ABAC和RBAC的權(quán)限控制方法作以下詳細(xì)地 說明。
[0014] 本發(fā)明的目的在于彌補(bǔ)現(xiàn)有的單個權(quán)限控制模型自身存在的缺憾,以滿足復(fù)雜業(yè) 務(wù)系統(tǒng)中對業(yè)務(wù)資源的控制。ABAC模型考慮主體、資源和訪問所處環(huán)境的屬性來描述策略, 相比于傳統(tǒng)的訪問控制策略,能夠解決復(fù)雜信息系統(tǒng)中的粗粒度訪問控制,但是無法滿足 用戶對于細(xì)微粒度權(quán)限的訪問控制。而RBAC通過"角色"建立起用戶和資源的關(guān)系,定義 了細(xì)微粒度的權(quán)限控制信息,但是無法定義粗粒度的訪問控制信息,存在著一定的局限性。
[0015] 為此,本發(fā)明公開了一種基于ABAC和RBAC的權(quán)限控制方法,該方法主要由權(quán)限模 型定義和權(quán)限模型控制兩部分組成。所述基于ABAC和RBAC的權(quán)限控制方法的步驟如下: 步驟一:權(quán)限模型的實體類定義。實體類的定義的信息包括基本信息、控制項信息、分 配結(jié)果表的信息和維度信息; 步驟二:權(quán)限模型控制觸發(fā)點設(shè)置?;诓襟E一定義的實體類,將該實體類與需要控制 業(yè)務(wù)資源對象關(guān)聯(lián)起來,即設(shè)置權(quán)限模型控制的觸發(fā)點; 步驟三:權(quán)限模型控制條件設(shè)置。根據(jù)步驟一定義的模型實體類,獲取定義的控制項信 息,然后對定義的各個控制項,設(shè)置對應(yīng)控制的條件,并將設(shè)置的條件持久化,以便后面步 驟調(diào)用; 步驟四:權(quán)限模型訪問控制的調(diào)用。當(dāng)用戶訪問某個業(yè)務(wù)資源時,如果該業(yè)務(wù)資源對象 經(jīng)過步驟二的設(shè)置,則會根據(jù)步驟二設(shè)置的關(guān)聯(lián)關(guān)系,獲取步驟一定義的實體類信息,然后 根據(jù)實體類信息,獲取步驟三定義的模型控制的條件信息; 步驟五:權(quán)限模型控制條件的解析。將步驟四獲取出來的控制條件,按照類型不同,調(diào) 用不同的條件解析器進(jìn)行解析,然后將結(jié)果返回; 步驟六:根據(jù)返回結(jié)果,訪問資源。根據(jù)步驟五解析的模型控制條件結(jié)果,對資源進(jìn)行 控制訪問。
[0016] 優(yōu)選的是,所述的權(quán)限模型的實體類定義,除了包括定義的標(biāo)識、編號等基本信 息之外,還需定義控制項信息。對于基于屬性權(quán)限對象來說,則需定義屬性控制項集合 (AttributeltemCollection),里面包括了定義的屬性的項名稱以及該項對應(yīng)的屬性資源 的類型(包括主體屬性和環(huán)境變量);對于基于角色的權(quán)限對象來說,則需定義對應(yīng)的數(shù)據(jù) 源信息(DataSourceCollection),里面包括數(shù)據(jù)源的編號、類型以及分配時的一些相關(guān)設(shè) 置信息。
[0017] 優(yōu)選的是,所述的權(quán)限模型控制觸發(fā)點設(shè)置,選取待控制的業(yè)務(wù)資源對象,并將定 義的模型與業(yè)務(wù)資源對象關(guān)聯(lián)起來。對于基于屬性權(quán)限對象,主要是將定義的模型信息與 業(yè)務(wù)資源對象關(guān)聯(lián)(ResAttributeRelation);對于基于角色的權(quán)限對象,除了定義的模型 信息與業(yè)務(wù)資源對象關(guān)聯(lián)信息(ResourceRelation)之外,還需要定義相關(guān)對應(yīng)的關(guān)聯(lián)字 段信息(ElementMappingCollection) 〇
[0018] 優(yōu)選的是,所述的權(quán)限模型控制條件設(shè)置,對于基于屬性的權(quán)限對象,主要根據(jù)定 義的屬性項信息,設(shè)置該屬性項對應(yīng)的條件表達(dá)式;對于基于角色的權(quán)限對象,則根據(jù)定義 的控制信息,定義模型控制的條件信息(規(guī)則或者枚舉)。
[0019] 優(yōu)選的是,所述的權(quán)限模型訪問控制的調(diào)用、條件解析,其主要的步驟包括以下幾
[K 少: 1、 用戶請求對資源進(jìn)行訪問,觸發(fā)了權(quán)限模型的控制; 2、 獲取基于屬性權(quán)限對象的控制信息(ResAttributeRelation)。如果該資源不控制屬 性權(quán)限,則直接跳過屬性權(quán)限的控制;如果控制屬性權(quán)限,則繼續(xù)執(zhí)行以下步驟; 3、 獲取屬性權(quán)限的定義信息(AttributePermission)。屬性權(quán)限的定義信息,包括定義 的屬性項類型和屬性項名稱; 4、 獲取屬性權(quán)限的控制信息(AttributeAssignment)。首先獲取上一步定義的屬性項 信息,然后根據(jù)獲取的屬性項,獲取每個屬性項設(shè)置的控制信息; 5、 解析屬相權(quán)限的控制信息。根據(jù)上一步獲取的控制信息,調(diào)用屬性權(quán)限解析引擎,將 控制信息進(jìn)行解析,將結(jié)果返回;根據(jù)返回的布爾結(jié)果,如果是FALSE,則拒絕訪問資源對 象;如果是TRUE,則繼續(xù)執(zhí)行后面的步驟; 6、 獲取基于角色權(quán)限對象控制信息(ResourceRelation)。如果不存在控制信息,貝1J直 接訪問資源對象;如果存在控制信息,則繼續(xù)下面的步驟; 7、 獲取基于角色權(quán)限對象的定義信息(PermissionObject)。定義的信息主要包括承載 的數(shù)據(jù)源以及分配結(jié)果表設(shè)置的信息; 8、 獲取基于角色權(quán)限對象的控制信息(DataAssignment)。根據(jù)前面步驟定義的信息, 獲取對應(yīng)的控制信息; 9、 解析基于角色權(quán)限對象的控制信息。根據(jù)上一步的控制解析,交給基于角色權(quán)限模 型解析引擎和數(shù)據(jù)訪問引擎,對獲取的數(shù)據(jù)進(jìn)行條件過濾,然后根據(jù)過濾之后的結(jié)果,對資 源進(jìn)行訪問。 實施例
[0020] 按照圖1所示,具體實施步驟如下。
[0021] 步驟一:權(quán)限模型的實體類定義。實體類包含基于屬性權(quán)限實體類和基于角色的 實體類。
[0022] ( 1)基于屬性的權(quán)限實體類主要屬性 ///屬性控制項集合 GSPAttributeltemCollection AttributeItemCollection { get; set; } ///屬性權(quán)限分配結(jié)果表ID string ResultTablelD { get; set; } (2)基于角色的權(quán)限實體類主要屬性 ///對應(yīng)數(shù)據(jù)源集合。
[0023] GSPRowDataSourceCollection DataSourceCollection { get; set; } ///與其它數(shù)據(jù)權(quán)限對象之間的關(guān)系。
[0024] GSPRowAssociationCollection Associations { get; set; } ///權(quán)限分配設(shè)置。
[0025] GSPRowAssignSetting AssignSetting { get; set; } ///權(quán)限分配結(jié)果設(shè)置。
[0026] IPermissionResultSetting ResultSetting { get; set; } 步驟二:權(quán)限模型控制觸發(fā)點設(shè)置。將業(yè)務(wù)資源和第一步定義的權(quán)限對象關(guān)聯(lián)起來; (1) 基于屬性的權(quán)限對象與業(yè)務(wù)資源的關(guān)聯(lián)關(guān)系主要屬性 ///業(yè)務(wù)資源對象ID string BizObjID { get; set; } ///業(yè)務(wù)資源對象類型 GSPRacDataResourceType BizObjType { get; set; } ///權(quán)限對象ID [行權(quán)限對象ID或者列權(quán)限對象ID] string PermissionObjID { get; set; } ///元素之間的映射關(guān)系集合[行權(quán)限] GSPResRowE1ementMappingCollection ElementMappings { get; set; } (2) 基于角色的權(quán)限對象與業(yè)務(wù)資源的關(guān)聯(lián)關(guān)系主要屬性 ///業(yè)務(wù)資源對象ID string BizObjID { get; set; } ///業(yè)務(wù)資源對象類型 GSPRacDataResourceType BizObjType { get; set; } ///屬性權(quán)限對象ID string AttributeObjID { get; set; } 步驟三:權(quán)限模型控制條件設(shè)置。根據(jù)步驟一定義的模型實體類,獲取定義的控制項信 息,然后對定義的各個控制項,設(shè)置對應(yīng)控制的條件,并將設(shè)置的條件持久化,以便后面步 驟調(diào)用; 步驟四:權(quán)限模型訪問控制的調(diào)用。其主要的接口方法如下所示。
[0027] ( 1)基于屬性的訪問接口方法 III 〈summary> ///根據(jù)業(yè)務(wù)對象、操作,獲取字段權(quán)限的結(jié)果集合 III </summary) ///〈param 仙1116=〃〇13」10〃>業(yè)務(wù)資源對象10〈/^3四111> III〈param name="opID"> 操作 ID〈/param> ///〈returns〉單元格權(quán)限分配結(jié)果〈/returns〉 SPCellPermissionCollection GetCellPermissions(string objID, string opID); (2)基于角色的訪問接口方法 III 〈summary> ///根據(jù)業(yè)務(wù)對象、操作,獲取數(shù)據(jù)權(quán)限結(jié)果控制的過濾條件 III </summary) ///〈param name=〃objID〃> 業(yè)務(wù)資源對象 ID〈/param> ///〈param name="opID"> 操作 ID〈/param> ///〈returns〉控制的過濾條件集合〈/returns〉 GSPRacDataFilterCollection GetDataFilters(string objID, string opID); /// 〈summary> ///根據(jù)業(yè)務(wù)對象、操作、數(shù)據(jù)授權(quán)對象,獲取數(shù)據(jù)權(quán)限結(jié)果控制的過濾條件 /// </summary) ///〈param name=〃objID〃> 業(yè)務(wù)資源對象 ID〈/param> ///〈param name="opID"> 操作 ID〈/param> ///〈param name="permissionID"> 數(shù)據(jù)權(quán)限對象 ID〈/param> ///〈returns〉控制的過濾條件〈/returns〉 IRacDataFiIter GetDataFiIter (string objID, string opID, string permissionID); 步驟五:權(quán)限模型控制條件的解析。將步驟四獲取出來的控制條件,按照類型不同,調(diào) 用不同的條件解析器進(jìn)行解析,然后將結(jié)果返回; 步驟六:根據(jù)返回結(jié)果,訪問資源。根據(jù)步驟五解析的模型控制條件結(jié)果,對資源進(jìn)行 控制訪問。
[0028] 除說明書所述的技術(shù)特征外,均為本專業(yè)技術(shù)人員的已知技術(shù)。
【權(quán)利要求】
1. 一種基于ABAC和RBAC的權(quán)限控制方法,其特征在于包括以下步驟和內(nèi)容: 步驟一:權(quán)限模型的實體類定義,實體類的定義的信息包括基本信息、控制項信息、分 配結(jié)果表信息和維度信息; 步驟二:權(quán)限模型控制觸發(fā)點設(shè)置,基于步驟一定義的實體類,將該實體類與需要控制 業(yè)務(wù)資源對象關(guān)聯(lián)起來,即設(shè)置權(quán)限模型控制的觸發(fā)點; 步驟三:權(quán)限模型控制條件設(shè)置,根據(jù)步驟一定義的模型實體類,獲取定義的控制項信 息,然后對定義的各個控制項,設(shè)置對應(yīng)控制的條件,并將設(shè)置的條件持久化,以便后面步 驟調(diào)用; 步驟四:權(quán)限模型訪問控制的調(diào)用,當(dāng)用戶訪問某個業(yè)務(wù)資源時,如果該業(yè)務(wù)資源對象 經(jīng)過步驟二的設(shè)置,則會根據(jù)步驟二設(shè)置的關(guān)聯(lián)關(guān)系,獲取定義的實體類信息,然后根據(jù)實 體類信息,獲取步驟三定義的模型控制的條件信息; 步驟五:權(quán)限模型控制條件的解析,將步驟四獲取出來的控制條件,按照類型不同,調(diào) 用不同的條件解析器進(jìn)行解析,然后將結(jié)果返回; 步驟六:根據(jù)返回結(jié)果,訪問資源; 根據(jù)步驟五解析的模型控制條件結(jié)果,對資源進(jìn)行控制訪問。
2. 根據(jù)權(quán)利要求1所述基于ABAC和RBAC的權(quán)限控制方法,其特征在于:步驟一,定義 權(quán)限模型的實體類,除了包括定義的基本信息之外,還需定義控制項信息,對于基于屬性權(quán) 限對象來說,則需定義屬性控制項集合AttributeltemCollection,里面包括了定義的屬性 的項名稱以及該項對應(yīng)的屬性資源的類型,包括主體屬性和環(huán)境變量;對于基于角色的權(quán) 限對象來說,則需定義對應(yīng)的數(shù)據(jù)源信息DataSourceCollection,里面包括數(shù)據(jù)源的編號、 類型以及分配時的設(shè)置信息。
3. 根據(jù)權(quán)利要求1所述基于ABAC和RBAC的權(quán)限控制方法,其特征在于:步驟 二,設(shè)置權(quán)限模型控制觸發(fā)點,選取待控制的業(yè)務(wù)資源對象,并將定義的模型與業(yè)務(wù) 資源對象關(guān)聯(lián)起來,對于基于屬性權(quán)限對象,主要是將定義的模型信息與業(yè)務(wù)資源對 象關(guān)聯(lián)ResAttributeRelation ;對于基于角色的權(quán)限對象,除了定義的模型信息與業(yè) 務(wù)資源對象關(guān)聯(lián)信息ResourceRelation之外,還需要定義相關(guān)對應(yīng)的關(guān)聯(lián)字段信息 ElementMappingCollection。
4. 根據(jù)權(quán)利要求1所述基于ABAC和RBAC的權(quán)限控制方法,其特征在于:步驟三,設(shè)置 權(quán)限模型控制條件,對于基于屬性的權(quán)限對象,主要根據(jù)定義的屬性項信息,設(shè)置該屬性項 對應(yīng)的條件表達(dá)式;對于基于角色的權(quán)限對象,則根據(jù)定義的控制信息,定義模型控制的條 件信息,包括規(guī)則或者枚舉。
5. 根據(jù)權(quán)利要求1所述基于ABAC和RBAC的權(quán)限控制方法,其特征在于:步驟四到步 驟六所述的權(quán)限模型訪問控制的調(diào)用、條件解析,其主要的步驟包括以下幾步: (1) 用戶請求對資源進(jìn)行訪問,觸發(fā)了權(quán)限模型的控制; (2) 獲取基于屬性權(quán)限對象的控制信息ResAttributeRelation,如果該資源不控制屬 性權(quán)限,則直接跳過屬性權(quán)限的控制;如果控制屬性權(quán)限,則繼續(xù)執(zhí)行以下步驟; (3) 獲取屬性權(quán)限的定義信息AttributePermission,屬性權(quán)限的定義信息,包括定義 的屬性項類型和屬性項名稱; (4) 獲取屬性權(quán)限的控制信息八1:1:1^131^6488丨8111]16111:,首先獲取上一步定義的屬性項信 息,然后根據(jù)獲取的屬性項,獲取每個屬性項設(shè)置的控制信息; (5) 解析屬相權(quán)限的控制信息,根據(jù)上一步獲取的控制信息,調(diào)用屬性權(quán)限解析引擎, 將控制信息進(jìn)行解析,將結(jié)果返回;根據(jù)返回的布爾結(jié)果,如果是FALSE,則拒絕訪問資源 對象;如果是TRUE,則繼續(xù)執(zhí)行后面的步驟; (6) 獲取基于角色權(quán)限對象控制信息ResourceRelation,如果不存在控制信息,則直接 訪問資源對象;如果存在控制信息,則繼續(xù)下面的步驟; (7) 獲取基于角色權(quán)限對象的定義信息PermissionObject,定義的信息主要包括承載 的數(shù)據(jù)源以及分配結(jié)果表設(shè)置的信息; (8) 獲取基于角色權(quán)限對象的控制信息DataAssignment,根據(jù)前面步驟定義的信息,獲 取對應(yīng)的控制信息; (9) 解析基于角色權(quán)限對象的控制信息,交給基于角色權(quán)限模型解析引擎和數(shù)據(jù)訪問 引擎,對獲取的數(shù)據(jù)進(jìn)行條件過濾,然后根據(jù)過濾之后的結(jié)果,對資源進(jìn)行訪問。
【文檔編號】G06F21/62GK104217146SQ201410447978
【公開日】2014年12月17日 申請日期:2014年9月4日 優(yōu)先權(quán)日:2014年9月4日
【發(fā)明者】劉建華 申請人:浪潮通用軟件有限公司