專利名稱:多策略支持的安全網頁標簽庫系統(tǒng)的制作方法
技術領域:
本發(fā)明屬于計算機信息安全技術,具體涉及一種基于訪問控制的Web 頁面安全標簽庫,該系統(tǒng)是對現(xiàn)有的Web頁面標簽庫的改進,能夠對Web 頁面上的各種頁面元素進行安全控制,根據各個網站對用戶的授權,頁面 元素會針對用戶的權限顯示出特定的內容。
背景技術:
隨著軟件設計技術的不斷發(fā)展和提高,尤其是針對Web應用開發(fā)的效 率和敏捷靈活性的要求越來越高,快速應用開發(fā)技術(RAD, Rapid Application Development)日益成為實際工程開發(fā)領域的熱點技術。RAD的 核心思想是通過一整套可重用的組件來開發(fā)出功能強大的應用程序。人們 熟知的Visual Basic、 PowerBuilder以及Dephi等都是利用了 RAD的組件重 用思想從而大大地提高了應用程序的開發(fā)效率,使得原本復雜繁瑣的用戶 界面設計以及數(shù)據訪問實現(xiàn)過程大大簡化。
訪問控制技術在提高資源安全性的同時,也為Web頁面的開發(fā)設置了 障礙。原本可以直接用頁面的模板、腳本、指令以及動作元素就可以實現(xiàn) 的頁面顯示,現(xiàn)在要花上很多的時間來開發(fā)與用戶權限相關的控制邏輯, 而且Web系統(tǒng)的權限控制往往體現(xiàn)在頁面元素的可見與不可見,可用與不 可用,以及顯示用戶權限許可范圍內可見的內容上。實現(xiàn)Web系統(tǒng)權限控 制的程序代碼往往具有很強的可重用性,而且占據了整個Web系統(tǒng)設計與 開發(fā)近30%的工作量。如果Web系統(tǒng)業(yè)務流程復雜,而且功能模塊繁多, 那么權限控制部分的代碼量也會隨之增加。并且這部分代碼重用性大,不同的Web系統(tǒng),或者是同一 Web系統(tǒng)的不同功能模塊上也會出現(xiàn)重復性的 代碼,給開發(fā)人員帶來許多額外的負擔。
傳統(tǒng)Web系統(tǒng)權限控制部分開發(fā)流程包含以下步驟
(1) 定義系統(tǒng)中受保護的資源清單。
(2) 定義系統(tǒng)中的用戶以及用戶組。
(3) 根據用戶和資源,定義系統(tǒng)中的訪問控制策略,包括權限以及角色。
(4) 針對Web系統(tǒng)開發(fā)頁面過濾器,或直接對頁面初始化部分進行編碼, 根據訪問控制策略限制用戶對頁面的訪問。
這部分開發(fā)與系統(tǒng)的業(yè)務流程相對獨立,但是現(xiàn)有的有權限管理的 Web系統(tǒng)都在重復以上的開發(fā)。首先,這種開發(fā)給設計人員和程序編制人 員帶來了重復的,不必要工作量,增加的系統(tǒng)的開發(fā)成本。其次,給系統(tǒng) 和代碼的維護帶來了不必要的困難。
由美國Interface21公司于2004年提出的Acegi(Spring Security)項目, 如今已成為Spring框架下取代原生Java EE安全編程模型的安全框架。其 支持Java EE規(guī)范給定的各種人政策略,主要包括基于表單(FORM)認證、 基于BASIC認證、基于摘要(DIGEST)認證、基于X.509(CLIENT-CERT)認 證。保護HTTP請求,即Web資源;保護服務層的業(yè)務方法,可針對任意 受管POJO;保護領域對象(Domain Instance);具有靈活的傳輸通道安全性, SSL/TSL;支持安全性上下文的遠程傳播,透明傳播;提供JavaEE容器適 配器認證,支持Tomcat、 JBoss、 Resin、 Jetty等。但是沒有提供控件級的 細粒度訪問控制;實際工程中可能遇到RBAC需要與其他機制配合,Acegi 缺乏對策略集成的支持。不能滿足安全等級等強制訪問控制需求,對數(shù)據 資源的保護主要依賴于對Web頁面、業(yè)務方法或領域的保護,仍不夠靈活。 安全標簽僅便于提供認證授權信息的收集和使用,除此沒有更多意義
發(fā)明內容
本發(fā)明的目的在于提供一種多策略支持的安全Java Web應用頁面標簽 庫系統(tǒng),該系統(tǒng)能對Web頁面元素提供控件級的細粒度訪問控制,具有認 證方式靈活、兼容集中認證服務認證、組件設計和重用性強的特點。
本發(fā)明提供的多策略支持的安全Java Web應用頁面標簽庫系統(tǒng),其特 征在于該系統(tǒng)包括安全登錄模塊、安全上下文服務模塊、策略定義模塊、 Web安全服務器組件、Web安全響應生成器和安全標簽庫;
安全標簽庫中定義有一套能夠在各種Java Web網頁中導入的安全標
簽;
安全登錄模塊用于提供對兩種登錄方式的支持-基于安全登錄組件的單 域認證方式和CAS單點登錄的兼容方式;安全登錄模塊負責用戶身份認證, 通過認證的用戶為合法用戶;安全登錄模塊所控制的單點登錄客戶端部署 在受控資源的策略定義模塊所定義的策略文檔中;訪問受安全登錄模塊控 制的節(jié)點受控資源的用戶必須經過單點登錄服務器端的安全認證;安全登 錄模塊接收用戶的用戶名和密碼的輸入,進行認證,產生認證結果,如果 認證通過,安全登錄模塊根據用戶請求的頁面鏈接將該用戶認證通過標識 發(fā)送給安全上下文服務模塊;
安全上下文服務模塊用于初始化登錄用戶的身份信息,并依據策略定 義模塊的配置,針對不同授權策略,生成并存儲相應的激活角色信息、安 全級別以及受管控件訪問策略定位標識符,提供給相應的Web安全服務器 組件使用;
策略定義模塊用于負責定義并管理基于安全標簽的訪問控制的一套規(guī) 則,通過對xml格式的策略定義文檔進行相應安全規(guī)則的設置及存取,該 模塊負責提供對受管頁面關鍵控件的訪問控制規(guī)則,用于描述用戶、角色、 權限、安全級以及這些安全元素之間的關系;
Web安全服務器組件用于解析安全標簽庫的安全標簽,在響應客戶端請求時實現(xiàn)數(shù)據的安全綁定并根據安全上下文服務模塊提供的安全配置動
態(tài)加載響應頁面的各種安全屬性,將受控后的組件狀態(tài)提供給Web安全響 應生成器;
Web安全響應生成器裉據Web安全服務器組件提供的狀態(tài)信息,決定 相應頁面最后的呈現(xiàn)界面,將安全標簽的格式轉換為相應的目標標識語言 格式,為瀏覽器返回統(tǒng)一的安全響應頁面。
上述結構的系統(tǒng)能夠提供系統(tǒng)中受安全訪問控制的各種頁面標簽,基 本上涵蓋JSP標簽庫的所有頁面標簽的表現(xiàn)形式,為開發(fā)者提供一套集安 全訪問控制功能在內的,高效、完整的頁面開發(fā)標簽庫。本系統(tǒng)針對安全 Java Web應用開發(fā)提出一套完整的RAD解決方案,包括設計實現(xiàn)一組可重 用的安全組件,用于封裝帶有安全屬性的用戶界面顯示和數(shù)據訪問功能, 同時提供相應的安全Web標簽庫支持,并利用渲染技術實現(xiàn)對安全組件標 簽的標準HTML解析,使之適用于絕大部分的Web開發(fā)環(huán)境。在安全組件 提供安全屬性的基礎之上,利用XML語言定義并描述相應的安全策略部署 文檔,同時支持基于角色的訪問控制(RBAC)以及強制訪問控制(MAC) 機制,并提供通過關系數(shù)據庫(RDBMS)定義安全策略的擴展支持,實現(xiàn) 一套靈活便捷的基于組件粒度的安全訪問控制實現(xiàn)機制。具體而言,本發(fā) 明具有如下優(yōu)點-
(1) 支持快速應用開發(fā)開發(fā)者只需要在頁面中使用系統(tǒng)定義標簽名 作為前綴定義其頁面所需的各種控件,不需要開發(fā)額外的程序代碼模塊, 就可以實現(xiàn)控件級訪問控制的需求。且標簽使用靈活,可移植性強。
(2) 控件級細粒度保護傳統(tǒng)的應用系統(tǒng)的訪問控制粒度一般來說不 外乎模塊級和頁面級,也就是說,其策略配置一般只制定用戶對模塊的訪 問以及用戶對頁面的訪問規(guī)則。本系統(tǒng)可以提供控件級的細粒度控制,可 以定義控件對當前用戶可見還是不可見,可用還是不可用,以及對于當前用戶,控件應該顯示哪些權限范圍內可訪問的資源。
(3) 認證方式靈活,兼容集中認證服務(CAS, Central Authentication Service)認證本系統(tǒng)提供多種類型的認證方式,在基于安全登錄組件的單 域認證方式中用戶可以選擇以身份證書的方式登錄,也可以選擇用用戶名 和密碼登錄。同時本系統(tǒng)兼容CAS認證,不需要開發(fā)人員做額外的編程工 作,多個應用系統(tǒng)就可以使用本標簽庫實現(xiàn)多系統(tǒng)間的單點登錄。
(4) 組件設計,重用性強本系統(tǒng)的設計都是基于組件開發(fā),每個功能 模塊均獨立成組件,可重用性強。各模塊都提供了充分的API供調用,能 夠比較方便地適應開發(fā)人員根據需求進行二次開發(fā)。
圖1是本發(fā)明系統(tǒng)的結構示意圖。
圖2是本發(fā)明系統(tǒng)中系統(tǒng)流程圖。
圖3是本發(fā)明系統(tǒng)的一種具體實施方式
的結構示意圖。
圖4是本發(fā)明系統(tǒng)中系統(tǒng)信息存儲結構示意圖。
圖5是本發(fā)明系統(tǒng)中用戶信息數(shù)據存儲結構示意圖。
圖6是本發(fā)明系統(tǒng)中用戶組到用戶的指派關系數(shù)據存儲結構示意圖。
圖7是本發(fā)明系統(tǒng)中角色到用戶組的指派關系數(shù)據存儲結構示意圖。
圖8是本發(fā)明系統(tǒng)中對控件的操作信息數(shù)據存儲結構示意圖。
圖9是本發(fā)明系統(tǒng)中控件操作到角色的指派關系數(shù)據存儲結構示意圖。
具體實施例方式
下面結合附圖和實例對本發(fā)明作進一步詳細的說明。 如圖1所示,本發(fā)明提供的提供多策略支持的安全Java Web應用頁面 標簽庫系統(tǒng)包括安全登錄模塊100、安全上下文服務模塊200、策略定義模 塊300、 Web安全服務器組件400、 Web安全響應生成器500和安全標簽庫600。安全標簽庫600定義了一套可以在各種Java Web網頁中導入的安全標 簽,通過直接在頁面中定義標簽庫所對應的安全組件,開發(fā)者能夠快速直 觀的開發(fā)出滿足各種實際工程性安全需求的Web應用模塊,同時通過在策 略文檔中對各安全標簽的唯一安全ID進行設置,能夠方便的定義各種基于 控件粒度的安全規(guī)則。安全登錄模塊100同時提供對兩種登錄方式的支持-基于安全登錄組件 的單域認證方式和CAS單點登錄的兼容方式。安全登錄模塊100負責用戶 身份認證,通過認證的用戶為合法用戶;安全登錄模塊100所控制的單點 登錄客戶端部署在受控資源的策略定義模塊300所定義的策略文檔中;訪 問受安全登錄模塊100控制的節(jié)點受控資源的用戶必須經過單點登錄服務 器端的安全認證。本發(fā)明可以采用不同的架構實現(xiàn)單點登錄(1)集中式 認證服務器的方式建立集中式認證服務器并將單點登錄客戶端部署在各 個資源網站中即可實現(xiàn)單點登錄。服務器端維護全局用戶名密碼表以實現(xiàn) 統(tǒng)一認證。(2)用戶密碼映射方式在單點登錄服務器維護一張用戶映射 表,將同一用戶在不同資源網站的不同用戶名進行映射,即可實現(xiàn)單點登 錄功能。安全登錄模塊100接收用戶的用戶名和密碼的輸入,進行認證,產生 認證結果,如果認證通過,安全登錄模塊100根據用戶請求的頁面鏈接將 該用戶認證通過標識發(fā)送給安全上下文服務模塊200。安全上下文服務模塊200初始化登錄用戶的身份信息,并依據策略定 義模塊300的配置,針對不同授權策略,生成并存儲相應的激活角色信息、 安全級別以及受管控件訪問策略定位標識符,以供相應的Web安全服務器 組件400使用。策略定義模塊300負責定義并管理"基于安全標簽的訪問控制"的一 套規(guī)則,通過對xml格式的策略定義文檔進行相應安全規(guī)則的設置及存取,該模塊負責提供對受管頁面關鍵控件的訪問控制規(guī)則,用于描述用戶、角 色、權限、安全級以及這些安全元素之間的關系。Web安全服務器組件400用于解析安全標簽庫600的安全標簽,在響 應客戶端請求時實現(xiàn)數(shù)據的安全綁定并根據安全上下文服務模塊200提供 的安全配置動態(tài)加載響應頁面的各種安全屬性,將受控后的組件狀態(tài)提供 給Web安全響應生成器500。Web安全響應生成器500根據Web安全服務器組件提供的狀態(tài)信息, 決定相應頁面最后的呈現(xiàn)界面,將安全標簽的格式轉換為相應的目標標識 語言格式(如HTML標簽),最終為瀏覽器返回統(tǒng)一的安全響應頁面。整個系統(tǒng)流程如圖2所示,包括(1) 對用戶信息進行配置管理,其過程包括用戶描述流程針對的對象是管理員用戶,管理員用戶通過系統(tǒng)提供的 接口對具有權限的用戶進行配置管理,具體流程如下(1.1) 管理員使用安全登錄模塊ioo輸入用戶名密碼。(1.2) 安全登錄模塊100將登錄信息與策略定義模塊300中提供的用戶 身份信息進行比對,如果認證通過,則由安全登錄模塊100從策略定義模 塊300獲取該管理員用戶的詳細信息(包括用戶組ID等),并對其開放管 理員權限(即可對該管理員所屬網站內的用戶權限進行描述與修改),進入 步驟(1.3),否則返回登錄失敗信息,退出流程。(1.3) 管理員通過策略定義模塊300配置用戶信息(包括用戶名、密碼、 用戶所在網站、用戶組等),并將其保存在xml格式的策略定義文檔中。管 理員通過策略定義模塊300對用戶信息、用戶組信息以及站點信息進行配 置和管理,最終將這些配置存放至xml格式的策略定義文檔中。(2) 根據策略定義模塊300的配置動態(tài)加載響應頁面的各種安全屬性, 生成當前用戶最終見到的頁面,其過程包括頁面顯示流程中主體是Web安全響應生成器500。根據相應服務器組 件400提供的狀態(tài)信息,將安全標簽庫600提供的安全標簽的格式轉換為 相應的目標標識語言HTML格式,決定相應頁面最后的呈現(xiàn)界面,具體流 程如下(2.1) 開發(fā)人員在開發(fā)滿足各種實際工程性安全需求的Web應用模塊 時,在頁面中定義標簽庫600所提供的安全標簽,同時通過在策略文檔中 對各安全標簽的唯一安全ID進行設置,定義各種基于控件粒度的安全規(guī)則, 這些安全規(guī)則通過策略定義模塊300被寫入xml格式的策略定義文檔。(2.2) Web安全響應生成器模塊500直接通過Web安全服務器組件400 解析安全標簽600,在響應客戶端請求時實現(xiàn)數(shù)據的安全綁定并根據策略定 義模塊300提供的相應安全規(guī)則的配置動態(tài)加載響應頁面控件的各種安全 屬性。(2.3) Web安全響應生成器模塊500根據Web安全服務器組件400中相 應服務器組件提供的狀態(tài)信息,決定相應頁面最后的呈現(xiàn)界面,將安全標 簽的格式轉換為相應的目標標識語言格式(如HTML標簽),最終為瀏覽器 返回統(tǒng)一的安全響應頁面。(3)向開發(fā)人員提供頁面標簽安全屬性定制功能,其過程包括(3.1) 頁面標簽安全屬性定制流程針對的對象是應用系統(tǒng)開發(fā)人員,開 發(fā)人員首先將標簽庫導入開發(fā)的工程,在開發(fā)頁面時在頁面指令元素中用 taglib聲明本標簽庫<%@ taglib uri = "taglibURT prefix="tagPrefix,,0/0>,其 中uri用來表示標簽描述符,告訴容器如何找到標簽描述文件和安全標簽庫 600, prefix定義在JSP頁面中應用此標簽的前綴。(3.2) 在頁面中使用〈prefix:tag attribute=value .../>定義帶有訪問控制功 能的頁面元素,其中在標簽屬性中定義擁有標簽訪問權限的角色。只有當 前用戶擁有標簽屬性中所定義的角色時,才能訪問本標簽內容。角色對用 戶的指派信息通過策略定義模塊300存儲在xml格式的策略定義文檔中,組件400動態(tài)加載響應頁面受管控件 的各種安全屬性。(3.3)通過策略定義模塊300在xml格式的策略定義文檔中定義用戶與 角色的對應關系,本系統(tǒng)兼容基于角色的訪問控制規(guī)則以及強制訪問控制 規(guī)則。各種控件資源的訪問控制權限通過角色指派到用戶,頁面上的控件 屬性中定義控件的訪問角色。這種方式的好處在于如果系統(tǒng)龐大,用戶 數(shù)量和頁面控件數(shù)量巨大,但是用戶的角色數(shù)量是有限的,這樣就可以極 大程度地降低策略定義模塊300中所定義的策略文檔的復雜度。同時在本 發(fā)明中,用戶可以組織成用戶組,然后定義用戶組所擁有的角色,這樣, 即使用戶數(shù)量巨大,但是用戶組的數(shù)量是有限的,用戶組到角色的指派關 系也會是相對有限的。下面舉例具體說明本發(fā)明應用頁面標簽庫系統(tǒng)中各部分的具體構成。 如圖3所示,安全登錄模塊100包括系統(tǒng)信息管理模塊110、用戶信息 管理模塊120、用戶組信息管理模塊130和用戶認證模塊140。系統(tǒng)信息管理模塊110為管理員提供配置系統(tǒng)信息的接口。管理員在 受控的系統(tǒng)信息管理模塊110上通過策略定義模塊300中的策略信息存取 模塊310的實現(xiàn)對資源系統(tǒng)的注冊,注冊信息包括系統(tǒng)名稱、系統(tǒng)首頁 URL、系統(tǒng)的登錄URL、系統(tǒng)的訪問控制策略及每個連接器的缺省用戶登 錄參數(shù),如圖4所示。管理員配置完畢后向策略信息存取模塊300提交對 系統(tǒng)修改信息,XML存取管理模塊350對管理員提交的配置和修改信息進 行保存。用戶信息管理模塊120為管理員提供配置用戶信息的接口,使管理員 能夠訪問并修改策略定義模塊300中所配置的策略定義文檔中的用戶信息。 各系統(tǒng)管理員根據系統(tǒng)信息管理模塊110中的系統(tǒng)名獲得自己系統(tǒng)的系統(tǒng) ID,并根據該系統(tǒng)ID通過用戶信息管理模塊120進行該系統(tǒng)用戶信息的配置(即配置所有與管理員具有相同站點ID的用戶),并通過策略定義模塊300寫入策略定義文檔。用戶信息具體描述方法如下用戶信息表中每個用戶擁有用戶ID、密碼、級別(若為分級訪問控制)等屬性,如圖5所示。 管理員配置完畢后通過用戶信息管理模塊120向策略信息存取模塊310提 交對用戶信息表的修改,其中主要包括用戶名、用戶登錄密碼等,XML存 取模塊350對管理員提交的配置和修改信息進行保存。用戶組信息管理模塊130為管理員提供描述用戶組與用戶對應信息的 接口。對于某一開發(fā)中的系統(tǒng),其用戶數(shù)量可能很多,訪問控制策略也可 能不同,但是總會有許多用戶具有相同的權限,比如說同一個科室的所有 同級別科員,在某個系統(tǒng)中的權限是一致的。就可以將同--系統(tǒng)上具有相 同權限的用戶歸為同一個用戶組。這樣,在系統(tǒng)用戶繁多,頁面控件繁多 的情況下,根據用戶權限對用戶進行分組是相對容易的。通過用戶組描述 用戶權限的優(yōu)點除了描述者不需要了解系統(tǒng)的具體訪問控制策略,還可以 降低用戶策略定義文檔的規(guī)模。 一個Web系統(tǒng)雖然擁有大量可達的URL和 用戶,但可以將用戶歸屬為數(shù)量較少的用戶組,這就使資源描述成為可能。 組織良好的Web系統(tǒng)中由于大部分用戶具有相同的訪問權限,這些用戶信 息會定位于同一個用戶組內,即使Web系統(tǒng)沒有將具有相同訪問權限的用 戶歸為同一個用戶組,甚至訪問控制粒度細到每個用戶的權限皆不相同, 本發(fā)明也可以對每個用戶進行描述,提高了系統(tǒng)的靈活度。用戶組信息管理模塊130根據管理員提供的訪問控制權限設置、歸納 用戶組信息,并通過策略信息存取模塊310將用戶組信息寫入策略定義文 檔。管理員根據系統(tǒng)信息管理模塊110和用戶信息管理模塊120中的信息 以及系統(tǒng)的訪問控制權限來設置用戶組信息表。用戶組信息表中的屬性有: 用戶ID,用戶組ID等,如圖6所示。用戶和用戶組滿足多對多的關系,即 一個用戶可以屬于多個用戶組, 一個用戶組可以擁有多個不同的用戶。管理員設置完畢后向策略信息存取模塊310提交對用戶組信息表的修改信息, XML存取模塊350對管理員提交的用戶組設置和修改信息進行保存。用戶認證模塊140將用戶輸入的用戶名和密碼或身份證書等信息與策 略定義模塊300中管理的用戶信息進行比對,如果用戶驗證通過,則請求 用戶權限信息初始化模塊210來獲取當前用戶在系統(tǒng)中的權限信息。安全上下文服務模塊200包括用戶權限信息初始化模塊210、角色信息 激活模塊220以及控件訪問控制決策模塊230。用戶權限信息初始化模塊210根據用戶認證模塊140中提供的用戶ID 在策略定義模塊300所定義的策略文檔中獲取當前用戶所在的用戶組信息, 提供給角色激活模塊220。角色激活模塊220根據當前用戶的用戶組信息在策略定義模塊300所 定義的策略文檔中獲取當前用戶所有的角色信息,并激活當前用戶所指派 的所有可激活的角色,進一步生成激活角色信息,以供控件訪問控制角色 模塊230使用。控件訪問控制決策模塊230根據當前用戶的激活角色信息在策略定義 模塊300所定義的策略文檔中獲取并生成相應的安全級別信息以及受管控 件訪問策略定位標識符,以供受管控件和安全標簽使用。策略定義模塊300包括策略信息存取模塊310、角色信息管理模塊 320、用戶組角色指派信息模塊330、角色頁面控件操作指派信息模塊340 和XML存取管理模塊350。策略信息存取模塊310用來存取系統(tǒng)信息、用戶信息、用戶組信息、 用戶及用戶組配置信息、角色信息、用戶組角色指派信息和角色頁面控件 操作指派信息。角色信息管理模塊320為管理員提供配置角色信息的接口,使管理員能夠訪問并修改策略定義模塊300所配置的策略定義文檔中的角色信息。 系統(tǒng)管理員根據系統(tǒng)信息管理模塊110中的系統(tǒng)名獲得自己系統(tǒng)的系統(tǒng) ID,并根據該系統(tǒng)ID通過角色信息管理模塊320進行該系統(tǒng)角色信息的配 置(即配置所有與管理員具有相同站點ID的用戶),并通過策略定義模塊 300寫入策略定義文檔。角色信息具體描述方法如下角色信息中每個角色 擁有角色ID、角色名、級別(若為分級訪問控制)等屬性。管理員配置完 畢后通過角色信息描述模塊320向策略信息存取模塊310提交對角色信息 的修改信息,其中主要包括角色名、級別等,XML存儲管理模塊350對管 理員提交的配置和修改信息進行保存。用戶組角色指派信息模塊330為管理員提供對用戶的權限指派接口, 用戶的權限通過角色的形式指派給每一個用戶組,相同用戶組中的用戶通 過所指派的角色具有對頁面中控件相同的訪問控制權限。用戶組角色指派 信息的數(shù)據結構如圖7所示。管理員描述完畢后通過用戶組角色指派信息 模塊330向策略信息存取模塊310提交對用戶組的角色指派的修改信息, 其中主要包括用戶組ID、角色ID等,XML存儲管理模塊350對管理員提 交的描述和修改信息進行保存。角色頁面控件操作指派信息模塊340為管理員提供對角色的權限指派 接口,角色的權限主要體現(xiàn)在對頁面中控件的操作權限上。對控件的操作 定義的數(shù)據結構如圖8所示。在定義了頁面控件上的各種操作后,即可為 角色指派在控件上的操作權限。角色頁面控件操作指派信息的數(shù)據結構如 圖9所示。管理員配置完畢后通過角色頁面控件操作指派信息模塊340向 策略信息存取模塊310提交對角色權限指派的修改信息,其中主要包括角 色ID、頁面ID、控件ID 、操作ID等,XML存儲管理模塊350對管理 員提交的配置和修改信息進行保存,保存后的頁面控制設置將在Web安全 服務組件400的安全屬性加載模塊420模塊中作為權限設置屬性被加載實 現(xiàn)。XML存儲管理模塊350對以上信息以XML文檔的形式進行存儲。Web安全服務器組件400包括安全標簽解析模塊410,安全屬性加載 模塊420和標簽數(shù)據綁定模塊430。安全標簽解析模塊410主要用來解析頁面上定義的安全標簽及屬性。 安全標簽用XML定義,稱之為標簽定義文件610。服務器端技術,本發(fā)明 中指的是JSP,在HTML文件里面使用本發(fā)明中的非HTML語法,服務 器在這些代碼的基礎上創(chuàng)建和提供HTML格式的內容。當瀏覽器或者頁面 開發(fā)工具如Dreamweaver等檢測到本發(fā)明中的非HTML標簽,會調用本 發(fā)明中提供的標簽的定義文件610來比較它們,這些文件指定瀏覽器或者 頁面開發(fā)工具如何讀取和顯示這些標簽。安全屬性加載模塊420將根據安全標簽解析模塊410模塊解析出的安 全屬性來調用標簽數(shù)據綁定模塊430。安全屬性中包括本標簽使用的安全策 略模式、可訪問角色信息、最小安全級別和授權用戶信息等信息,會根據 當前用戶是否指派有本標簽的安全屬性中所定義的角色或者擁有足夠的安 全級來顯示相應的內容。標簽數(shù)據綁定模塊430能根據當前用戶的角色信 息和安全級別來動態(tài)綁定數(shù)據。同一控件對于不同角色和級別的用戶所提 供的數(shù)據是在運行時動態(tài)加載的,比如說當前的列表控件,當其定義的安 全屬性為使用RBAC策略并且在其角色屬性中的定義了某個可訪問的角色 時,那么只有當前用戶指派有該角色時,系統(tǒng)才會為列表控件加載該角色 才能訪問的資源列表;當其定義的安全屬性為使用強制訪問控制策略并且 在其授權級別中定義了訪問數(shù)據的最小級別時,那么只有當用戶級別達到 最小安全級別以上,系統(tǒng)才會為列表控件加載相應數(shù)據,并通過根據當前 用戶的安全級別動態(tài)綁定資源數(shù)據,使得控件列表只顯示出密級低于當前 用戶安全級的數(shù)據。最終用戶是通過標簽數(shù)據綁定模塊430來體驗本發(fā)明 的功能。Web安全響應生成器500根據相應服務器組件提供的狀態(tài)信息,將安 全標簽的格式轉換為相應的目標標識語言格式(如HTML標簽),最終為瀏 覽器返回統(tǒng)一的安全響應頁面。每個標簽均由相關的組件產生。每個組件 都有一個產生HTML輸出的安全響應生成器,以反映組件的狀態(tài)。這個過 程被稱為解碼。頁面元素對象的安全響應生成器請求框架査詢表達式的唯 一 ID及當前值。按照默認設置,ID字符串(例如—id0:—idl之類)由框架 賦值。編碼后的頁面被傳送到瀏覽器,瀏覽器按照通常的方式顯示該頁面。安全標簽庫600定義了一套可以在各種Java Web網頁中導入的安全標 簽,其包括標簽定義文件610,每個標簽庫文件都會定義一個或者多個自定 義標簽的名稱、類型、內容模式、顯示規(guī)范和圖標,標簽庫文件使用.xml文 件擴展名。同時還包括一個名為tagspec的XML文件定義的標簽規(guī)范 620。標簽規(guī)范中定義了是否讓這個標簽可以放置在文檔內HTML標簽 之間的任何位置;作為字符串界定的標簽的起始點的一個分隔符;作為字 符串界定的標簽的結束點的一個分隔符;是否要忽略start—string和 end_string之間的所有代碼;是否要解析該標簽的屬性;匹配該標簽的圖標 的路徑和文件名;指定圖標的像素寬度和高度,以及該標簽是否在頁面上 可見。本發(fā)明提出的多策略支持安全Java Web應用頁面標簽庫導入安裝后除 了能夠完成基本的頁面HTML控件顯示功能,而且還可以根據用戶自身的 權限來顯示該用戶可見和可用的資源,且不需要開發(fā)者進行額外的編碼工作。 .以上所述為本發(fā)明的較佳實施例而已,但本發(fā)明不應該局限于該實施 例和附圖所公開的內容。所以凡是不脫離本發(fā)明所公開的精神下完成的等 效或修改,都落入本發(fā)明保護的范圍。
權利要求
1、一種多策略支持的安全Java Web應用頁面標簽庫系統(tǒng),其特征在于該系統(tǒng)包括安全登錄模塊(100)、安全上下文服務模塊(200)、策略定義模塊(300)、Web安全服務器組件(400)、Web安全響應生成器(500)和安全標簽庫(600);安全標簽庫(600)中定義有一套能夠在各種Java Web網頁中導入的安全標簽;安全登錄模塊(100)用于提供對兩種登錄方式的支持-基于安全登錄組件的單域認證方式和CAS單點登錄的兼容方式;安全登錄模塊(100)負責用戶身份認證,通過認證的用戶為合法用戶;安全登錄模塊(100)所控制的單點登錄客戶端部署在受控資源的策略定義模塊(300)所定義的策略文檔中;訪問受安全登錄模塊(100)控制的節(jié)點受控資源的用戶必須經過單點登錄服務器端的安全認證;安全登錄模塊(100)接收用戶的用戶名和密碼的輸入,進行認證,產生認證結果,如果認證通過,安全登錄模塊(100)根據用戶請求的頁面鏈接將該用戶認證通過標識發(fā)送給安全上下文服務模塊(200);安全上下文服務模塊(200)用于初始化登錄用戶的身份信息,并依據策略定義模塊(300)的配置,針對不同授權策略,生成并存儲相應的激活角色信息、安全級別以及受管控件訪問策略定位標識符,提供給相應的Web安全服務器組件(400)使用;策略定義模塊(300)用于負責定義并管理基于安全標簽的訪問控制的一套規(guī)則,通過對xml格式的策略定義文檔進行相應安全規(guī)則的設置及存取,該模塊負責提供對受管頁面關鍵控件的訪問控制規(guī)則,用于描述用戶、角色、權限、安全級以及這些安全元素之間的關系;Web安全服務器組件(400)用于解析安全標簽庫(600)的安全標簽,在響應客戶端請求時實現(xiàn)數(shù)據的安全綁定并根據安全上下文服務模塊(200)提供的安全配置動態(tài)加載響應頁面的各種安全屬性,將受控后的組件狀態(tài)提供給Web安全響應生成器(500);Web安全響應生成器(500)根據Web安全服務器組件提供的狀態(tài)信息,決定相應頁面最后的呈現(xiàn)界面,將安全標簽的格式轉換為相應的目標標識語言格式,為瀏覽器返回統(tǒng)一的安全響應頁面。
2、 根據權利要求1所述的多策略支持的安全Java Web應用頁面標簽庫 系統(tǒng),其特征在于-Web安全服務器組件(400)包括安全標簽解析模塊(410),安全屬 性加載模塊(420)和標簽數(shù)據綁定模塊(430);安全標簽解析模塊(410)主要用來解析頁面上定義的安全標簽及屬性;安全屬性加載模塊(420)將根據安全標簽解析模塊(410)模塊解析 出的安全屬性來調用標簽數(shù)據綁定模塊(430);標簽數(shù)據綁定模塊(430)根據當前用戶的角色信息和安全級別來動態(tài) 綁定數(shù)據用于對當前用戶的角色信息進行動態(tài)綁定數(shù)據。
3、 根據權利要求1或2所述的多策略支持的安全Java Web應用頁面標 簽庫系統(tǒng),其特征在于安全登錄模塊(100)包括系統(tǒng)信息管理模塊(110)、用戶信息管理模 塊(120)、用戶組信息管理模塊(130)和用戶認證模塊(140);系統(tǒng)信息管理模塊(110)為管理員提供配置系統(tǒng)信息的接口;管理員 在受控的系統(tǒng)信息管理模塊(110)上通過策略定義模塊(300)實現(xiàn)對資 源系統(tǒng)的注冊,管理員配置完畢后向策略信息存取模塊(300)提交對系統(tǒng) 修改信息;用戶信息管理模塊(120)為管理員提供配置用戶信息的接口,使管理員能夠訪問并修改策略定義模塊(300)中所配置的策略定義文檔中的用戶 信息;管理員配置完畢后通過用戶信息管理模塊(120)向策略定義模塊 (300)提交對用戶信息表的修改;用戶組信息管理模塊(130)為管理員提供描述用戶組與用戶對應信息 的接口,并根據管理員提供的訪問控制權限設置、歸納用戶組信息,通過 策略定義模塊(300)將用戶組信息寫入策略定義文檔;用戶認證模塊(140)將用戶輸入的信息與策略定義模塊(300)中管 理的用戶信息進行比對,如果用戶驗證通過,則請求安全上下文服務模塊 (200)獲取當前用戶在系統(tǒng)中的權限信息。
4、 根據權利要求1或2所述的多策略支持的安全JavaWeb應用頁面標 簽庫系統(tǒng),其特征在于安全標簽庫(600)包括標簽定義文件(610)和標簽規(guī)范(620),標 簽定義文件(610)中的每個標簽庫文件都定義一個或者多個自定義標簽的 名稱、類型、內容模式、顯示規(guī)范和圖標,標簽庫文件使用.xml文件擴展 名;標簽規(guī)范(620)為XML文件定義的標簽名稱。
5、 根據權利要求3所述的多策略支持的安全Java Web應用頁面標簽庫 系統(tǒng),其特征在于-安全標簽庫(600)包括標簽定義文件(610)和標簽規(guī)范(620),標 簽定義文件(610)中的每個標簽庫文件都定義一個或者多個自定義標簽的 名稱、類型、內容模式、顯示規(guī)范和圖標,標簽庫文件使用.xml文件擴展 名;標簽規(guī)范(620)為XML文件定義的標簽名稱。
6、 根據權利要求5所述的多策略支持的安全JavaWeb應用頁面標簽庫 系統(tǒng),其特征在于策略定義模塊(300)包括策略信息存取模塊(310)、角色信息管理 模塊(320)、用戶組角色指派信息模塊(330)、角色頁面控件操作指派信 息模塊(340)和XML存取管理模塊(350);策略信息存取模塊(310)用來存取系統(tǒng)信息、用戶信息、用戶組信息、 用戶及用戶組配置信息、角色信息、用戶組角色指派信息和角色頁面控件 操作指派信息;角色信息管理模塊(320)為管理員提供配置角色信息的接口,使管理 員能夠訪問并修改策略定義模塊(300)所配置的策略定義文檔中的角色信 息;用戶組角色指派信息模塊(330)為管理員提供對用戶的權限指派接口 , 管理員描述完畢后通過用戶組角色指派信息模塊(330)向策略信息存取模 塊(310)提交對用戶組的角色指派的修改信息,XML存儲管理模塊(350) 對管理員提交的描述和修改信息進行保存;角色頁面控件操作指派信息模塊(340)為管理員提供對角色的權限指 派接口,管理員配置完畢后通過角色頁面控件操作指派信息模塊(340)向 策略信息存取模塊(310)提交對角色權限指派的修改信息,XML存儲管 理模塊(350)對管理員提交的配置和修改信息進行保存,保存后的頁面控 制設置將在Web安全服務組件(400)中作為權限設置屬性被加載實現(xiàn);XML存儲管理模塊(350)用于對接收的信息以XML文檔的形式進行 存儲。
7、根據權利要求6所述的多策略支持的安全Java Web應用頁面標簽庫 系統(tǒng),其特征在于安全上下文服務模塊(200)包括用戶權限信息初始化模塊(210)、角 色信息激活模塊(220)以及控件訪問控制決策模塊(230);用戶權限信息初始化模塊(210)根據安全登錄模塊(100)中提供的用戶ID在策略定義模塊(300)所定義的策略文檔中獲取當前用戶所在的 用戶組信息,提供給角色激活模塊(220);角色激活模塊(220)根據當前用戶的用戶組信息在策略定義模塊(300) 所定義的策略文檔中獲取當前用戶所有的角色信息,并激活當前用戶所指 派的所有能夠激活的角色,進一步生成激活角色信息,供控件訪問控制角 色模塊(230)使用;控件訪問控制決策模塊(230)根據當前用戶的激活角色信息在策略定 義模塊(300)所定義的策略文檔中獲取并生成相應的安全級別信息以及受 管控件訪問策略定位標識符,供受管控件和安全標簽使用。
全文摘要
一種多策略支持的安全Java Web應用頁面標簽庫系統(tǒng),包括安全登錄模塊、安全上下文服務模塊、策略定義文檔、Web安全服務器組件、Web安全響應生成器、安全標簽庫以及響應頁面。該系統(tǒng)能夠提供Web頁面中受安全訪問控制的各種頁面標簽,基本上涵蓋JSP標簽庫的所有頁面標簽的表現(xiàn)形式,為開發(fā)者提供一套集安全訪問控制功能在內的,高效、完整的頁面開發(fā)標簽庫。本發(fā)明提出的多策略支持安全Java Web應用頁面標簽庫導入安裝后除了能夠完成基本的頁面HTML控件顯示功能,而且還可以根據用戶自身的權限來顯示該用戶可見和可用的資源,且不需要開發(fā)者進行額外的編碼工作。
文檔編號G06F17/30GK101546261SQ20081019723
公開日2009年9月30日 申請日期2008年10月10日 優(yōu)先權日2008年10月10日
發(fā)明者彬 劉, 盧正鼎, 卓 唐, 李瑞軒, 胡勁緯, 魯劍鋒 申請人:華中科技大學