摘 要:門戶集成了網絡中大量的信息和應用資源,它為用戶提供統一的入口訪問不同Web應用,并為每個用戶提供個性化的服務。訪問控制是門戶的重要功能,如何建立一個高效的門戶訪問控制模塊成為研究熱點。在分析portal,RBAC訪問控制模型、SAML和XACML后,提出一個擴展的RBAC訪問控制模型并將其應用到門戶中。該模型引入資源、動作分類概念,并結合上下文,能夠更好地適應動態網絡,具有更高的靈活性。
關鍵詞:門戶平臺;訪問控制;RBAC;SAML;XACML
中圖分類號:TP39308文獻標識碼:B
文章編號:1004-373X(2008)22-128-03
Design and Realization of RBAC in Portal System
LIU Yang,WANG Pu,LI Yafen
(College of Electronic Information and Control Engineering,Beijing University of Technology,Beijing,100022,China)
Abstract:Portal integrates a large amount of information and Web services,provides users a single entrance to access different Web services.A safe access control system becomes necessity.After analysing the portal,RBAC model,SAML and XACML,a new RBAC profile which is fit for the portal system and dynamic Web environment.
Keywords:portal platform;access control;RBAC;SAML;XACML
1 引 言
隨著網絡信息技術的發展,越來越多的企業、學校和個人采用門戶技術集成自己的各項業務功能模塊、數據資源以及互聯網資源。門戶可以為用戶提供統一的訪問渠道,強大的資源應用集成和個性化的服務,單一性、集成性、個性化是門戶的基本特點[1]。
單點登錄技術是門戶實現信息、應用集成和統一的訪問入口的重要手段。選擇合適的方式實現訪問控制功能,成為構建門戶的一個重要步驟。考慮到門戶在集成本地和遠程應用的同時,本身也是一個基于Web的應用程序。在實現門戶訪問控制時,應該結合Web服務的訪問控制,使其更適應Web環境。
RBAC基于角色的訪問控制模型在近幾年得到快速的發展,它將權限與角色綁定,具備最小權限特點,可以作為實現Web服務訪問控制的基本模型。訪問控制語言SAML,XACML與Web服務通訊協議SOAP協議一樣都是基于XML,SAML可以嵌入SOAP[2]消息,選用SAML和XACML作為訪問控制模塊最終的實現語言,是合適的選擇。
在門戶系統背景下,對門戶的特點、訪問控制模型和控制策略語言進行分析,最后提出一個基于門戶系統的訪問控制模型。在設計過程中對現有的基于角色的訪問控制模型進行改善,使其更適應門戶的特點。
2 背景介紹
2.1 基于角色的訪問控制系統
訪問控制模型是用于規定如何做出訪問授權決定的模型,大致可分為3種:自主訪問控制、強制訪問控制和基于角色的訪問控制[3]。自主訪問控制基于用戶,擁有資源的用戶可以隨時授予、收回資源的訪問權,靈活性高,但安全性差;強制訪問控制以主體的安全等級和客體敏感度為判斷依據,因此比自主訪問控制安全性有了提高,但靈活性差;基于角色的訪問控制[3]將用戶、角色、權限分層控制,為用戶賦予角色,角色擁有權限。用戶、角色、權限間可以是多對多的關系。角色管理系統相比前2個模型,更適合分級管理,具有良好的靈活性,適合大規模實現。

因此,現在的RBAC模型已經被大多數訪問控制系統所采用。上面的圖1表示基于角色的訪問控制的基本控制思想。
2.2 SAML和XACML介紹
SAML(安全聲明標記語言)[4]是一種基于 OASIS 標準的可擴展 XML 框架,用于交換身份驗證和授權信息,如前所述,它可以綁定在SOAP協議(Web服務通訊協議)中。SAML并不是一種身份認證模式,它是一種基于XML的描述語言,目的是允許不同安全系統產生的信息進行交換,提供進行驗證和授權斷言以及傳遞斷言的機制。而XACML[5] 則提供了定義進行必要的授權決策所需規則的語言,在特定的XML 文檔環境中,XACML將ACL擴展為<對象、主體、動作、條件>。SAML和XACML都是由OASIS制定,并且基于XML,可以同時被機器和人讀懂。基于上面的這些特性和優點,本模型采用SAML和XACML結合實現訪問控制。
在SAML的定義中提供了策略執行點PEP和策略決策點PDP兩個功能模塊,XACML已經被廣泛的應用,PEP,PDP和策略是XACML的重要組件[6],可見SAML和XACML在訪問實體的定義上有相互重疊的部分,為它們的結合使用提供了前提。圖2是一個XACML的訪問控制模型。

