資源描述:
《Net平臺(tái)下基于角色的訪問(wèn)控制系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn).docx》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫(kù)。
1、Net平臺(tái)下基于角色的訪問(wèn)控制系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)摘要應(yīng)用Windows系統(tǒng).NetFramework開(kāi)發(fā)平臺(tái),采用自定義屬性、類型及反射等技術(shù),通過(guò)對(duì)不同應(yīng)用系統(tǒng)的資源ID生成、訪問(wèn)方式,以及資源樹(shù)訪問(wèn)接口的定義,給出一套簡(jiǎn)潔、實(shí)用的基于角色的用戶權(quán)限管理系統(tǒng)的通用平臺(tái)設(shè)計(jì)方案。關(guān)鍵詞權(quán)限管理;角色;反射;自定義屬性計(jì)算機(jī)技術(shù)安全管理的范圍很廣,可以包括網(wǎng)絡(luò)安全性、數(shù)據(jù)安全性、操作系統(tǒng)安全性以及應(yīng)用程序安全性等。對(duì)一個(gè)多用戶商用應(yīng)用系統(tǒng)而言,系統(tǒng)的安全訪問(wèn)控制是必須的,系統(tǒng)不僅要滿足功能性需求,還要滿足安全性需求。系統(tǒng)的安
2、全訪問(wèn)控制一般是通過(guò)用戶認(rèn)證和用戶權(quán)限管理來(lái)實(shí)現(xiàn)。權(quán)限管理可簡(jiǎn)單表述為:判斷“Who對(duì)What(Which)進(jìn)行How的操作”的邏輯表達(dá)式是否為真。各類應(yīng)用系統(tǒng)的整個(gè)體系結(jié)構(gòu)上要設(shè)計(jì)一個(gè)安全可靠、配置靈活、易擴(kuò)展的安全控制模塊,它主要有兩部分內(nèi)容:用戶認(rèn)證和用戶權(quán)限管理。目前大致有三種安全模型:訪問(wèn)矩陣、基于角色的訪問(wèn)控制(RBAC-Rolebasedaccesscontrol)模型和多級(jí)模型。其中基于角色的訪問(wèn)控制模型得到了日益廣泛的應(yīng)用。1基于角色的用戶權(quán)限管理系統(tǒng)(RBAC)基本理論[1][2]RBAC是目前公認(rèn)的
3、解決大型企業(yè)的統(tǒng)一資源訪問(wèn)控制的有效方法。其顯著的兩大特征是:一是減小授權(quán)管理的復(fù)雜性,降低管理開(kāi)銷(xiāo);二是靈活地支持企業(yè)的安全策略,并對(duì)企業(yè)的變化有很大的伸縮性。資源是應(yīng)用系統(tǒng)中被管理、控制的對(duì)象,資源是權(quán)限管理的最小單位,資源的抽象要結(jié)合實(shí)際的需要確定粒度大小。權(quán)限是對(duì)具體資源的訪問(wèn)許可。權(quán)限和資源密不可分,在這里,權(quán)限可以用一個(gè)二元組來(lái)表示(R,A),其中,R表示資源,A表示訪問(wèn)方式。角色是指一個(gè)組織或任務(wù)中的工作或位置,它代表了一種資格、權(quán)利和責(zé)任。用戶就是一個(gè)可以獨(dú)立訪問(wèn)應(yīng)用系統(tǒng)中的資源的主體。用戶在一般情況下是
4、指應(yīng)用系的使用者。RBAC中只對(duì)角色分配資源的訪問(wèn)權(quán)限,從另一個(gè)角度說(shuō),角色是權(quán)限的某種組合。用戶可以具有一個(gè)或多個(gè)角色,但不能直接對(duì)用戶分配權(quán)限。角色的權(quán)限相對(duì)穩(wěn)定,而用戶容易變化,RBAC通過(guò)角色實(shí)現(xiàn)用戶與權(quán)限的分離,增加了權(quán)限分配和管理的方便性和靈活性。以上是RBAC的基本概念,下面結(jié)合Windows.NetFramework平臺(tái),給出一套簡(jiǎn)潔、實(shí)用的RBAC權(quán)限管理系統(tǒng)的設(shè)計(jì)方案。2.NetFramework新特性的應(yīng)用[2]2.1類型(Type)信息Type位于.Type實(shí)際上是一個(gè)抽象基類,它有與每一種數(shù)據(jù)類
5、型相對(duì)應(yīng)的派生類。通過(guò)運(yùn)行時(shí)獲取Type派生類的實(shí)例,可能獲取相應(yīng)數(shù)據(jù)類型的所有信息。2.2自定義屬性(Attribute)傳統(tǒng)編程語(yǔ)言如C++,都提供了關(guān)鍵字(如public、private等)。這些關(guān)鍵字提供有關(guān)類成員的附加信息,還通過(guò)描述類成員對(duì)其他類的可訪問(wèn)性來(lái)進(jìn)一步定義類成員的行為。由于編譯器被顯式設(shè)計(jì)為識(shí)別預(yù)定義關(guān)鍵字,編程者無(wú)法創(chuàng)建自己的關(guān)鍵字。但在.NetFramework中,公共語(yǔ)言運(yùn)行庫(kù)CLR(CommonLanguageLibrary)允許編程者添加類似關(guān)鍵字的描述性聲明(稱為屬性)來(lái)批注編程元素,
6、如類型、字段、方法和屬性等。編程者可以聲明從System.Attribute派生的自定義屬性類,用來(lái)存儲(chǔ)特定的描述信息。3通用RBAC權(quán)限管理系統(tǒng)的設(shè)計(jì)各個(gè)通常的應(yīng)用軟件系統(tǒng)中,除了需進(jìn)行安全訪問(wèn)控制的資源各不相同外,其它如用戶及角色的管理,角色的權(quán)限分配等基本相同,如果能對(duì)不同應(yīng)用系統(tǒng)的資源抽象出相同的描述和訪問(wèn)接口,自然就能實(shí)現(xiàn)一套通用的權(quán)限管理系統(tǒng)。3.1設(shè)計(jì)目標(biāo)與主要功能系統(tǒng)的基本設(shè)計(jì)目標(biāo)是,通過(guò)統(tǒng)一定義的應(yīng)用系統(tǒng)資源樹(shù)接口定義,實(shí)現(xiàn)應(yīng)用系統(tǒng)無(wú)關(guān)的通用RBAC管理系統(tǒng),如圖1所示,應(yīng)用系統(tǒng)通過(guò)統(tǒng)一定義的資源及其訪
7、問(wèn)方式接口與權(quán)限管理系統(tǒng)平臺(tái)進(jìn)行交互。本系統(tǒng)主要有以下功能:用戶管理:用戶的編輯、角色分配及用戶認(rèn)證等;角色管理:角色的編輯、權(quán)限分配等;資源及權(quán)限管理:應(yīng)用系統(tǒng)資源及訪問(wèn)方式以及權(quán)限的定義等;安全訪問(wèn)控制:判別登錄用戶是否具備對(duì)特定資源的訪問(wèn)權(quán)限。圖1權(quán)限管理平臺(tái)體系結(jié)構(gòu)3.2應(yīng)用系統(tǒng)的資源資源是對(duì)應(yīng)用系統(tǒng)中要進(jìn)行安全訪問(wèn)控制的對(duì)象的抽象。依據(jù)應(yīng)用對(duì)象類別的不同,資源也相應(yīng)分為不同的資源類。3.2.1資源的唯一標(biāo)示本系統(tǒng)設(shè)計(jì)采用64位的資源ID(ResourceID)來(lái)唯一標(biāo)示系統(tǒng)的一個(gè)資源對(duì)象。應(yīng)用系統(tǒng)需自定義一套完
8、整的資源ID編碼規(guī)則,對(duì)要安全訪問(wèn)控制的每一個(gè)對(duì)象,根據(jù)編碼規(guī)則可得出一個(gè)資源ID。資源ID推薦采用分層設(shè)計(jì),如可分為三個(gè)層次:應(yīng)用模塊ID-對(duì)象類別ID-對(duì)象ID。由于可由應(yīng)用系統(tǒng)對(duì)象得到相應(yīng)的資源ID,本系統(tǒng)的數(shù)據(jù)庫(kù)中不再需要單獨(dú)建立資源與應(yīng)用系統(tǒng)對(duì)象的映射表,這是本系統(tǒng)設(shè)計(jì)的一個(gè)創(chuàng)新之處。3.2.2資源的訪問(wèn)方