孔 震 畢 嵐
(1、國網(wǎng)電力科學研究院信息技術研究所,江蘇 南京 210003 2、南京郵電大學理學院,江蘇 南京 21003)
隨著企業(yè)信息化程度的不斷提高,越來越多的關鍵性數(shù)據(jù)和業(yè)務被納入企業(yè)信息系統(tǒng)進行管理。為能有效控制不同用戶對不同數(shù)據(jù)和業(yè)務的處理權(quán)限,從而界定用戶職責、劃分工作范圍,增強信息系統(tǒng)的安全性及協(xié)同工作效率,信息系統(tǒng)必須具有完備、靈活的權(quán)限控制方法。本文主要論述了一種基于安全域的、高復用性的信息系統(tǒng)訪問權(quán)限控制策略,以及其在企業(yè)信息系統(tǒng)中的典型應用方案。
基于RBAC 模型進行信息系統(tǒng)安全訪問控制是目前業(yè)界信息系統(tǒng)的常見實現(xiàn)方法。RBAC 模型中的核心概念包括訪問權(quán)限(Privilige)、角色(Role)和用戶(User)。訪問權(quán)限是對信息系統(tǒng)中某種業(yè)務數(shù)據(jù)或操作的執(zhí)行權(quán)限的概括性描述,其本身并不直接體現(xiàn)哪些用戶可以擁有該權(quán)限。訪問權(quán)限的常見命名方式有兩種:一、名詞結(jié)構(gòu),以“權(quán)”作為名稱結(jié)尾,如“請假單審批權(quán)”;二、動賓結(jié)構(gòu),如“審批請假單”。上述兩種方式均表示一種具有審批請假單的業(yè)務權(quán)限。角色是對信息系統(tǒng)中一組訪問權(quán)限集合的抽象描述,一個角色可以包含一個或多個訪問權(quán)限。角色均以名詞命名,并通常與崗位名稱相同,如“部門經(jīng)理”。用戶是對信息系統(tǒng)操作人員的一種表述形式,即通常所說的系統(tǒng)帳號,其命名只需遵循唯一性原則即可。
在基于RBAC 模型構(gòu)建的信息系統(tǒng)中,用戶、角色和訪問權(quán)限間的關系如圖表1 所示。角色與用戶間存在多對多關系,即一個角色可以包含多個用戶,且一個用戶可以擁有多個角色;訪問權(quán)限不直接與用戶綁定,而是與角色進行綁定,即用戶是通過角色間接與訪問權(quán)限建立關聯(lián)。當用戶登錄信息系統(tǒng)時,用戶擁有的角色集合已被事先定義,在其訪問指定數(shù)據(jù)或業(yè)務前,信息系統(tǒng)會判定該用戶擁有的角色集合中是否有角色具備當前數(shù)據(jù)或業(yè)務所需要的訪問權(quán)限,若具備則允許用戶訪問,否則則禁止。比如,用戶張三擁有部門經(jīng)理角色,而部門經(jīng)理角色關聯(lián)了請假單審批權(quán),因此,張三有權(quán)進行請假單審批。
圖表1 RBAC 模型中用戶、角色和訪問權(quán)限間的UML 對象關系圖
3.1 基于RBAC 的訪問控制模型的優(yōu)缺點分析
基于RBAC 模型的訪問權(quán)限控制模型實現(xiàn)了用戶與訪問權(quán)限的邏輯分離,極大的方便了權(quán)限管理。例如,一個用戶的崗位發(fā)生變化,其處理數(shù)據(jù)和業(yè)務的訪問權(quán)限也隨之發(fā)生變化,此時,只要將該用戶原先崗位關聯(lián)的角色去除,并關聯(lián)新崗位所對應的角色,即可實現(xiàn)訪問權(quán)限的變更。若某崗位的訪問權(quán)限發(fā)生變化,需要該崗位的用戶不僅有權(quán)處理表單A,還增加了對表單B 和表單C 的訪問權(quán)限。在用戶直接關聯(lián)訪問權(quán)限的方式下,該崗位所有有權(quán)處理表單A 的用戶(假設為N 個)均需增加對表單B和表單C 的處理權(quán)限,修改權(quán)限策略數(shù)量為2*N;而在角色關聯(lián)訪問權(quán)限的方式下,通常只需將崗位中有權(quán)處理表單A 的唯一角色與表單B 和表單C 的訪問權(quán)限關聯(lián)即可,修改權(quán)限策略數(shù)量為2。綜上所述,基于RBAC 模型進行權(quán)限管理,比直接基于用戶進行權(quán)限管理要便捷很多。深入分析RBAC 模型可以發(fā)現(xiàn),RBAC 中的訪問控制(Privilige)包含了操作對象和操作方式兩種元素,如前文所述的“請假單審批權(quán)”是由“請假單”和“審批”組成,“請假單”即操作對象,“審批”即操作方式。一種操作對象可對應多種操作方式,如“請假單”除“審批”外,還可能有“申請”、“歸檔”等操作方式;而一種操作方式又可對應多種操作對象,如“審批”除針對“請假單”外,還可能針對“報銷單”、“采購單”等操作對象。針對上述情況,基于RBAC 模型進行角色授權(quán)時,勢必要將角色與各種可能的操作對象和操作方式組合而成的訪問權(quán)限進行關聯(lián)。假設操作對象的數(shù)量是M,操作方式的數(shù)量是N,則針對角色進行訪問控制授權(quán)的策略數(shù)量為M*N,當M、N 較大時,基于角色的訪問權(quán)限管理工作的復雜度將顯著增加。
3.2 基于安全域的訪問控制模型
上述問題的根本原因在于RBAC 模型未能細分訪問權(quán)限中的操作對象和操作方式。從易變性角度分析,信息系統(tǒng)中的操作對象會隨著業(yè)務規(guī)模的變化而頻繁變化,且數(shù)量較大,從100 至10000 不等,甚至更多;而操作方式較為穩(wěn)定,常見的有增、刪、改、查、歸檔等,數(shù)量有限,且能在不同操作對象間復用。針對此分析結(jié)果,本文提出一種新的基于安全域的訪問控制模型?;诎踩虻脑L問控制模型是RBAC 模型的衍生,其核心是將操作對象和操作方式分離,并通過操作對象和安全域之間的關聯(lián)關系表達權(quán)限控制策略。其間關系如圖表2 所示。
圖表2 基于安全域的訪問控制模型的UML 對象關系圖
安全域由一系列角色和操作方式組成,例如,“部門級表單管理”安全域的內(nèi)容如下表所示:
圖表3“部門級表單管理”安全域內(nèi)容
由上表可見,安全域并非完整的訪問控制策略的定義結(jié)果,只有當其與具體操作對象建立關聯(lián)后方能生效。如將“請假單”與上述“部門級表單管理”安全域進行關聯(lián),則表示“部門經(jīng)理”和“部門副經(jīng)理”角色對“請假單”有“增加、刪除、編輯、讀取”權(quán)限。當操作對象范圍發(fā)生變化時,如需要部門擴充管理“采購單”、“報銷單”,則只需將“采購單”、“報銷單”和“部門級表單管理”安全域進行關聯(lián),而按常規(guī)的RBAC 模型進行管理時,需要分別針對“部門經(jīng)理”、“部門副經(jīng)理”與“采購單”、“報銷單”及“增加、刪除、編輯、讀取”增加2*2*4=16 條權(quán)限控制策略;當某角色的操作方式發(fā)生變化時,如取消“部門副經(jīng)理”的“增加、刪除、編輯”操作方式,則只需單點更改“部門級表單管理”安全域中的3 條記錄,與之關聯(lián)的“請假單”、“采購單”、“報銷單”均能自動生效,而基于RBAC 模型進行管理時,則需刪除“部門副經(jīng)理”與“請假單”、“采購單”、“報銷單”及“增加、刪除、編輯”相關的3*3=9 條權(quán)限控制策略。
綜上所述,基于安全域的訪問控制模型在繼承了RBAC 模型通過角色簡化權(quán)限訪問控制過程的方法基礎上,進一步細分操作對象和操作方式,將角色和操作方式封裝為安全域,增強了不同操作對象間的權(quán)限控制策略的復用性,進而大大簡化權(quán)限控制策略的維護過程。
[1]李孟珂,基于角色的訪問控制技術及應用,計算機應用研究,2000年第17 卷第10 期
[2]喬穎,一種基于角色訪問控制(RBAC)的新模型及其實現(xiàn)機制,計算機研究與發(fā)展 ,2000,1.
[3]李細雨,基于粒邏輯的擴展RBAC 模型,浙江師范大學學報:自然科學版,2009年第32 卷第3 期
[4]李金雙,HARBAC:基于分級管理思想的RBAC 層級管理模型,小型微型計算機系統(tǒng).