在圖2中,用戶請求以SAML形式發送到策略執行點PEP后,PEP將請求轉交給上下文處理器,上下文處理器收到請求后,將SAML請求轉換為XACML請求并發送到策略決策點PDP。PDP根據策略管理點提供的策略,評估請求并返回一個響應。這個響應經上下文處理器返回給策略執行點PEP,PEP根據響應執行決策結果。
3 門戶系統訪問控制模型設計
門戶系統具有集成性特點,它將大量的應用和資源整合在一起,為用戶提供統一的個性化的服務。所以,對門戶中的應用和資源進行的訪問控制與僅對少數應用進行訪問控制是有區別的。首先,門戶中的信息和內容資源數量眾多,為門戶中的每個資源建立一套角色、權限以及控制策略是不現實的。其次,考慮門戶集成的Web服務的可移植性和通用性,在設計訪問控制模型時應盡量回避在Web服務中存放和角色、資源有關的信息。基于上面的考慮,對XACML模型進行擴展使其更適應門戶系統。門戶系統訪問控制模型如圖3所示。
3.1 擴展模型
整個模型基于RBAC基本思想,包括認證和授權2部分。認證模塊完成用戶身份信息的確認,授權模塊根據用戶請求中包含的信息,完成用戶到角色的映射,并根據資源、動作及上下文等信息依據一定的策略,完成角色到權限的分配。下面對模型中各功能模塊做詳細介紹:
認證服務器 對用戶提供的用戶名/密碼進行認證,為通過認證的用戶返回一段artifact信息,該artifact信息和存放在認證服務器中的用戶信息如全局ID相關聯。
策略執行點PEP 根據策略決策點PDP的決策信息,決定允許或拒絕用戶的操作請求;
策略決策點PDP 根據策略管理點PAP的策略信息,對請求做出裁斷;
策略管理點PAP 管理授權策略;
上下文處理器 負責SAML和XACML間信息的提取和格式轉換;
角色確認權威 根據用戶請求中的用戶全局ID和被訪問資源信息,確認用戶在具體資源中的角色;
資源確認權威 根據用戶請求中的被訪問資源信息,確認被訪問資源的等級;
動作確認權威 根據用戶請求中的操作信息,確認用戶請求動作;
上下文確認權威 根據整個系統環境狀態、系統時間、用戶歷史行為等信息,對上下文做確認。

