張軍強
(陜西財經職業技術學院,咸陽,712000)
基于ASP組件技術的WEB MIS權限系統的設計與實現
張軍強
(陜西財經職業技術學院,咸陽,712000)
網絡技術的迅速發展,隨之而來的安全問題也與日俱增。針對應用層身份認證和訪問控制安全問題。本文利用ASP組件技術,實現了角色權限組件和登錄組件,保證了具有不同角色的用戶能夠登錄不同的界面,加強了系統的安全管理,解決了系統安全問題。
網絡安全;權限;訪問控制;ASP組件
自主訪問控制是多用戶環境下最常用的一種訪問控制技術,思想是根據訪問者和它所屬組的身份來控制對客體目標的授權訪問。強制訪問控制是為每個主體、客體分別定義安全屬性,主體能否對客體執行特定的操作取決于二者之間的安全屬性的關系,是一種基于主體和客體的安全標記來實現的訪問控制策略。
自主和強制訪問控制缺陷是要將主體和客體直接綁定在一起,授權時需要對主體和客體同時定義訪問許可。當主體和客體的數量很大時,授權工作將非常困難。二十世紀九十年代以來,隨著對在線的多用戶、多系統的研究不斷深入以及對系統安全需求發展和網絡、分布式技術的快速發展的基礎上,角色的概念逐漸形成,產生以角色為中心的訪問控制模型,即基于角色的訪問控制RBAC。
2.1 權限核心對象模型設計
根據RBAC模型的權限設計思想,建立權限管理系統的核心對象模型。對象模型中包含的基本元素主要有:用戶(Users)、角色(Role)、訪問模式(Access Mode)、控制對象(Control Object)和操作(Operator)等。
主要的關系有:分配角色權限PA(Permission Assignment)、分配用戶角色UA(Users Assignment)。
2.2 角色權限分配策略
角色權限管理圖1包含有權限的分配策略和權限的操作。在權限的操作過程中首先選取要操作的權限,如授權、修改、瀏覽等。然后判斷是實體權限還是功能權限,再把權限分配給角色。如果角色獲得的權限是功能權限則實現系統功能;如果是實體權限,則選擇實體對象。同時某用戶獲得該角色,對實體對象進行權限操作,直至權限管理完成。
安全訪問控制要識別和確認應用系統的用戶。為了防止對系統的任意訪問,該系統采用用戶名和密碼驗證登錄用戶的身份,以確定登錄用戶是否被允許訪問系統資源。用戶身份被確認后,進入系統,應用系統把從用戶表提取的用戶ID發送給角色管理模塊,角色管理模塊通過角色表獲得賦予用戶的角色。圖2是應用系統把系統管理員角色發送給權限模塊,權限模塊通過權限表使得擁有某角色的用戶獲得相應的權限,同時使得不同角色的用戶在相同的應用系統中獲得不同的操作權限,避免了越權操作。

圖2 角色授權
2.3 角色權限管理組件設計
組件方法可以實現角色權限在Web環境下權限的分布式管理,大大方便了權限的可擴展性,增大了權限管理的靈活性,使權限的管理適應不同的客戶端。角色權限管理模型作為核心。實現這種權限訪問控制,建立用于權限管理的幾個數據表,用以存放模塊信息、角色、授給角色的權限、用戶信息、授給用戶的權限和用戶的角色等。Permission表中存儲了系統具有的權限。

表1 Permission表
用戶與角色是雙向多對多的關系。角色主要包括角色ID、角色名稱等信息。表中設置角色互斥鍵,來避免角色分配、運行期間,用戶擁有責任互斥的角色。新角色的定義、修改和刪除均基于此數據表進行。

表2 Role表

表3 Role_Per表
角色權限表存放了所有角色的ID,角色名,角色權限這些基本信息。每個角色ID唯一確定了一種角色。每一種角色被分配相應的權限。該表把具體的許可對象與能夠操作它們的角色綁定在一起,是實現用戶權限定制的關鍵。該數據表的主鍵為Role_ID和Model_ID。角色與權限是雙向多對多的關系。

表4 User表
用戶表中存放了所有用戶的ID、用戶名、密碼、所屬角色這些基本信息,每個用戶的ID是唯一的,它唯一標識一個用戶。每一個使用本系統的用戶必須隸屬于某種角色。但用戶的角色并不唯一,可以隸屬于一種或多種角色。

