專(zhuān)利名稱(chēng):一種基于角色的域間訪問(wèn)控制系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及采用信息安全技術(shù)對(duì)計(jì)算機(jī)資源進(jìn)行訪問(wèn)控制的系統(tǒng)。
技術(shù)背景訪問(wèn)控制(Access Control)就是通過(guò)某種途徑顯式地準(zhǔn)許或限制訪問(wèn) 能力及范圍的一種方法。通過(guò)訪問(wèn)控制服務(wù),可以限制對(duì)關(guān)鍵資源的訪 問(wèn),防止非法用戶的侵入或者因合法用戶的不慎操作所造成的破壞。訪問(wèn)控制基本模型包括三個(gè)部分1) 主體(Subject):發(fā)出訪問(wèn)操作、存取要求的主動(dòng)方,簡(jiǎn)記為S。 通常指用戶或用戶某個(gè)進(jìn)程等;2) 客體(Object):被訪問(wèn)的對(duì)象,簡(jiǎn)記為O。通??梢允潜徽{(diào)用的 程序、進(jìn)程、要存取的數(shù)據(jù)、信息等資源;3) 控制策略(Policy):是主體對(duì)客體的操作行為集和約束條件集。簡(jiǎn)記為P??刂撇呗允侵黧w對(duì)客體的訪問(wèn)規(guī)則集,這個(gè)規(guī)則集直接定義了 主體對(duì)客體可以的作用行為和客體對(duì)主體的條件約束。訪問(wèn)控制參考模型形象的描述了訪問(wèn)控制系統(tǒng)三個(gè)要素之間的行為 關(guān)系,我們可以使用三元組(S, O, P)來(lái)表示。其中S表示主體,O表 示客體,P表示許可。當(dāng)用戶(主體S)提出一系列對(duì)受保護(hù)的資源(客 體0)的訪問(wèn)請(qǐng)求后,由訪問(wèn)控制決定組件(Access Control Decision Function)ADF來(lái)判斷是否允許或拒絕這次請(qǐng)求,因此這種情況下,必須 先要確認(rèn)是合法的主體,也就是對(duì)主體進(jìn)行認(rèn)證。主體通過(guò)驗(yàn)證,才能 訪問(wèn)客體,但并不保證其有權(quán)限可以對(duì)客體進(jìn)行操作??腕w對(duì)主體的具 體約束由訪問(wèn)控制實(shí)施機(jī)構(gòu)AEF (Access Control Enforcement Function)來(lái)實(shí)現(xiàn)。AEF保證只有被ADF允許的訪問(wèn)申請(qǐng)才能作用在目標(biāo)上。 訪問(wèn)控制中對(duì)資源的訪問(wèn)控制主要包含以下幾個(gè)方面1) 保密性控制(Data Confidentiality):防止數(shù)據(jù)資源被非法讀出。2) 完整性控制(DataIntegrity):防止數(shù)據(jù)資源被非法改寫(xiě)。3) 有效性控制(DataAvailability):防止數(shù)據(jù)資源被非法用戶破壞, 保證任何情況下系統(tǒng)處于工作狀態(tài)。4) 可維護(hù)性必須有相應(yīng)的集中管理機(jī)制及安全管理工具,可以進(jìn) 行簡(jiǎn)單、方便、有效的管理操作。最初的訪問(wèn)控制僅僅是對(duì)進(jìn)入系統(tǒng)的控制,如簡(jiǎn)單的用戶/口令認(rèn)證。 隨著網(wǎng)絡(luò)的發(fā)展,訪問(wèn)控制技術(shù)發(fā)展的很快,有許多訪問(wèn)控制策略被提 出來(lái)。其中比較著名的訪問(wèn)控制策略主要是自主型訪問(wèn)控制DAC和強(qiáng) 制性訪問(wèn)控制MAC?;诮巧脑L問(wèn)控制RBAC是由Ferraiolo等人于20世紀(jì)90年代 初提出來(lái)的。美國(guó)國(guó)家標(biāo)準(zhǔn)化和技術(shù)委員會(huì)(NIST)成立了RBAC研究機(jī) 構(gòu),專(zhuān)門(mén)對(duì)基于角色的訪問(wèn)控制進(jìn)行研究。Sandhu等人在對(duì)RBAC進(jìn)行 深入研究的基礎(chǔ)上,在1996年提出了一個(gè)基于角色的訪問(wèn)控制參考模 型,即RBAC96模型。此后,又相繼提出了 RBAC97、 RBAC99以及各 種擴(kuò)展模型。RBAC的核心思想是通過(guò)引入"角色"這一 "中介",將用 戶和權(quán)限分離,使用戶和具體權(quán)限不再直接相關(guān),用戶通過(guò)角色來(lái)?yè)碛?訪問(wèn)權(quán)限,有了 "角色"的介入使系統(tǒng)的權(quán)限管理更加方便和靈活。 SandhuR.S于1996年正式提出的RBAC模型,包含RBAC0, RBAC1, RBAC2和RBAC3四種模型,分別就RBAC的基本組成角色、用戶以 及權(quán)限之間的關(guān)系做出定義(RBACO),考慮了角色層次架構(gòu)(RBAC1),加 入了安全策略限制(RBAC2),同時(shí)支持角色繼承和安全策略(RBAC3)等, 在此之后的RBAC研究基本上基于這這個(gè)架構(gòu)。目前RBAC基本上成為 主流控制技術(shù),大有取代DAC和MAC的趨勢(shì)。RBAC主要包括以下幾個(gè)方面的原則1) 角色繼承角色繼承是RBAC的一個(gè)重要內(nèi)容。它是指一個(gè)角色可以繼承另一 些角色,也就是說(shuō), 一個(gè)角色可直接或間接地繼承另一些角色的訪問(wèn)許 可。2) 最小權(quán)限原則所謂最小權(quán)限原則是指用戶所擁有的權(quán)力不能超過(guò)他執(zhí)行工作時(shí) 所需的權(quán)限。實(shí)現(xiàn)最小權(quán)限原則,需分清用戶的工作內(nèi)容,確定執(zhí)行該 項(xiàng)工作的最小權(quán)限集,然后將用戶限制在這些權(quán)限范圍之內(nèi)。3) 職責(zé)分離RBAC機(jī)制可被系統(tǒng)管理員用于執(zhí)行職責(zé)分離的策略。靜態(tài)職責(zé)分 離是指只有當(dāng)一個(gè)角色與用戶所屬的其他角色彼此不互斥時(shí),這個(gè)角色 才能授權(quán)給該用戶。動(dòng)態(tài)職責(zé)分離是指只有當(dāng)一個(gè)角色與一主體的任何 一個(gè)當(dāng)前活躍角色都不互斥時(shí),該角色才能成為該主體的另一個(gè)活躍角 色。4) 角色容量在創(chuàng)建新的角色時(shí),要指定角色的容量。在一個(gè)特定的時(shí)間段內(nèi), 有一些角色只能由一定人數(shù)的用戶占用。傳統(tǒng)RBAC控制模型沒(méi)有域的概念,但是現(xiàn)實(shí)的系統(tǒng)中,基于域的 資源控制大量存在,特別是對(duì)于不同域的資源控制,這要求不同域的用 戶可以互相訪問(wèn)資源,但是又要求用戶權(quán)限不能平等。同時(shí),用戶訪問(wèn) 不同域的資源,也即用戶所處的上下文環(huán)境發(fā)生了變化,這就要求權(quán)限 動(dòng)態(tài)改變以適應(yīng)所處的環(huán)境?,F(xiàn)有RBAC控制模型中,用戶角色作為一 種相對(duì)靜止的概念,無(wú)法滿足這種動(dòng)態(tài)變化。另外,現(xiàn)有基于RBAC的 擴(kuò)展模型中,雖然有域或者等同概念的提出,但仍然不能解決用戶跨域 訪問(wèn)角色變更問(wèn)題,并且對(duì)資源訪問(wèn)控制粒度過(guò)粗。發(fā)明內(nèi)容本發(fā)明的目的在與提出一種基于角色的域間訪問(wèn)控制系統(tǒng),通過(guò) 角色變更使得用戶權(quán)限適應(yīng)不同的訪問(wèn)客體,滿足用戶域間訪問(wèn)的需要。一種基于角色的域間訪問(wèn)控制系統(tǒng),包括用戶認(rèn)證模塊31,其特征 在于,還包括用戶上下文安全信息庫(kù)34、域控制模塊32和客體訪問(wèn)控制 模塊33,用戶上下文安全信息庫(kù)34用于記錄當(dāng)前經(jīng)過(guò)用戶認(rèn)證模塊31認(rèn)證 通過(guò)的用戶信息;域控制模塊32用于接收經(jīng)過(guò)用戶認(rèn)證模塊31認(rèn)證通過(guò)的訪問(wèn)請(qǐng)求, 根據(jù)用戶信息和訪問(wèn)請(qǐng)求中的客體信息確認(rèn)用戶是本域訪問(wèn)還是跨域訪 問(wèn),根據(jù)訪問(wèn)類(lèi)型分配用戶角色,將角色分配結(jié)果傳送給用戶上下文安 全信息庫(kù)34,并將用戶訪問(wèn)請(qǐng)求傳送給客體訪問(wèn)控制模塊33;客體訪問(wèn)控制模塊33用于接收來(lái)自用戶上下文安全信息庫(kù)34得用 戶信息和來(lái)自域控制模塊32的訪問(wèn)請(qǐng)求,判斷經(jīng)過(guò)角色分配后的用戶是 否有權(quán)訪問(wèn)客體,若是,用戶實(shí)施訪問(wèn),并將訪問(wèn)結(jié)果返回給用戶。所述域控制模塊包括域上下文感知器321、子域控制器322、中央域 控制器323和角色分配器324;域上下文感知器321用于接收來(lái)自用戶上下文安全信息庫(kù)34的用戶 信息和經(jīng)過(guò)用戶認(rèn)證模塊31認(rèn)證通過(guò)的訪問(wèn)請(qǐng)求,判斷用戶和客體是否 屬于同一域,若是,則將用戶信息和訪問(wèn)請(qǐng)求傳送給子域控制器322,否 則將用戶信息和訪問(wèn)請(qǐng)求傳送給中央域控制器323;子域控制器322用于接收來(lái)自域上下文感知器321的用戶信息和訪 問(wèn)請(qǐng)求,復(fù)位用戶原本域角色,將用戶訪問(wèn)請(qǐng)求傳送給所述客體訪問(wèn)控 制模塊33;中央域控制器323用于接收來(lái)自域上下文感知器321的用戶信息和訪問(wèn)請(qǐng)求,査詢(xún)預(yù)存的客體域間可訪問(wèn)性列表以判斷來(lái)自用戶所屬域的 用戶是否有權(quán)訪問(wèn)客體所屬域,若是,將客體域間可訪問(wèn)性列表、用戶 信息和訪問(wèn)請(qǐng)求傳送給角色分配器324;所述客體域間可訪問(wèn)性列表包括客體名稱(chēng)、客體所屬域ID、異域可 訪問(wèn)域ID列表和客體可訪問(wèn)角色列表,客體可訪問(wèn)角色列表包括本域用戶可訪問(wèn)角色列表和異域用戶可訪問(wèn)角色列表;角色分配器324用于接收來(lái)自中央域控制器323的客體域間可訪問(wèn) 性列表、用戶信息和訪問(wèn)請(qǐng)求,判斷用戶是否為全局用戶,若是,保持 用戶角色不變;否則,將用戶當(dāng)前角色的權(quán)限集P1與所述本域用戶可訪問(wèn)角色列表對(duì)應(yīng)的權(quán)限集P2作比較若P1包含P2,將用戶所屬域作為 異域的異域用戶可訪問(wèn)角色列表分配給用戶;若Pl與P2交集為空,將 隨機(jī)生成的例外角色分罕給用戶;否則,將Pl與P2的權(quán)限交集對(duì)應(yīng)的 角色列表分配給用戶;將角色分配結(jié)果傳送給用戶上下文信息庫(kù)34,并將訪問(wèn)請(qǐng)求傳送給 所述客體訪問(wèn)控制模塊33。所述客體訪問(wèn)控制模塊33包括事前評(píng)估單元331 、客體訪問(wèn)單元332 和事后審査單元333,事前評(píng)估單元331接收來(lái)自角色分配器324的訪問(wèn)請(qǐng)求和來(lái)自用戶 上下文安全信息庫(kù)34的用戶信息,判斷經(jīng)過(guò)角色分配后的用戶是否有權(quán) 訪問(wèn)客體,若是,驅(qū)動(dòng)客體訪問(wèn)單元332以實(shí)施具體訪問(wèn),訪問(wèn)完畢后 驅(qū)動(dòng)事后審査單元333對(duì)訪問(wèn)結(jié)果作進(jìn)一步的審核以濾掉不屬于當(dāng)前用 戶權(quán)限的結(jié)果對(duì)象,最后將審核后的訪問(wèn)結(jié)果反饋給用戶。所述事前評(píng)估單元331和事后審查單元333的審核方法為逐一提 取用戶被分配的角色,采用投票制判斷擔(dān)任該角色的用戶是否有權(quán)訪問(wèn) 客體,匯總投票結(jié)果,根據(jù)預(yù)定授權(quán)策略確定用戶是否有權(quán)訪問(wèn)客體或 者訪問(wèn)結(jié)果屬于用戶權(quán)限;投票規(guī)則如下I若角色包含于預(yù)存所述客體可訪問(wèn)角色列表,投贊成票; II若角色不包含于所述客體可訪問(wèn)角色列表當(dāng)角色為例外角色, 且客體可訪問(wèn)角色列表不包括任一例外角色,保持中立;否則,投反對(duì)本發(fā)明將不同域資源的用戶劃分域(組),從而為不同域的資源用 戶進(jìn)行了細(xì)粒度劃分,為克服現(xiàn)有RBAC模型的缺陷創(chuàng)建基礎(chǔ)條件;同時(shí), 為解決不同域的資源對(duì)權(quán)限不一樣的要求,采用了角色動(dòng)態(tài)分配,對(duì)目 標(biāo)資源訪問(wèn)控制,采用角色動(dòng)態(tài)分配;另外,為對(duì)目標(biāo)資源中領(lǐng)域?qū)ο蟮木?xì)化控制,對(duì)返回值進(jìn)行審査,從而將符合用戶角色的領(lǐng)域?qū)ο蠓?回給用戶。本發(fā)明通過(guò)角色變更適應(yīng)了上下文環(huán)境的變化,滿足了本域 和跨域的訪問(wèn)需求。
圖1為一種基于角色的域間訪問(wèn)控制模型;圖2為域模型示意圖;圖3為本發(fā)明控制模型的實(shí)現(xiàn)框架示意圖;圖4為客體訪問(wèn)控制子系統(tǒng)訪問(wèn)序列圖。
具體實(shí)施方式
下面參照附圖具體描述本發(fā)明圖1為基于角色的域間訪問(wèn)控制模型,包括用戶集U101、角色集R112、權(quán)限集P114、用戶會(huì)話分配US、會(huì)話集S104、用戶角色指派UR, 角色權(quán)限指派RP和會(huì)話角色激活的定義與現(xiàn)有的RBAC模型相同。用戶域分配UD,為用戶集U和域集D之間的二元關(guān)系,假定UD E UXD是一個(gè)域分配集合,那么(u, d)EUD表示用戶u被分配了一個(gè)域d。用戶域分配分兩種情況非全局用戶只能屬于一個(gè)子域;全局用 戶屬于整個(gè)系統(tǒng)的所有域。用戶所分配域是用戶角色的屬性之一;客體域分配OD是客體所對(duì)應(yīng)域的分配列表,是客體元素的屬性之在本發(fā)明,會(huì)話中不但帶有用戶標(biāo)識(shí)、角色信息,而且?guī)в杏蛐畔?(包括用戶域和用戶要訪問(wèn)的客體域),即會(huì)話域激活呈現(xiàn)了進(jìn)一步的域控制。對(duì)客體的請(qǐng)求是否經(jīng)過(guò)中央域控制器,是由會(huì)話中用戶域ID和要 '訪問(wèn)的客體域ID決定的,如果兩者相等,不經(jīng)過(guò),否則經(jīng)過(guò)。域上下文權(quán)限約束DCRCC106,指訪問(wèn)域所需要的角色條件規(guī)則。 艮卩 DCRCXMXXlUDCL2UDCL3U…,DCL產(chǎn)Pl+P2+P3+…,i=l, 2, 3,… Pl, P2, P3,…表示為某權(quán)限,這種形式的表達(dá)式能描述復(fù)雜的安全要求。 例如,域(部門(mén))A普通用戶修改資源需要有查看權(quán)限P1和修改權(quán)限P2, 或者用戶為全局用戶,具有較高的權(quán)限。用上面的表達(dá)式描述如下DCRCO (P1+P2+ (UerLevel=Normal)) U (UserLevel二High) 其中,UserLevel代表用戶級(jí)別,Normal代表普通用戶,High代表 全局用戶。域上下文權(quán)限約束是角色變更的必要條件。 對(duì)客體的訪問(wèn)控制,采用評(píng)估審查授權(quán)策略PP117。其步驟為(1) AOP(aspect-oriented programming,面向方面編程)攔截器在調(diào)用 客體前進(jìn)行攔截,此時(shí)攔截器以公平投票的方式?jīng)Q定當(dāng)前會(huì)話角色是否 有權(quán)限訪問(wèn)資源,如果通過(guò)投票,繼續(xù)對(duì)資源訪問(wèn),否則向用戶返回警告f曰息o(2) 客體調(diào)用返回,AOP攔截器攔截,對(duì)返回結(jié)果審查,看是否返 回超越用戶權(quán)限的客體。在評(píng)估審查的授權(quán)策略中,公平投票機(jī)制是一種靈活的權(quán)限策略控 審ij,后面模型具體實(shí)施中會(huì)詳述。本發(fā)明將系統(tǒng)內(nèi)的組織或機(jī)構(gòu)定義為域,每一個(gè)域有各自的上級(jí)域 和下級(jí)域,整個(gè)系統(tǒng)成樹(shù)型分布,稱(chēng)位于根節(jié)點(diǎn)的域?yàn)楦?。圖2為一 實(shí)施例示意圖,根域有三個(gè)下級(jí)域,分別為域l、域2和域3,域l有域11和域12兩個(gè)下級(jí)域,域2有域21和域22兩個(gè)下級(jí)域,域3有域31 和域32兩個(gè)下級(jí)域。域的建立基于如下元素(1) D:域集,指基于主體和資源所在區(qū)域的集合,在這里指系統(tǒng)中具有相互關(guān)系的組織或部門(mén)。(2) DI;域ID集,指域標(biāo)識(shí)符的集合,在整個(gè)系統(tǒng)中,域ID具 有唯一性;(3) DN:域名集,指所有域名稱(chēng)所組成的集合;(4) DT:域類(lèi)型集,指所有域的類(lèi)型所組成的集合;(5) DCP:域上下文參數(shù),指與應(yīng)用中訪問(wèn)控制有關(guān)的安全域?qū)傩裕越Y(jié)構(gòu)Q表示,具有屬性WeZ)/,屬性^mee"iV, 和屬性0^eei)r,還包括一個(gè)函數(shù)GetDcpValueO,用來(lái)在 應(yīng)用環(huán)境中取得DCP的當(dāng)前值。在本發(fā)明中,GetDcpVahie() 為本地函數(shù),也可能為遠(yuǎn)程函數(shù)。 系統(tǒng)管理員根據(jù)應(yīng)用的需要,預(yù)先定義域名集DN和域類(lèi)型集DT,從而決定了所有域上下文參數(shù)DCP。管理員可以根據(jù)需要,動(dòng)態(tài)的增刪DCP。根域擁有關(guān)于整個(gè)系統(tǒng)所有域的情況,包括(1)所有域基本信息,包括域ID、域名name和域類(lèi)型type,域ID 是一個(gè)域的唯一標(biāo)識(shí)。所有這些構(gòu)成域ID集DI、域名字集DN和域類(lèi)型 集DT。從而構(gòu)成域上下文參數(shù)DCP集合。DCP以哈希表的形式存儲(chǔ)在 根域中。由于域id在整個(gè)系統(tǒng)唯一,所以可以以域ID作為哈希值。涉及 到的哈希操作有g(shù)et、 set和size等;(2) 域之間可訪問(wèn)性列表。這主要為不同域之間的訪問(wèn)提供便利??稍L問(wèn)性列表可以以數(shù)據(jù)庫(kù)存儲(chǔ)的方式存在,也可以以XML的形式存在。其中包含以下元素客體名稱(chēng),客體所屬域,本域用戶可訪問(wèn)角色列表,異域可訪問(wèn)域ID列表,以及異域用戶可訪問(wèn)角色列表。例如域ID=2的客體/xXXJSp,其域之間可訪問(wèn)性列表記錄如下信息 客體名稱(chēng)/xxx.jsp 客體所屬域ID: 2本域用戶可訪問(wèn)角色列表ROLE_ADMIN(管理員), ROLEJTEACHER(老師)異域可訪問(wèn)的域ID為1, 3, 7域ID=1的用戶訪問(wèn)角色名列表DOMAIN1— ROLE一ADMIN(域1 臨時(shí)管理員),DOMAINl一ROLE—TEACHER(域1臨時(shí)老師);'域ID=3的用戶訪問(wèn)角色名列表DOMAIN3— ROLE—ADMIN(域3 臨時(shí)管理員),DOMAIN3— ROLE—TEACHER(域3臨時(shí)老師);域ID=7的用戶訪問(wèn)角色名列表DOMAIN7一 ROLE—ADMIN(域7 臨時(shí)管理員),DOMAIN7_ ROLE—TEACHER(域7臨時(shí)老師), TEMP一ROLE一GENERAL(臨時(shí)例外角色);其中TEMP—ROLE—GENERAL(臨時(shí)例外用戶)為例外角色,指所在域 有訪問(wèn)權(quán)但本身無(wú)訪問(wèn)客體權(quán)限的用戶,這種情況下用戶訪問(wèn)角色列表 中的角色名稱(chēng)是以TEMP為前綴的。其中,例外用戶為可選信息項(xiàng)。(3) 全局可訪問(wèn)角色信息。這樣做的目的是防止子域之間定義 角色重復(fù)。以上信息存儲(chǔ)在根域服務(wù)器,每個(gè)下級(jí)域服務(wù)器都能訪問(wèn)到。 在上級(jí)域中定義的角色、客體類(lèi)、權(quán)限可以在下級(jí)域中使用,這樣 也可以避免角色、權(quán)限在不同域中的重復(fù)定義。在每個(gè)域中,主要定義與存儲(chǔ)了本域中的用戶、角色、權(quán)限、用戶角色分配及角色權(quán)限的相關(guān)訪問(wèn)控制列表。這些信息存儲(chǔ)在本域服務(wù)器。 本域中的所有用戶以及所有要訪問(wèn)本域的用戶都能訪問(wèn)到。 平等域之間認(rèn)證信息(用戶名和密碼)可以相同。圖3為本發(fā)明系統(tǒng)結(jié)構(gòu)圖。本發(fā)明包括四部分用戶認(rèn)證模塊31、域控制模塊32、客體訪問(wèn)控制模塊33和用戶上下文安全信息庫(kù)34。其 中域控制模塊包括域上下文感知器321、子域控制器322、中央域控制器 323和角色分配器324??腕w訪問(wèn)控制模塊包括事前評(píng)估單元331、客體 訪問(wèn)單元307和事后審査單元308,用戶上下文安全信息庫(kù)34是整個(gè)控 制模型實(shí)現(xiàn)框架中各模塊之間溝通的橋梁。另外,客體訪問(wèn)控制模塊33 根據(jù)域控制模塊32所產(chǎn)生的最終用戶角色對(duì)整個(gè)系統(tǒng)的客體進(jìn)行訪問(wèn)控制,從而符合軟件設(shè)計(jì)中模塊獨(dú)立性和復(fù)用性原則。 本發(fā)明各模塊說(shuō)明如下用戶上下文安全信息庫(kù)34,它是實(shí)現(xiàn)框架中各模塊之間溝通的橋梁。 用戶上下文安全信息是用戶通過(guò)用戶認(rèn)證31后,保存在當(dāng)前會(huì)話的用戶 信息,它包括用戶所屬域domainID、用戶帳號(hào)account、用戶密碼 password、用戶角色roles,可以用類(lèi)Userlnfo表示,類(lèi)Userlnfo定義 domainID、 account、 password禾口 roles以及獲取get禾口設(shè)置set方》去。在 本發(fā)明模型中,用戶上下文安全信息310是動(dòng)態(tài)變化的,為方便各模塊 的操作,為用戶上下文安全信息定義一個(gè)操作類(lèi)ContextUserlnfo,包括 如下操作getUserInfoFromSesskm:從當(dāng)前會(huì)話獲得已認(rèn)證用戶信息; setUserlnfoToSession:將己認(rèn)證用戶信息加入當(dāng)前會(huì)話; updateUserlnfo:更新當(dāng)前會(huì)話用戶信息; isAuthentication :判斷當(dāng)前用戶是否認(rèn)證。 用戶認(rèn)證301,主要對(duì)用戶的身份進(jìn)行認(rèn)證。在本發(fā)明中,用戶認(rèn)證基于用戶帳號(hào)、密碼和域id認(rèn)證。用戶認(rèn)證的步驟如下(1) 首先判斷用戶是否已經(jīng)認(rèn)證,即判斷類(lèi)ContextUserlnfo操作 is Authentication是否返回true;(2) 若返回true,則進(jìn)行后續(xù)操作;若返回false,則對(duì)用戶進(jìn)行認(rèn) 證處理,將通過(guò)認(rèn)證的用戶信息加入當(dāng)前會(huì)話,即進(jìn)行類(lèi) ContextUserlnfo的操作setUserlnfoToSession;如果未通過(guò)認(rèn)證,則向用戶返回錯(cuò)誤信息。 域上下文感知器321,接收用戶的訪問(wèn)請(qǐng)求,對(duì)用戶要訪問(wèn)的客體進(jìn)行域判斷,進(jìn)行訪問(wèn)轉(zhuǎn)向,其規(guī)則如下(1) 若用戶所屬域ID與客體所屬域ID相同,即用戶與客體屬于 同一個(gè)域,則由子域控制器322控制客體資源的訪問(wèn);(2) 若用戶所屬域ID與客體所屬域ID不相同,即用戶與客體不 屬于同一個(gè)域,則由中央域控制器323控制客體資源的訪問(wèn);子域控制器322主要用于請(qǐng)求中轉(zhuǎn)和角色復(fù)位。如果用戶對(duì)本域資 源訪問(wèn),子域控制器直接將請(qǐng)求轉(zhuǎn)向客體訪問(wèn)控制模塊;如果用戶從異 域返回本域(即用戶訪問(wèn)了異域資源后再返回訪問(wèn)本域資源),子域控制 器將用戶角色復(fù)位為原本域角色;中央域控制器323是域控制模塊的核心模塊,其作用是判斷用戶是 否對(duì)客體域有訪問(wèn)權(quán)。中央域控制器處理請(qǐng)求的步驟如下(1) 從用戶上下文安全信息34獲得用戶所屬域ID,記為 userDomainID;(2) 從中央域控制器323所存儲(chǔ)的所有子域哈希表中查找客體 域ID, 記為objectDomainID;(3) 根據(jù)用戶域ID userDomainID和客體域ID objectDomainID從中央域控制器所存儲(chǔ)的域之間可訪問(wèn)性列表里面查看用戶是否對(duì)客體 有訪問(wèn)權(quán)。若有訪問(wèn)權(quán),則啟動(dòng)角色分配器324;否則,向用戶返回錯(cuò)誤或警告信息;角色分配器324主要為異域訪問(wèn)的用戶分配臨時(shí)角色。角色分配的原則是分配的角色權(quán)限不能超出用戶原有角色權(quán)限,也不能超出訪問(wèn) 客體限定權(quán)限,分配角色的步驟如下(1) 從中央域控制器323所存儲(chǔ)的信息里面判斷用戶是否為全局用 戶,若為全局用戶,則用戶當(dāng)前角色不變。否則,轉(zhuǎn)向步驟(2);(2) 稱(chēng)Pl為當(dāng)前用戶擔(dān)任角色所對(duì)應(yīng)的權(quán)限集,P2為被訪問(wèn)客體對(duì) 本域用戶所要求的角色列表所對(duì)應(yīng)的權(quán)限集。如果P1包含P2,將域之間 可訪問(wèn)性列表客體域?qū)?yīng)的當(dāng)前用戶所屬域?qū)腕w域訪問(wèn)角色列表分配 給當(dāng)前用戶;否則,求P1和P2的交集,如果交集為空,隨機(jī)分配例外 角色給當(dāng)前用戶,即在常規(guī)角色名前加上"TEMP"前綴,例如 TEMP—ROLE—GENERAL,表明當(dāng)前用戶為例外用戶,指其所在域有訪 問(wèn)權(quán)但本身無(wú)訪問(wèn)客體權(quán)限的用戶,這種情況下用戶訪問(wèn)角色列表中的 角色名稱(chēng)是以TEMP為前綴的,標(biāo)示為例外角色;否則,將當(dāng)前用戶權(quán) 限交集所對(duì)應(yīng)的以"DOMAIN+當(dāng)前用戶域ID"為開(kāi)頭的角色名稱(chēng)列表 分給當(dāng)前用戶。(3) 將分配結(jié)果傳送給用戶上下文安全信息庫(kù)34。 事前評(píng)估單元331和事后審查單元333采取公平投票策略。公平投票策略作為事前評(píng)估單元331和事后審查單元333的授權(quán)機(jī)制,適應(yīng)了 用戶異域訪何時(shí)角色的動(dòng)態(tài)變化。其具體應(yīng)用是根據(jù)所有投票結(jié)果的組 合進(jìn)行資源控制,如全部贊成票通過(guò),大多數(shù)贊成票通過(guò),全部中立通 過(guò)等。公平投票就是用戶對(duì)客體資源的可訪問(wèn)性進(jìn)行投票,也即將當(dāng)前用 戶所擁有的角色名列表依次與客體對(duì)異域或本域用戶的可訪問(wèn)角色名列 表比較。其投票原則如下(l)如果用戶角色屬于客體可訪問(wèn)列表,則投贊成票,記為<formula>formula see original document page 17</formula>
(2) 如果用戶不屬于客體可訪問(wèn)列表,則投反對(duì)票,記為 notgreetVote=-l;
(3) 如果角色前綴名為與客體可訪問(wèn)角色名列表中所定義的一個(gè)角 色名前綴不同TEMP,則保持中立,記為abstainVote=0。例如, 用戶擁有的一個(gè)角色名前綴為T(mén)EMP,而客體可訪問(wèn)角色名列表 中均沒(méi)有以TEMP為前綴的角色名,則投票器保持中立,即 abstain Vote=0。
在本發(fā)明中,用戶異域訪問(wèn),臨時(shí)角色與用戶在本域中的角色不同, 所以采用了多投票器。分別對(duì)各種角色訪問(wèn)投票處理。
事前評(píng)估單元331是對(duì)客體訪問(wèn)單元332的前置判斷,目的只是檢 測(cè)用戶是否有權(quán)限訪問(wèn)客體資源。當(dāng)前,AOP技術(shù)正好適應(yīng)此種情形, 從而將客體訪問(wèn)單元332與其隔離。在本模塊實(shí)現(xiàn)中,由AOP攔截器攔 截用戶對(duì)客體資源的訪問(wèn),而后采用公平投票的方式對(duì)要訪問(wèn)客體進(jìn)行 控制。假如采用全部贊成票通過(guò)的策略,則各投票器都投贊成票時(shí),啟 動(dòng)客體訪問(wèn)單元332,允許用戶對(duì)客體資源進(jìn)行訪問(wèn);
事后審查333也采用AOP技術(shù),對(duì)客體訪問(wèn)單元332的返回結(jié)果進(jìn) 行進(jìn)一步的審核,目的是過(guò)濾掉不屬于當(dāng)前用戶權(quán)限的結(jié)果對(duì)象。需要 說(shuō)明的是,事后審查對(duì)某些客體資源訪問(wèn)進(jìn)行的是弱處理,如Web資源、 業(yè)務(wù)方法等。
圖4為客體訪問(wèn)控制子系統(tǒng)訪問(wèn)序列圖,其過(guò)程如下 1 一訪問(wèn)主體向客體資源發(fā)出訪問(wèn)請(qǐng)求;
2—事前評(píng)估以投票的方式?jīng)Q定當(dāng)前用戶是否有權(quán)限調(diào)用客體資源; 各投票方式是公平的,在具體的應(yīng)用中,可以配置多個(gè)投票器,由各個(gè) 投票器決定用戶對(duì)客體資源的權(quán)限,從而可以以多種授權(quán)策略控制客體 資源;3—公平投票器從用戶上下文安全信息獲得當(dāng)前用戶信息; 4一當(dāng)前用戶通過(guò)事前評(píng)估,調(diào)用客體資源; 5 —對(duì)客體資源進(jìn)行事后審查;
6—事后審査通過(guò)以公平投票的方式排除不屬于當(dāng)前用戶的結(jié)果對(duì)
象;
7 —公平投票器從用戶上下文獲得當(dāng)前用戶信息,返回結(jié)果到訪問(wèn)主體。
權(quán)利要求
1. 一種基于角色的域間訪問(wèn)控制系統(tǒng),包括用戶認(rèn)證模塊(31),其特征在于,還包括用戶上下文安全信息庫(kù)(34)、域控制模塊(32)和客體訪問(wèn)控制模塊(33),用戶上下文安全信息庫(kù)(34)用于記錄當(dāng)前經(jīng)過(guò)用戶認(rèn)證模塊(31)認(rèn)證通過(guò)的用戶信息;域控制模塊(32)用于接收經(jīng)過(guò)用戶認(rèn)證模塊(31)認(rèn)證通過(guò)的訪問(wèn)請(qǐng)求,根據(jù)用戶信息和訪問(wèn)請(qǐng)求中的客體信息確認(rèn)用戶是本域訪問(wèn)還是跨域訪問(wèn),根據(jù)訪問(wèn)類(lèi)型分配用戶角色,將角色分配結(jié)果傳送給用戶上下文安全信息庫(kù)(34),并將用戶訪問(wèn)請(qǐng)求傳送給客體訪問(wèn)控制模塊(33);客體訪問(wèn)控制模塊(33)用于接收來(lái)自用戶上下文安全信息庫(kù)(34)的用戶信息和來(lái)自域控制模塊(32)的訪問(wèn)請(qǐng)求,判斷經(jīng)過(guò)角色分配后的用戶是否有權(quán)訪問(wèn)客體,若是,用戶實(shí)施訪問(wèn),并將訪問(wèn)結(jié)果返回給用戶。
2、根據(jù)權(quán)利要求1所述的一種基于角色的域間訪問(wèn)控制系統(tǒng),其特 征在于,所述域控制模塊包括域上下文感知器(321)、子域控制器(322)、 中央域控制器(323)和角色分配器(324);域上下文感知器(321)用于接收來(lái)自用戶上下文安全信息庫(kù)(34) 的用戶信息和經(jīng)過(guò)用戶認(rèn)證模塊(31)認(rèn)證通過(guò)的訪問(wèn)請(qǐng)求,判斷用戶 和客體是否屬于同一域,若是,則將用戶信息和訪問(wèn)請(qǐng)求傳送給子域控制器(322),否則將用戶信息和訪問(wèn)請(qǐng)求傳送給中央域控制器(323);子域控制器(322)用于接收來(lái)自域上下文感知器(321)的用戶信 息和訪問(wèn)請(qǐng)求,復(fù)位用戶原本域角色,將用戶訪問(wèn)請(qǐng)求傳送給所述客體訪問(wèn)控制模塊(33);中央域控制器(323)用于接收來(lái)自域上下文感知器(321)的用戶信息和訪問(wèn)請(qǐng)求,査詢(xún)預(yù)存的客體域間可訪問(wèn)性列表以判斷來(lái)自用戶所 屬域的用戶是否有權(quán)訪問(wèn)客體所屬域,若是,將客體域間可訪問(wèn)性列表、用戶信息和訪問(wèn)請(qǐng)求傳送給角色分配器(324);所述客體域間可訪問(wèn)性列表包括客體名稱(chēng)、客體所屬域ID、異域可 訪問(wèn)域ID列表和客體可訪問(wèn)角色列表,客體可訪問(wèn)角色列表包括本域用 戶可訪問(wèn)角色列表和異域用戶可訪問(wèn)角色列表;角色分配器(324)用于接收來(lái)自中央域控制器(323)的客體域間 可訪問(wèn)性列表、用戶信息和訪問(wèn)請(qǐng)求,判斷用戶是否為全局用戶,若是, 保持用戶角色不變;否則,將用戶當(dāng)前角色的權(quán)限集P1與所述本域用戶 可訪問(wèn)角色列表對(duì)應(yīng)的權(quán)限集P2作比較若P1包含P2,將用戶所屬域 作為異域的異域用戶可訪問(wèn)角色列表分配給用戶;若P1與P2交集為空, 將隨機(jī)生成的例外角色分配給用戶;否則,將Pl與P2的權(quán)限交集對(duì)應(yīng) 的角色列表分配給用戶;將角色分配結(jié)果傳送給用戶上下文信息庫(kù)(34), 并將訪問(wèn)請(qǐng)求傳送給所述客體訪問(wèn)控制模塊(33)。
3、根據(jù)權(quán)利要求1或2所述的一種基于角色的域間訪問(wèn)控制系統(tǒng), 其特征在于,所述客體訪問(wèn)控制模塊(33)包括事前評(píng)估單元(331)、 客體訪問(wèn)單元(332)和事后審查單元(333),事前評(píng)估單元(331)接收來(lái)自角色分配器(324)的訪問(wèn)請(qǐng)求和來(lái) 自用戶上下文安全信息庫(kù)(34)的用戶信息,判斷經(jīng)過(guò)角色分配后的用 戶是否有權(quán)訪問(wèn)客體,若是,驅(qū)動(dòng)客體訪問(wèn)單元(332)以實(shí)施具體訪問(wèn), 訪問(wèn)完畢后驅(qū)動(dòng)事后審査單元(333)對(duì)訪問(wèn)結(jié)果作進(jìn)一步的審核以濾掉 不屬于當(dāng)前用戶權(quán)限的結(jié)果對(duì)象,最后將審核后的訪問(wèn)結(jié)果反饋給用戶。
4、根據(jù)權(quán)利要求3所述的一種基于角色的域間訪問(wèn)控制系統(tǒng),其特征在于,所述事前評(píng)估單元(331)和事后審查單元(333)的審核方法為逐一提取用戶被分配的角色,采用投票制判斷擔(dān)任該角色的用戶是否有權(quán)訪問(wèn)客體,匯總投票結(jié)果,根據(jù)預(yù)定授權(quán)策略確定用戶是否有 權(quán)訪問(wèn)客體或者訪問(wèn)結(jié)果屬于用戶權(quán)限;投票規(guī)則如下I若角色包含于預(yù)存所述客體可訪問(wèn)角色列表,投贊成票; II若角色不包含于所述客體可訪問(wèn)角色列表當(dāng)角色為例外角色, 且客體可訪問(wèn)角色列表不包括任一例外角色,保持中立;否則,投反對(duì)票。
全文摘要
本發(fā)明提供了一種基于角色的域間訪問(wèn)控制系統(tǒng),包括用戶認(rèn)證模塊、用戶上下文安全信息庫(kù)、域控制模塊和客體訪問(wèn)控制模塊,用戶上下文安全信息庫(kù)記錄經(jīng)過(guò)用戶認(rèn)證模塊認(rèn)證通過(guò)的用戶信息,域控制模塊接收經(jīng)過(guò)用戶認(rèn)證模塊認(rèn)證通過(guò)的訪問(wèn)請(qǐng)求,根據(jù)用戶信息和訪問(wèn)請(qǐng)求中的客體信息確認(rèn)用戶是本域訪問(wèn)還是跨域訪問(wèn),根據(jù)訪問(wèn)類(lèi)型分配用戶角色,將角色分配結(jié)果傳給用戶上下文安全信息庫(kù),客體訪問(wèn)控制模塊接收來(lái)自用戶上下文安全信息庫(kù)的用戶信息和來(lái)自域控制模塊的訪問(wèn)請(qǐng)求,判斷經(jīng)過(guò)角色分配后的用戶是否有權(quán)訪問(wèn)客體,若是,用戶實(shí)施訪問(wèn),將訪問(wèn)結(jié)果返回給用戶。本發(fā)明通過(guò)角色變更使得用戶權(quán)限適應(yīng)不同的訪問(wèn)客體,滿足了用戶域間訪問(wèn)的需要。
文檔編號(hào)G06F17/30GK101286845SQ20081004765
公開(kāi)日2008年10月15日 申請(qǐng)日期2008年5月12日 優(yōu)先權(quán)日2008年5月12日
發(fā)明者鶴 嚴(yán), 砥 吳, 杰 周, 張成偉, 白紅梅, 程文青 申請(qǐng)人:華中科技大學(xué)