摘要:基于角色的訪問控制(RBAC)方法是目前公認的解決大型企業的統一資源訪問控制的有效方法,在對RBAC理論研究的基礎上,結合了.NET框架表單驗證技術,設計了基于RBAC的安全驗證體系,有效地解決了辦公自動化系統中的安全與協作的問題。
關鍵詞:RBAC;安全驗證;辦公自動化系統
中圖分類號:TP317文獻標識碼:A文章編號:1009-3044(2008)30-0636-02
Research and Design of the Security Authentication in the Office Automation System
ZHAO Zuo-hui
(Xuzhou Economic and Trade Branch of Jiangsu Union Techical Institute, Xuzhou 221004, China)
Abstract: Role-based access control (RBAC) is now recognized to solve large-scale enterprises of the Internet an effective way to access control, on the basis of RBAC in the theory , combining. NET Framework forms authentication technology, based on the design of the RBAC security verification system to address effectively the office automation system of security and cooperation.
Key words: RBAC; security authentication; office automation system
1 系統安全驗證體系的概述
辦公自動化系統是一種多用戶協同式系統,而用戶的管理及權限是辦公自動系統各子系統的協同工作的紐帶,所以用戶權限的設計是系統設計中的核心部分。
企業環境中的訪問控制策略一般有三種:自主型訪問控制方法、強制型訪問控制方法和基于角色的訪問控制方法(RBAC. Role-Based Access Control)。其中,自主式太弱,強制式太強,二者工作量大,不便于管理。基于角色的訪問控制方法是目前公認的解決大型企業的統一資源訪問控制的有效方法。其顯著的兩大特征是:
1) 減小授權管理的復雜性,降低管理開銷;
2) 靈活地支持企業的安全策略,并對企業的變化有很大的伸縮性。
2 基于角色的訪問控制模型
二十世紀九十年代以來,隨著對在線的多用戶、多系統的研究不斷深入,角色的概念逐漸形成,并逐步產生了以角色為中心的訪問控制模型。美國國家標準化技術委員會NIST于90年代初提出了基于角色的訪問控制方法,實現了用戶與訪問權限的邏輯分離,構造了角色之間的層次關系。
基于角色的訪問控制機制(RBAC. Role-Based Access Control)的基本特征是:依據RBAC策略,系統定義各種角色,每種角色可以完成一定的職能,不同的用戶根據其職能和責任被賦予不同的角色,一旦某個用戶成為某角色的成員,則此用戶可以完成該角色的職能。目前,基于角色的訪問控制模型正在逐步被理論界和工業界所接受。
在RBAC中,有四個基本實體,角色R(Role),用戶U(User),許可P(Permission),會話S(Session),引入了角色這一重要概念是RBAC最大的特點。
1) 角色:對應于企業組織結構中一定的職能崗位,即執行特定任務的能力或在組織中己被授予一定責任的一個工作頭銜。代表特定的權限,即用戶在特定語境中的狀態和行為的抽象,反映用戶的職責,是一個或一群用戶在組織內可執行的操作集合。角色的例子有:校長、處長、系主任、科長、班主任、專職教師。
2) 用戶:信息系統的使用者。主要是指人,也可以是機器人、計算機或網絡,在本研究中進行安全訪問控制設計和實現時,用戶指的是使用企業信息系統的人。用用戶與角色是多對多的關系,即一個用戶可以擁有多個角色,而一個角色可以包含不同的用戶。
3) 許可:表示操作許可的集合,即用戶對信息系統中的對象進行某種特定模式訪問的操作許可。在系統中對一個或多個客體進行特定模式訪問的操作許可,與實現機制密切相關。操作許可的本質取決于其所在的應用系統的實現細節,如操作系統中保護的是文件、目錄、設備、端口等資源,相應操作為讀、寫、執行,而在關系數據庫管理系統中則保護關系、元組、屬性、視圖,相應操作為Select,Update,Delete,Insert。許可與角色是多對多的關系,即一個角色可以擁有一個或多個操作許可,而一個操作許可可以被角色使用,而且用戶對操作許可的執行必須通過角色聯系起來,從而可以提供對信息訪問的更多控制。
4) 會話:會話是一個動態概念,用戶激活角色集時建立會話。會話是一個用戶和多個角色的映射,即一個用戶可以集合某個角色子集,此時用戶操作權限是激活角色操作許可的并集。用戶與會話是一對多的關系,一個用戶可以同時打開多個會話,會話等價于一般的主體概念,會話是一個訪問控制單元,每個會話可以擁有許多不同的操作權限。
3 辦公自動化系統安全驗證體系的設計
3.1 .NET框架的安全驗證體系
在.NET框架中提供了與傳統模型相似的,但卻是由開發人員自定義的安全模型,稱為基于角色的安全性(Role-Based Security)。基于角色的安全性最重要的概念就是授權(Principals)和標識(Identity)。
在ASP.NET中提供了3種內置的安全模型:
1) Windows 身份驗證:
結合了Windows身份驗證和ACL(Access Control List,訪問控件列表)授權,它與傳統的IIS/Windows安全機制大體相同。此方法的弊端在于它需要對服務器的配置進行實際的修改,從而使一個單服務器環境中的管理更加復雜,在一個Web FORM方案中實現也非常困難。其優點在于用戶名和密碼信息會自動加密以實現在公共Internet上的安全傳輸,因為瀏覽器(通常是Microscoft的Internet Explorer)會主動加入身份驗證過程。
2) 基于表單(FORMS)身份驗證:
提供了一種便利的,具有高度擴展性的,而且通常是Web友好的方案,可以替代Windows的安全機制。通過該系統利用HTTP客戶端重定向將未經身份驗證的請求重定向到某HTML窗體。用戶提供憑據并提交該窗體。如果應用程序對請求進行身份驗證,系統會發出一個Cookies在其中包含用于重新獲取標識的憑據或密鑰。隨后發出的請求在請求頭中具有該Cookie,ASP.NET事件處理程序使用應用程序開發人員指定的任何驗證方法對這些請求進行身份驗證和授權。
3) 基于護照(PASSPORT)的身份驗證:
建立在Microsoft的PASSPORT服務之上,使應用程序可以利用一個用戶信息的全球數據庫。
在上述3種安全模型中,FORMS安全模型非常靈活,因為用戶的帳戶數據存儲管理非常靈活,而且在三者中集成程度最低。在FORMS模型中可以在任何.NET可訪問的文件或數據存儲器中存儲用戶證書(通常是一個用戶名和密碼)。
ASP.NET中用戶內置的用戶驗證支持的功能非常強大,它能夠自動在Context對象中生成一個名為User的屬性。該屬性能夠讓我們訪問各種信息,包括用戶是否已經驗證,都可以使用由Context對象表示的當前的HttpContext實例中的User對象。
3.2 辦公自動化系統的安全驗證體系的設計
本系統的用戶是全校教職員工,用戶的角色按照學校的行政設置進行劃分,也可以自己定義角色,十分靈活。角色的權根分為兩類:一個是操作權限,如管理表單權限、文件操作權限等;一個是功能模塊權限,就是按模塊劃分的操作結點,通過這兩個權限設置可以對用戶的權限靈活的設置,兩個權限的設計都可以進行維護擴充,便于增加新的控制和功能。
相關數據表設計如下:其中三個基本表Accounts_Users(用戶信息)、Accounts_Roles(角色信息)和Accounts_Permissions(用戶許可信息)用來記錄用戶、角色和權限的基本信息。另兩個表Accounts_UserRoles(用戶角色)和表Accounts_RolePermissions(用戶角色許可)分別用來維護用戶的角色和角色擁有的相關權限。在編程時可以結合APS.NET表單驗證并對數據庫進行相應的操作,對用戶進行驗證。從而實現系統的安全驗證體系。
4 總結
本系統結合.NET框架的驗證體系和基于RBAC模型構建了基于RBAC的安全驗證體系結構,這種設計方法不僅適合于本系統,同時也具有一定的普遍性,可用于權限管理要求高的多用戶系統中。
參考文獻:
[1] 孫大大.基于RBAC的分布式服務兩級訪問控制[J].計算機工程與應用,2006(26):123-125.
[2] 吳浪.RBAC在基于Web信息系統中實現的一種技術方案[J].懷化學院學報,2006(5):42-44.
[3] 夏榆濱.基于RBAC的統一權限管理系統研究[J].微計算機信息,2006,22(9-3):114-146.
注:本文中所涉及到的圖表、注解、公式等內容請以PDF格式閱讀原文