表5 UserRole表
UserRole表將特定的用戶與角色關聯在一起,主鍵為User_ Name和Role_id。為用戶指定角色只需在該表中添加一條記錄即可;由于主鍵為User_Name和Role_id,所以允許一個用戶擁有多個角色,當多個角色的權限發生沖突時,取其并集。表2、3、4、5的相互關系如圖3所示。

圖3 權限控制E—R圖
3.1 權限管理組件的實現
采用ASP組件技術來實現權限管理組件,提高代碼的重用程度,大大簡化程序設計的復雜度,提高程序的設計效率,同時也有利于解決網絡信息系統的安全。
根據權限的設計,角色權限設置是系統權限管理的主要內容,用戶通過它來完成各種權限的設置,設置的本質就是對后臺角色權限表進行相關操作,如增加、刪除、修改等操作。
’OpenDB方法,打開數據庫,建立與SQL Server的連接,建立連接后就可以創建一個包含所有角色信息的記錄集。
……
Private Sub Add(Id As String, Name As String, Flag As String)
Dim NewConn As New ADODB.Connection
Dim NewRecordsetRole As New ADODB.Recordset
NewConn.Open "Provider=SQLOLEDB;DataSource=School;U serId=;Password="
NewRecordsetRole.Open "SELECT * FROM Role", NewConn, adOpenDynamic, adLockOptimistic
NewRecordsetRole.AddNew
NewRecordsetRole.Fields("Role_ID") = Id
NewRecordsetRole.Fields("Role_Name") = Name
NewRecordsetRole.Fields("flag") = flag
NewRecordsetRole.Update
End Sub
Private Sub Delete(Id As String)
Dim NewConn As New ADODB.Connection
Dim RecordsetDelete As New ADODB.Recordset
NewConn.Open "Provider=SQLOLEDB;DataSource=School;U serId=;Password="
NewConn.Execute "DELETE FROM Role WHERE Role_ID ='" & Id & "'", adCmdText + adExecuteNoRecords
End Sub
3.2 登錄組件的實現
登錄用戶通過所擁有的角色權限來判斷允許訪問的數據庫資源和系統資源。只要有安全考慮的網頁都可以調用登錄組件,查看用戶以前是否登錄過,系統會顯示對應的登錄表單或者直接打開受保護的頁面。輸入帳戶和密碼,系統負責驗證,操作包括到數據庫中選取符合條件的記錄,如果帳戶和密碼不存在,表示這個人沒有權利打開此網頁,系統將響應錯誤信息。若用戶有權利使用系統,系統會進行下一步操作,改變Session變量值、加載正確的網頁內容等。若是一個合法的用戶,由于判斷是否通過認證的Session變量已設置為True,因而連接到下一個有安全考慮的網頁時不會再調用Student組件,也不會出現登錄界面。
登錄組件在VB6中測試編譯后,將產生.dll文件,并用regsvr32.exe將該組件注冊在系統數據庫(Registry)中。調用登錄組件,在ASP文件中加入以下代碼:
……
<%
dim login
Set login = Server.CreateObject("student.login")
login.login nTryTimes
%>
…… <!-跟受保護的網頁內容->
Student.login是Student登錄組件的ProgID。ASP對COM組件的支持,使得它獲得了無限的可擴展性。ASP借助MTS進行自制COM組件的管理。
該系統已成功應用于學籍管理系統的設計和開發實踐。實踐應用表明,采用ASP組件技術實施的安全權限具有以下優勢:權限分配直觀、容易理解,便于使用;擴展性好,支持權限多變的需求;重用性強。
[1] 常彥德.基于角色的訪問控制技術研究進展[J]計算機與現代化 2011 12.
[2] Dino Esposito等著 ASP數據訪問高級編程[M]程永敬 董啟雄等翻譯 機械工業出版社 2007.
[3] Sbelley powers著ASP組件開發指南(第二版)[M] 何健輝 張珞玲等翻譯 中國電力出版社
Design and implementation of WEB MIS system based on ASP component technology
Zhang Junqiang
(Shaanxi Vocational College of Finance and Economics,Xianyang,712000)
The rapid development of network technology,the problem of security is grow with each passing day.Aiming at the application layer authentication and access control security issues.In this paper,using ASP component technology,realizes the role permissions component and login component,ensure with different roles users can log on different interface,to strengthen the security management system,solves the problem of system security.
network security;permissions;access control;ASP component

圖1 角色權限管理
張軍強(1970-) 男,陜西富平,副教授,工學碩士學位,研究方向:計算機網絡及網絡安全