摘要:根據(jù)繼電保護(hù)信息系統(tǒng)的特點(diǎn),本文提出了基于.NET的角色訪問控制分布式系統(tǒng)模型架構(gòu),著重討論了其中的數(shù)據(jù)庫(kù)設(shè)計(jì)、身份驗(yàn)證加密票證策略、角色權(quán)限檢查的具體實(shí)現(xiàn)方法、XML Web Service 的應(yīng)用及IIS、ASP.NET的具體配置方案,實(shí)現(xiàn)了基于Web服務(wù)的安全、通用和高效的訪問控制,并給出了應(yīng)用實(shí)例。
關(guān)鍵詞:基于角色的訪問控制;.NET框架;XML Web 服務(wù);繼電保護(hù);分布式應(yīng)用
中圖分類號(hào):TP311.52 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1007-9599 (2012) 20-0000-02
1 引言
隨著國(guó)家信息化水平的提升,作為國(guó)家重要產(chǎn)業(yè)的電力系統(tǒng)的信息管理也逐漸升級(jí),系統(tǒng)的信息安全至關(guān)重要。所以安全有效地實(shí)現(xiàn)訪問控制信息系統(tǒng),就成為了電力信息安全的重要保重之一。
訪問控制技術(shù)RBAC (Role Based Access Control)是一種基于角色的技術(shù)。在目前國(guó)際國(guó)內(nèi)已經(jīng)成為了主流技術(shù)之一,RBAC的優(yōu)點(diǎn)非常明顯,它不僅能夠?qū)⑹跈?quán)管理的復(fù)雜性大大降低,而且能夠?yàn)楣芾韱T實(shí)現(xiàn)復(fù)雜安全策略營(yíng)造一個(gè)較好的環(huán)境,所以在信息系統(tǒng)的身份驗(yàn)證和授權(quán)[1]得到了比較普遍的應(yīng)用。
2 基于角色的訪問控制的基本概念
所謂訪問控制就限制約束信息系統(tǒng)資源使用,用來(lái)決定訪問主體對(duì)客體的訪問是否被授權(quán),是否合法,所以對(duì)主體合法性的檢測(cè)就非??傄恕]有通過(guò)驗(yàn)證授權(quán)的用戶,是不能被授權(quán)訪問特定的系統(tǒng)資源的。
在實(shí)際應(yīng)用當(dāng)中,我們經(jīng)常用到的訪問控制模型主要有三種:自主訪問控制模型DAC (Discretionary Access Control),強(qiáng)訪問控制模型MAC (Mandatory Access Control)及基于角色的訪問控制模型RBAC。
3 基于.NET的角色訪問控制系統(tǒng)
Visual Studio.Net是微軟最新的集成開發(fā)環(huán)境,Visual Studio.Net與Xml Web Service結(jié)合起來(lái)使用,不僅通用性高,而且進(jìn)行角色訪問和控制非常安全,也可以進(jìn)行分布式管理,所以優(yōu)勢(shì)是非常明顯的。
3.1 基于角色的訪問控制系統(tǒng)的設(shè)計(jì)
用戶信息必須加密才能進(jìn)行網(wǎng)絡(luò)傳輸,加密之后的信息首先傳送到Web服務(wù)器,然后是IIS (Internet Information Service)服務(wù)器對(duì)加密信息進(jìn)行身份授權(quán),之后ASP.NET對(duì)IIS授權(quán)的身份進(jìn)行驗(yàn)證,如果通過(guò)驗(yàn)證,則可以配置為Windows身份驗(yàn)證的SQL Server 2005,從而獲得該用戶的權(quán)限及角色。
通過(guò)這樣的訪問控制模式,系統(tǒng)的通用型可以得到替身,系統(tǒng)的開放性也可以大大加強(qiáng),而且能夠很好的滿足安全性的要求,一般情況下,我們將其用在對(duì)安全需求較高的地方。
3.1.1 數(shù)據(jù)庫(kù)的設(shè)計(jì)
在繼電保護(hù)信息系統(tǒng)中,信息都是存儲(chǔ)在數(shù)據(jù)庫(kù)當(dāng)中的,其中包括了用戶、角色和權(quán)限等,所有的數(shù)據(jù)都包含在數(shù)據(jù)表當(dāng)中,本系統(tǒng)當(dāng)中,應(yīng)該設(shè)置至少五張數(shù)據(jù)表:User表、Roles表、Permissions表、UsersRoles表和RolesPermission表。User表、Roles表之間的關(guān)系可以通過(guò)UsersRoles表來(lái)建立,Permissions表、Roles表的關(guān)系通過(guò)RolesPermission表來(lái)建立?;陉P(guān)系模型的數(shù)據(jù)表設(shè)計(jì),使得角色的分配更加靈活,還可以為每個(gè)角色分配更多的訪問權(quán)限并可根據(jù)需要增加新角色,具有很好的通用性和可擴(kuò)展性。其結(jié)構(gòu)及表之間的引用關(guān)系如圖1所示:
圖1. 用于身份驗(yàn)證和授權(quán)的數(shù)據(jù)庫(kù)模式
3.1.2 身份驗(yàn)證票證策略
當(dāng)用戶通過(guò)數(shù)據(jù)庫(kù)身份驗(yàn)證后,就能靈活地利用SQL Server 2005建立的數(shù)據(jù)表及其關(guān)系查詢各自的角色,并根據(jù)角色獲得授權(quán)。這種方式進(jìn)行數(shù)據(jù)查詢和授權(quán)會(huì)使得SQL Server 2005數(shù)據(jù)庫(kù)的訪問變得更加頻繁,大量的數(shù)據(jù)訪問會(huì)降低整個(gè)系統(tǒng)性能。
.NET的窗體身份驗(yàn)證技術(shù)正好為我們提過(guò)了一個(gè)解決問題的方式,對(duì)通過(guò)驗(yàn)證的用戶,根據(jù)其用戶名和權(quán)限生成當(dāng)前用戶身份驗(yàn)證票證(Ticket)。.Net為該票證的生成及存儲(chǔ)提供的方法為:
FormsAuthenticationTicket authTicket = new FormsAuthenticationTicket(…);
……
Context.Cache.Insert(…);
3.1.3 角色權(quán)限的檢查
用戶的權(quán)限是根據(jù)身份進(jìn)行分配的,在操作的過(guò)程中,必須要根據(jù)用戶的角色來(lái)進(jìn)行權(quán)限檢查,用來(lái)保證用戶操作權(quán)限的合法性。在.Net中,主要有三種檢查方法:
(1)直接檢查角色名
(2)強(qiáng)制性角色檢查
(3)聲明式檢查
在大多數(shù)情況下,我們使用第三種方法來(lái)進(jìn)行權(quán)限檢查。
3.1.4 Xml Web Service的應(yīng)用
隨著Xml Web Service技術(shù)的出現(xiàn),分布式應(yīng)用獲得了很大的發(fā)展,Xml Web Service技術(shù)中采用SOAP(Simple Object Access Protocol)技術(shù),通過(guò)各種類型的網(wǎng)絡(luò)被其他平臺(tái)或應(yīng)用程序訪問的一下分布式的業(yè)務(wù)邏輯組件。
想要高效低高度復(fù)用性的控制訪問模塊,我們必須使用Web 服務(wù)。以下是實(shí)現(xiàn)管理員權(quán)限的客戶分配,用來(lái)修改用戶信息。:
[WebMethod]
[PrincipalPermissionAttribute(SecurityAction.Demand, Role = “管理員”)]
public UsersDataSet UpdateUsers(UsersDataSet dsUser)
{ …… }
3.1.5 IIS及ASP.NET的配置
IIS(Internet Information Service)是客戶機(jī)能夠訪問Web服務(wù)的基礎(chǔ),其安全配置奠定了整個(gè)系統(tǒng)的安全基礎(chǔ)。
ASP.NET的配置是另一個(gè)重要的配置環(huán)節(jié),在Web.config文件中將身份驗(yàn)證配置為窗體驗(yàn)證:
同時(shí),在該配置文件中禁止匿名訪問, 即:
4 結(jié)論
基于角色的訪問控制是目前主流的用戶權(quán)限管理方式,應(yīng)用.NET框架各種先進(jìn)的新功能,結(jié)合基于角色的訪問控制基本架構(gòu),通過(guò)對(duì)各應(yīng)用配置文件的設(shè)置,可以高效地實(shí)現(xiàn)較高的安全性能、管理用戶靈活、通用性強(qiáng)、擴(kuò)展方便簡(jiǎn)單的控制訪問管理,在跨域式發(fā)展的電力系統(tǒng)信息化管理中,具有較好的應(yīng)用前景。
參考文獻(xiàn):
[1]楊洋,丁仁杰,閔勇(Yang yang,Deng renjie, Min Yong),基于受控對(duì)象得訪問控制模型(Object-Based Access Control Model)[J].電力系統(tǒng)自動(dòng)化(Automation of Electric Power Systems ), 2003,27(7),36-40.
[2]曾高登..NET系統(tǒng)架構(gòu)與開發(fā)[M].北京:電子工業(yè)出版社,2003.
[3]葉錫君,許勇,吳國(guó)新(Ye Xijun, Xu Yong, Wu Guoxin),基于角色的訪問控制在Web中的實(shí)現(xiàn)技術(shù)(Implementation Technique Based on RBAC Used in Web)[J].計(jì)算機(jī)工程(Computer Engineering), 2002,28(1),167-169.
[4]王超,邊小凡.基于角色訪問控制機(jī)制在MIS權(quán)限管理中的應(yīng)用[J].微機(jī)發(fā)展,2004,14(5),50-52.
[5]微軟公司[美].ASP.NET安全應(yīng)用程序開發(fā)[M].北京:清華大學(xué)出版社,2003.