可以看到整個模型是建立在基于角色訪問控制模型基礎上,除了上面的幾個模塊外,模型中還有幾個重要的概念:角色確認、資源確認、動作確認、上下文確認。下面對這4個概念做具體描述:
(1) 角色確認:在門戶系統中,用戶在每個資源中的角色是不同,有些甚至是互斥的。比如在某資源中用戶的角色是雇主,而在另一資源中的角色是雇員,這樣基本的角色控制模型是不能適應門戶環境的。本模型將角色和資源關聯,根據請求中用戶的信息和被訪問資源判斷用戶在該資源的惟一角色信息。
(2) 資源確認:門戶中集成的資源數目龐大,如果為每個資源中的各個角色編寫控制策略,工作量將不可想象。 將門戶中的資源分類,對不同類別的資源創建訪問控制策略,是簡化門戶系統控制策略管理的辦法。在門戶中,有信息資源和業務系統。信息資源又可以分為內部和網絡資源,對信息資源的操作一般是查看,查找操作。雖然,每個業務系統中的用戶角色不盡相同,但每個相似等級的角色擁有的操作權限有時是相同的。如,某高校門戶系統集成了畢業生就業信息管理平臺和新聞網后臺管理平臺,兩個管理系統中后臺的最高級別管理員,都擁有對資源的全部操作權限,而最低級別維護員只擁有文章添加、修改、刪除、提交功能的操作權限。
(3) 動作確認:用戶請求的具體操作可以被分類,概括成抽象操作。如上面提到的閱讀、查找操作可以抽象為查看操作。
(4) 上下文確認:上下文的引入是考慮到系統的動態環境下,用戶的歷史動作記錄和系統狀態對授權決策的影響。
3.2 訪問過程
用戶訪問門戶資源的整個過程是一個會話周期,用戶首先登錄或被重定向到身份認證服務器,根據服務器提示向認證服務器提交身份信息(用戶名/密碼形式),認證服務器做出身份判斷,如果用戶通過驗證,返回用戶一個SAML身份認證聲明,表明用戶通過驗證,并同時在URL中插入一個叫作artifact的固定長度的信息一起返回給用戶。
當用戶訪問某個具體應用時,訪問請求被發送到授權服務器。用戶的artifact被提交回認證服務器,認證服務器將查找到的用戶信息返回給授權服務器,用戶信息中包含著用戶的全局ID等信息。授權服務器接收到該信息后和用戶的請求信息一起發送到策略執行點PEP。
PEP先將包含著用戶請求和用戶全局ID的信息依次發送到角色確認權威、資源確認權威、動作確認權威、上下文確認權威。對請求信息中的用戶角色、被訪問資源、動作和上下文信息進行確認。經過這步處理的請求信息被返回到上下文處理器,上下文處理器將它轉發給PDP。PDP依據請求中的信息做出最后的授權決策,并返回給PEP,PEP執行授權決策的決定。
4 模型應用
本門戶訪問控制模型是為了整合高校信息和應用資源設計的,為了驗證該模型,將它應用到實際項目中。設計的用戶基本信息表p_userInfo,主要存放用戶的全局ID用于訪問控制認證模塊的查詢。p_user_right表存放用戶的角色、資源信息,用戶角色確認權威的訪問查詢。p_action_abact存放用戶可能的操作和抽象操作名稱,用于動作確認權威的訪問。p_session存放用戶訪問門戶session信息,其中包括用戶的行為信息等,為上下文確認全文查詢。
就業信息發布管理系統是該高校門戶平臺中的一個應用系統,用戶根據職責對就業信息文章進行查看(view)、添加(add)、編輯(edit)、刪除(delete)、提交(submit)、發布(public)、退回(reject)、審核(audit)、取消(cancel)等操作。系統中用戶的角色分為3個等級:系統管理員(administrator)、院部審核員(auditor)、院部維護員。
權限指派如下:
Administrator:{view,add,edit,delete,public,cancel }
Auditor::{ view,add,edit,delete,public,reject,audit }
Maintainer:{ view,add,edit,delete,submit }
當用戶請求對資源操作時,訪問控制模塊根據用戶自身的全局ID查找用戶在就業信息發布管理系統中被分配的角色,賦予用戶該角色擁有的權限。門戶系統中除就業信息發布管理系統外的另一個應用資源為校園內網管理系統,它對用戶角色的劃分和操作權限的委派與就業信息發布系統類似。因此,兩個應用系統在資源等級劃分中屬于一類,控制策略可以共享,這樣起到了簡化控制策略的目的。
5 結 語
在文中,首先對門戶系統的特點進行分析,提出一種基于RBAC的訪問控制模型,選用SAML和XACML訪問控制語言實現。模型對基本RBAC進行擴展,提出在授權模塊進行用戶/角色轉換的概念,并同時增加了資源、動作和上下文的確認權威機構,并在實際項目中應用,證明能夠簡化控制策略的創建和管理,更適應大量的動態、分布的網絡環境。但本文考慮的情況沒有包括對系統中原有舊系統的改造,對于這方面的研究將在后面的工作中完成。
參考文獻
[1]Clarke S.Standards for Second-generation Portals.IEEE Internet Computing,2004,8(2):54-60.
[2]Bilal Siddiqui,WAP Monster.開發Web服務.http://www.ibm.com/developerworks/cn/Webservices/ws-intwsdl/part2/index.html,2002.
[3]Sandhu R,Coyne E,Feinstein H,et al.Role-based Access Control Mode[J].IEEE Computer,1996,29(2):38-47.
[4]SAML 2.0 Profile of XACML v2.0 Standard,OASIS,2005.
[5]XACML v3.0 Administrative Policy.Work draft 10,OASIS,2005.
[6]Diala Abi Haidar Nora Cuppens-Boulahia,Frederic Cuppens,et al.An Extended RBAC Profile of XACML.SWS′06,Alexandria,Virginia,USA.2006.
[7]方蔚濤,楊丹,李珩,等.數字化校園信息門戶的設計研究.計算機科學,2007,34(3):135-138。