王龍軍
(成都工業(yè)學(xué)院,四川 成都 611730)
訪問(wèn)控制是通過(guò)某種途徑顯示的準(zhǔn)許或限制訪問(wèn)能力及范圍,從而限制對(duì)目標(biāo)資源的訪問(wèn),防止非法用戶的侵入或合法用戶的不慎操作所造成的破壞。目前流行的訪問(wèn)控制模型有自主訪問(wèn)控制模型 (Discretionary Access Control,DAC)、強(qiáng)制訪問(wèn)控制模型(Mandatory Access Control,MAC)和基于角色的訪問(wèn)控制模型 (Role-Based Access Control,RBAC)。
其中基于角色的訪問(wèn)控制方法是目前公認(rèn)的解決大型企業(yè)的統(tǒng)一資源訪問(wèn)控制的有效方法。其顯著的兩大特征是:(1)減小授權(quán)管理的復(fù)雜性,降低管理開銷;(2)靈活地支持企業(yè)的安全策略,并對(duì)企業(yè)的變化有很大的伸縮性。
本文結(jié)合高校圖書館門戶系統(tǒng)的現(xiàn)狀,采用當(dāng)前流行的基于角色的訪問(wèn)管理模型,設(shè)計(jì)和實(shí)現(xiàn)了滿足圖書館門戶系統(tǒng)中管理后臺(tái)資源的權(quán)限管理系統(tǒng),達(dá)到減輕系統(tǒng)管理員工作強(qiáng)度、降低授權(quán)管理的出錯(cuò)幾率、提高系統(tǒng)安全性的目的。
系統(tǒng)管理員可以根據(jù)職能或機(jī)構(gòu)的需求策略來(lái)創(chuàng)建角色、給角色分配權(quán)限,并給用戶分配角色,用戶能夠訪問(wèn)的權(quán)限由該用戶擁有的角色權(quán)限集合決定,即把整個(gè)訪問(wèn)控制過(guò)程分成2步:訪問(wèn)權(quán)限與角色相關(guān)聯(lián),角色再與用戶關(guān)聯(lián),從而實(shí)現(xiàn)用戶與訪問(wèn)權(quán)限的邏輯分離。
本系統(tǒng)采用B/S模型結(jié)構(gòu)設(shè)計(jì),以ASP.NET作為開發(fā)Web的語(yǔ)言,數(shù)據(jù)庫(kù)采用SQL Server 2000,其中數(shù)據(jù)庫(kù)為libdb,用戶數(shù)據(jù)表為users,開發(fā)平臺(tái)采用VS2005。本系統(tǒng)采用URL授權(quán)來(lái)授予角色對(duì)目錄的訪問(wèn)權(quán)限,將同一角色所訪問(wèn)資源的權(quán)限存放在同一個(gè)文件夾下,然后將文件夾的訪問(wèn)權(quán)限分配給相應(yīng)的角色,只有具有授權(quán)角色的用戶才能訪問(wèn)該文件夾,從而防止非授權(quán)角色的用戶訪問(wèn)指定的目錄。
本系統(tǒng)的具體實(shí)現(xiàn)步驟如下:
使用Roles類實(shí)現(xiàn)用戶角色功能時(shí),首先需要在system.web配置節(jié)下設(shè)置允許使用用戶角色管理:
在ASP.NET權(quán)限管理模型中,默認(rèn)情況下成員資格管理、角色管理與個(gè)性化用戶配置所使用的數(shù)據(jù)表都存儲(chǔ)在"App_Data"文件夾下名稱為aspnetdb.mdf的SQL Server 2005 Express實(shí)例文件中。如果要把a(bǔ)spnetdb.mdf數(shù)據(jù)庫(kù)中的成員的角色關(guān)系添加到SQL Server 2000的數(shù)據(jù)庫(kù)中,需要利用aspnet_regsql.exe工具來(lái)完成這個(gè)功能,在Visual Studio 2005命令提示下輸入aspnet_regsql,會(huì)彈出一個(gè)對(duì)話框,一直點(diǎn)"下一步"按鈕,直到看到有“選擇服務(wù)器和數(shù)據(jù)庫(kù)“的選項(xiàng)時(shí),選擇自己的數(shù)據(jù)庫(kù)libdb。
(1)拒絕匿名用戶即游客訪問(wèn)網(wǎng)站,如果訪問(wèn)跳轉(zhuǎn)到Login.aspx登錄頁(yè),在system.web配置以下設(shè)置:
(2)下面的配置內(nèi)容表示只有在角色為manage的用戶登錄后才能訪問(wèn)manage文件下的aspx頁(yè)面。
(3)下面的配置內(nèi)容表示只有在角色為member的用戶登錄后才能訪問(wèn)member文件下的aspx頁(yè)面。
(4)創(chuàng)建相關(guān)頁(yè)面和在運(yùn)行時(shí)使用角色
以下代碼演示用戶是否屬于系統(tǒng)管理員(manage)角色為例,判定用戶的角色是否存在,如果用戶沒(méi)創(chuàng)建角色,則創(chuàng)建角色,根據(jù)用戶的角色,然后分配相應(yīng)的訪問(wèn)權(quán)限。
本文在分析基于角色的訪問(wèn)控制模型的基本思想的基礎(chǔ)上,采用ASP.NET作為開發(fā)語(yǔ)言,設(shè)計(jì)并實(shí)現(xiàn)在圖書館門戶系統(tǒng)后臺(tái)管理中基于角色的用戶訪問(wèn)控制系統(tǒng),簡(jiǎn)便有效地控制用戶對(duì)系統(tǒng)權(quán)限資源的訪問(wèn),該系統(tǒng)具有良好的擴(kuò)展性、靈活性、操作簡(jiǎn)便等特點(diǎn),在實(shí)際運(yùn)行過(guò)程中取得良好的運(yùn)行效果。
[1]羅俊,顏一鳴.基于.NET的用戶權(quán)限管理設(shè)計(jì)與實(shí)現(xiàn)[J].電腦知識(shí)與技術(shù),2009,5(29).
[2]李曉燕,管群.NET下基于角色的訪問(wèn)控制的應(yīng)用[J].計(jì)算機(jī)安全,2008,(01).
[3]楊劍,閃四清.ASP.NET環(huán)境下基于角色的權(quán)限控制的實(shí)現(xiàn)[J].計(jì)算機(jī)技術(shù)與發(fā)展,2007,17(5).