專利名稱:一種智能化動(dòng)態(tài)權(quán)限控制方法和系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計(jì)算機(jī)軟件安全技術(shù)領(lǐng)域,尤其是一種智能化動(dòng)態(tài)權(quán)限控制方法和系 統(tǒng)。
背景技術(shù):
權(quán)限控制一般指根據(jù)系統(tǒng)設(shè)置的安全規(guī)則或者安全策略,用戶可以訪問而且只能 訪問自己被授權(quán)的資源,不多不少。權(quán)限控制幾乎出現(xiàn)在任何軟件系統(tǒng)里面,只要其涉及 網(wǎng)絡(luò)化和多用戶應(yīng)用。雖然幾乎所有軟件系統(tǒng)都有權(quán)限控制,但大部分軟件系統(tǒng)的權(quán)限控 制都存在缺陷。而對(duì)一個(gè)大型應(yīng)用軟件系統(tǒng),如CMS、ERP、CRM系統(tǒng),權(quán)限控制就更為重要 了。目前存在的主要問題包括1、權(quán)限控制粒度過粗,無法實(shí)施精細(xì)化控制;2、權(quán)限控制策 略固化,與上下文無關(guān),缺乏靈活性;3、權(quán)限實(shí)施過程復(fù)雜,難以理解和掌握。發(fā)明內(nèi)容
為了解決上述技術(shù)問題,本發(fā)明的目的是提供可實(shí)現(xiàn)靈活的、精細(xì)的粒度控制且 實(shí)施方式簡(jiǎn)單易掌握的一種智能化動(dòng)態(tài)權(quán)限控制方法和系統(tǒng)。
本發(fā)明所采用的一個(gè)技術(shù)方案是一種智能化動(dòng)態(tài)權(quán)限控制方法,該方法包括以 下步驟A、依據(jù)權(quán)限控制范圍和訪問控制方式對(duì)應(yīng)用軟件系統(tǒng)動(dòng)態(tài)權(quán)限進(jìn)行分類,并根據(jù)上述 分類結(jié)果構(gòu)造動(dòng)態(tài)權(quán)限規(guī)則庫(kù);B、利用權(quán)限規(guī)則表達(dá)式實(shí)現(xiàn)權(quán)限規(guī)則的動(dòng)態(tài)表達(dá),并將動(dòng)態(tài)權(quán)限規(guī)則表達(dá)式存儲(chǔ)于動(dòng) 態(tài)權(quán)限規(guī)則庫(kù);C、由上下文環(huán)境感知器偵測(cè)上下文敏感信息,并將上下文敏感信息傳遞給動(dòng)態(tài)權(quán)限規(guī) 則解析引擎;D、動(dòng)態(tài)權(quán)限規(guī)則解析引擎根據(jù)上下文敏感信息自動(dòng)查找匹配的權(quán)限規(guī)則表達(dá)式,然后 對(duì)所述查找到的權(quán)限規(guī)則表達(dá)式進(jìn)行動(dòng)態(tài)解析;E、依據(jù)動(dòng)態(tài)權(quán)限規(guī)則解析引擎的動(dòng)態(tài)解析結(jié)果在頁面進(jìn)行順序部署,實(shí)現(xiàn)動(dòng)態(tài)權(quán)限控制。
進(jìn)一步,所述步驟D包括以下子步驟D1、動(dòng)態(tài)權(quán)限規(guī)則解析引擎根據(jù)上下文環(huán)境感知器傳來的上下文敏感信息,在動(dòng)態(tài)權(quán) 限規(guī)則庫(kù)中自動(dòng)查找匹配的權(quán)限規(guī)則表達(dá)式;D2、完成權(quán)限規(guī)則表達(dá)式中的變量替換;D3、對(duì)變量替換后的權(quán)限規(guī)則表達(dá)式進(jìn)行動(dòng)態(tài)解析,得到動(dòng)態(tài)解析結(jié)果。
進(jìn)一步,所述步驟E包括以下子步驟E1、登錄系統(tǒng)或打開頁面時(shí),依據(jù)動(dòng)態(tài)解析結(jié)果判定進(jìn)而限制用戶訪問系統(tǒng)或頁面的 權(quán)限;E2、打開頁面時(shí),依據(jù)動(dòng)態(tài)解析結(jié)果判定進(jìn)而限制用戶訪問應(yīng)用模塊的權(quán)限;E3、依據(jù)動(dòng)態(tài)解析結(jié)果,生成數(shù)據(jù)查詢條件,判定進(jìn)而限制用戶訪問數(shù)據(jù)的范圍;E4、依據(jù)動(dòng)態(tài)解析結(jié)果判定進(jìn)而限制用戶瀏覽數(shù)據(jù)的范圍;E5、依據(jù)動(dòng)態(tài)解析結(jié)果判定進(jìn)而限制用戶操縱數(shù)據(jù)的權(quán)限;E6、打開編輯頁面時(shí),依據(jù)動(dòng)態(tài)解析結(jié)果判定進(jìn)而限制用戶操縱數(shù)據(jù)的權(quán)限。
進(jìn)一步,所述A步驟中,依據(jù)訪問控制方式分類的權(quán)限包括訪問權(quán)限、數(shù)據(jù)權(quán)限和 操作權(quán)限;所述A步驟中,依據(jù)權(quán)限控制范圍分類的權(quán)限包括系統(tǒng)權(quán)限、模塊權(quán)限、頁面權(quán) 限和單元權(quán)限;所述單元權(quán)限控制的權(quán)限單元包括操作按鈕、編輯域、數(shù)據(jù)記錄和數(shù)據(jù)單J Li ο
進(jìn)一步,所述步驟B中所述動(dòng)態(tài)權(quán)限規(guī)則庫(kù)包括有全局訪問規(guī)則庫(kù)、頁面訪問規(guī) 則庫(kù)、頁面數(shù)據(jù)規(guī)則庫(kù)、頁面操作規(guī)則庫(kù)、列表頁面列控制規(guī)則庫(kù)、編輯頁面域控制規(guī)則庫(kù); 所述動(dòng)態(tài)權(quán)限規(guī)則庫(kù)中權(quán)限規(guī)則采用環(huán)境敏感的權(quán)限規(guī)則表達(dá)式進(jìn)行描述,支持權(quán)限規(guī)則 的正向和反向定義;所述權(quán)限規(guī)則表達(dá)式支持常量和變量,所述變量包括會(huì)話變量、系統(tǒng)函 數(shù)、自定義函數(shù)以及頁面字段;所述頁面數(shù)據(jù)規(guī)則庫(kù)中的頁面數(shù)據(jù)規(guī)則以標(biāo)準(zhǔn)SQL書寫,包 括常量和/或變量。
進(jìn)一步,所述步驟C中的上下文敏感信息包括有用戶信息、對(duì)象信息、時(shí)空屬性、 環(huán)境信息;所述用戶信息包括有用戶ID、證書、角色、組織和安全級(jí)別,所述對(duì)象信息包括 有對(duì)象ID、對(duì)象屬性數(shù)據(jù),所述時(shí)空屬性包括有時(shí)間屬性和位置屬性,所述位置屬性包括 IP地址和MAC地址;所述環(huán)境信息包括有操作設(shè)備、網(wǎng)絡(luò)帶寬、服務(wù)器負(fù)荷。
進(jìn)一步,所述步驟C中上下文敏感信息的傳遞包括有以下方式(1)、作為頁面權(quán)限引用方法的參數(shù)傳遞;(2)、在頁面以哈希圖形式批量傳遞;(3)、所述環(huán)境信息通過自定義函數(shù)以透明方式傳遞。
本發(fā)明所采用的另一技術(shù)方案是一種智能化動(dòng)態(tài)權(quán)限控制系統(tǒng),該系統(tǒng)包括以 下功能模塊動(dòng)態(tài)權(quán)限分類模塊,用于對(duì)應(yīng)用軟件系統(tǒng)動(dòng)態(tài)權(quán)限依據(jù)權(quán)限控制范圍和訪問控制方式 進(jìn)行分類;動(dòng)態(tài)權(quán)限規(guī)則庫(kù),用于存儲(chǔ)動(dòng)態(tài)權(quán)限規(guī)則表達(dá)式;動(dòng)態(tài)權(quán)限規(guī)則表達(dá)模塊,用于利用權(quán)限規(guī)則表達(dá)式實(shí)現(xiàn)權(quán)限規(guī)則的動(dòng)態(tài)表達(dá),并將動(dòng) 態(tài)權(quán)限規(guī)則表達(dá)式存儲(chǔ)于動(dòng)態(tài)權(quán)限規(guī)則庫(kù);上下文環(huán)境感知器,用于偵測(cè)上下文敏感信息,并將上下文敏感信息傳遞給動(dòng)態(tài)權(quán)限 規(guī)則解析引擎;動(dòng)態(tài)權(quán)限規(guī)則解析引擎,用于根據(jù)上下文敏感信息自動(dòng)查找匹配的權(quán)限規(guī)則表達(dá)式, 然后對(duì)權(quán)限規(guī)則表達(dá)式進(jìn)行動(dòng)態(tài)解析;權(quán)限規(guī)則部署模塊,用于依據(jù)動(dòng)態(tài)權(quán)限規(guī)則解析引擎的動(dòng)態(tài)解析結(jié)果在頁面進(jìn)行順序 部署,實(shí)現(xiàn)動(dòng)態(tài)權(quán)限控制。
本發(fā)明的有益效果是一種基于上下文敏感的(Context-aware)、基于規(guī)則的主 動(dòng)式智能化動(dòng)態(tài)權(quán)限控制方法,將應(yīng)用軟件權(quán)限分類后存儲(chǔ)于規(guī)則庫(kù),以動(dòng)態(tài)規(guī)則的形式 定義在對(duì)象生命周期狀態(tài)上,由規(guī)則解析引擎根據(jù)當(dāng)前上下文的情況進(jìn)行權(quán)限鑒別,利用 計(jì)算機(jī)程序?qū)?quán)限規(guī)則的管理,實(shí)現(xiàn)細(xì)粒度高精度的權(quán)限的自動(dòng)控制;利用對(duì)規(guī)則庫(kù)中權(quán)限的細(xì)分,并且結(jié)合上下文敏感信息,增加權(quán)限控制的靈活性;利用規(guī)則庫(kù)中權(quán)限的細(xì)分, 使用計(jì)算機(jī)可以對(duì)其進(jìn)行不同的組合,使得復(fù)雜的權(quán)限管理簡(jiǎn)單化,易于掌握。
本發(fā)明的另一有益效果一種基于上下文敏感的(Context-aware)、基于規(guī)則的 主動(dòng)式智能化動(dòng)態(tài)權(quán)限控制系統(tǒng),將應(yīng)用軟件權(quán)限分類后存儲(chǔ)于規(guī)則庫(kù),以動(dòng)態(tài)規(guī)則的形 式定義在對(duì)象生命周期狀態(tài)上,由規(guī)則解析引擎根據(jù)當(dāng)前上下文的情況進(jìn)行權(quán)限鑒別,利 用計(jì)算機(jī)程序?qū)?quán)限規(guī)則的管理,實(shí)現(xiàn)細(xì)粒度高精度的權(quán)限的自動(dòng)控制;利用對(duì)規(guī)則庫(kù)中 權(quán)限的細(xì)分,并且結(jié)合上下文敏感信息,增加權(quán)限控制的靈活性;利用規(guī)則庫(kù)中權(quán)限的細(xì) 分,使用計(jì)算機(jī)可以對(duì)其進(jìn)行不同的組合,使得復(fù)雜的權(quán)限管理簡(jiǎn)單化,易于掌握。
圖1是一種智能化動(dòng)態(tài)權(quán)限控制方法的步驟流程圖;圖2是一種智能化動(dòng)態(tài)權(quán)限控制系統(tǒng)的結(jié)構(gòu)圖;圖3是一種智能化動(dòng)態(tài)權(quán)限控制方法和系統(tǒng)的原理框圖;圖4是一種智能化動(dòng)態(tài)權(quán)限控制方法和系統(tǒng)的權(quán)限分類圖。
具體實(shí)施方式
下面結(jié)合附圖對(duì)本發(fā)明的具體實(shí)施方式
作進(jìn)一步說明參照?qǐng)D1,一種智能化動(dòng)態(tài)權(quán)限控制方法,該方法包括以下步驟A、依據(jù)權(quán)限控制范圍和訪問控制方式對(duì)應(yīng)用軟件系統(tǒng)動(dòng)態(tài)權(quán)限進(jìn)行分類,并根據(jù)上述 分類結(jié)果構(gòu)造動(dòng)態(tài)權(quán)限規(guī)則庫(kù);B、利用權(quán)限規(guī)則表達(dá)式實(shí)現(xiàn)權(quán)限規(guī)則的動(dòng)態(tài)表達(dá),并將動(dòng)態(tài)權(quán)限規(guī)則表達(dá)式存儲(chǔ)于動(dòng) 態(tài)權(quán)限規(guī)則庫(kù);C、由上下文環(huán)境感知器偵測(cè)上下文敏感信息,并將上下文敏感信息傳遞給動(dòng)態(tài)權(quán)限規(guī) 則解析引擎;D、動(dòng)態(tài)權(quán)限規(guī)則解析引擎根據(jù)上下文敏感信息自動(dòng)查找匹配的權(quán)限規(guī)則表達(dá)式,然后 對(duì)所述查找到的權(quán)限規(guī)則表達(dá)式進(jìn)行動(dòng)態(tài)解析;E、依據(jù)動(dòng)態(tài)權(quán)限規(guī)則解析引擎的動(dòng)態(tài)解析結(jié)果在頁面進(jìn)行順序部署,實(shí)現(xiàn)動(dòng)態(tài)權(quán)限控制。
進(jìn)一步作為優(yōu)選的實(shí)施方式,所述步驟D包括以下子步驟D1、動(dòng)態(tài)權(quán)限規(guī)則解析引擎根據(jù)上下文環(huán)境感知器傳來的上下文敏感信息,在動(dòng)態(tài)權(quán) 限規(guī)則庫(kù)中自動(dòng)查找匹配的權(quán)限規(guī)則表達(dá)式;如果沒有匹配的權(quán)限規(guī)則,一般返回true ; 其中上下文敏感信息的傳遞包括有以下方式(1)、作為頁面權(quán)限引用方法的參數(shù)傳遞;(2)、在頁面以哈希圖形式批量傳遞;(3)、所述環(huán)境信息通過自定義函數(shù)以透明方式傳遞。
D2、完成權(quán)限規(guī)則表達(dá)式中的變量替換動(dòng)態(tài)權(quán)限規(guī)則解析引擎通過上下文環(huán)境 感知器自動(dòng)調(diào)用頁面哈希圖和規(guī)則變量,實(shí)現(xiàn)表達(dá)式中的變量替換。
D3、對(duì)變量替換后的權(quán)限規(guī)則表達(dá)式進(jìn)行動(dòng)態(tài)解析,得到動(dòng)態(tài)解析結(jié)果。
參照?qǐng)D3,進(jìn)一步作為優(yōu)選的實(shí)施方式,所述步驟E包括以下子步驟,采取由外向內(nèi)、由粗到細(xì)的順序部署方法E1、登錄系統(tǒng)或打開頁面時(shí),依據(jù)動(dòng)態(tài)解析結(jié)果判定進(jìn)而限制用戶訪問系統(tǒng)或頁面的 權(quán)限,此時(shí)進(jìn)行判定的表達(dá)式為boolean b = validate. validateLoginPermision(conn);E2、打開頁面時(shí),依據(jù)動(dòng)態(tài)解析結(jié)果判定進(jìn)而限制用戶訪問應(yīng)用模塊的權(quán)限,此時(shí)其判 定表達(dá)式為boolean b = validate. validatePagePermission();E3、依據(jù)動(dòng)態(tài)解析結(jié)果,生成數(shù)據(jù)查詢條件,并對(duì)其進(jìn)行判定進(jìn)而限制用戶訪問數(shù)據(jù)的 范圍,此時(shí)該條件表達(dá)式為String dataRule = validate. getPageDataffhereRule();E4、依據(jù)動(dòng)態(tài)解析結(jié)果判定進(jìn)而限制用戶瀏覽數(shù)據(jù)的范圍;E5、依據(jù)動(dòng)態(tài)解析結(jié)果判定進(jìn)而限制用戶操縱數(shù)據(jù)的權(quán)限;判斷某個(gè)操作是否可用需要的參數(shù)為頁面操作表中的操作ID,如0P_Del,此時(shí)其判定 表達(dá)式為boolean b = validate. validatePageOpPermission(opld);E6、打開編輯頁面時(shí),依據(jù)動(dòng)態(tài)解析結(jié)果判定進(jìn)而限制用戶操縱數(shù)據(jù)的權(quán)限。
(I)、判斷列是否顯示,參數(shù)為查詢字段表的字段代碼,如USER_ID,此時(shí)其判定表 達(dá)式為boolean b = validate. validateColumnPermission(fieldld);(2)、判斷單元格內(nèi)容是否顯示,參數(shù)為查詢字段表的字段代碼,如USER_ID,此時(shí)其判 定表達(dá)式為boolean b = validate. validateRowPermission(fieldld);(3)、判斷單元格中的鏈接是否有效,參數(shù)為查詢字段表的字段代碼,如USER_ID,此時(shí) 其判定表達(dá)式為boolean b = validate. ValidateRowOpPermision(fieldld)。
參照?qǐng)D4,進(jìn)一步作為優(yōu)選的實(shí)施方式,所述A步驟中,橫向依訪問控制方式,分為 訪問權(quán)限、數(shù)據(jù)權(quán)限、操作權(quán)限。其中1、在本方案中,訪問權(quán)限是指是否允許用戶訪問對(duì)象,比如系統(tǒng)登錄權(quán)限、模塊或頁面 的打開權(quán)限等;i1、在本方案中,數(shù)據(jù)權(quán)限是指允許用戶訪問的數(shù)據(jù)范圍,比如全廠數(shù)據(jù),或本部門數(shù) 據(jù)或已審核數(shù)據(jù)等等,數(shù)據(jù)權(quán)限一般針對(duì)查詢列表頁面;ii1、在本方案中,操作權(quán)限是指是否允許用戶對(duì)業(yè)務(wù)內(nèi)容進(jìn)行操作,操作主要通過按 鈕或鏈接來實(shí)現(xiàn)的。
所述A步驟中,縱向依權(quán)限控制范圍,分為系統(tǒng)(system)權(quán)限、模塊(module)權(quán) 限、頁面(page)權(quán)限、單元(cell)權(quán)限。其中1、在本方案中,系統(tǒng)是指一個(gè)自足的軟件系統(tǒng),具有自己的用戶和權(quán)限控制要求,本發(fā) 明提供的方法就是為軟件系統(tǒng)提供一種權(quán)限控制方法和裝置,系統(tǒng)級(jí)的權(quán)限控制主要是訪 問權(quán)限;i1、軟件系統(tǒng)是由軟件模塊構(gòu)成,模塊實(shí)現(xiàn)相對(duì)獨(dú)立的應(yīng)用功能。在本方案中,模塊級(jí)的權(quán)限控制主要是訪問權(quán)限;ii1、在本方案中,一個(gè)軟件模塊的功能是通過多個(gè)頁面的結(jié)合來實(shí)現(xiàn)的,頁面包括列 表、編輯、查詢、選擇對(duì)話框等等,頁面級(jí)的權(quán)限控制包括訪問權(quán)限、數(shù)據(jù)權(quán)限和操作權(quán)限;iv、在本方案中,權(quán)限單元可以是每個(gè)操作按鈕(button)、每個(gè)編輯域(field)、每條 數(shù)據(jù)記錄(record)、乃至每個(gè)數(shù)據(jù)單元(item)。單元權(quán)限包括是否顯示、可否編輯。
參照?qǐng)D3,進(jìn)一步作為優(yōu)選的實(shí)施方式,所述步驟B中動(dòng)態(tài)權(quán)限規(guī)則庫(kù)包括有全局 訪問規(guī)則庫(kù)、頁面訪問規(guī)則庫(kù)、頁面數(shù)據(jù)規(guī)則庫(kù)、頁面操作規(guī)則庫(kù)、列表頁面列控制規(guī)則庫(kù)、 編輯頁面域控制規(guī)則庫(kù);其中全局訪問規(guī)則全局規(guī)則不針對(duì)具體的頁面,而是針對(duì)系統(tǒng)實(shí)施的權(quán)限控制,控制用戶 是否有權(quán)訪問系統(tǒng)。如時(shí)間(限制在某個(gè)時(shí)間段才能操作、位置(IP或MAC地址綁定等)。全 局訪問規(guī)則表達(dá)式為一個(gè)邏輯表達(dá)式,返回true或false,沒有定義訪問規(guī)則返回true。全 局規(guī)則可以在登錄或打開頁面時(shí)調(diào)用;頁面訪問規(guī)則頁面訪問規(guī)則針對(duì)具體的頁面實(shí)施,控制用戶是否有權(quán)訪問該頁面。頁 面訪問規(guī)則表達(dá)式為一個(gè)邏輯表達(dá)式,返回true或false,沒有定義訪問規(guī)則返回true。頁 面訪問規(guī)則可以在打開頁面時(shí)調(diào)用;頁面數(shù)據(jù)規(guī)則頁面數(shù)據(jù)規(guī)則主要用于列表頁面的數(shù)據(jù)過慮控制,數(shù)據(jù)規(guī)則表達(dá)式為 字符串表達(dá)式,是SQL條件表達(dá)式的語法,這些表達(dá)式在權(quán)限引用時(shí)自動(dòng)追加在頁面查詢 SQL的where后面;頁面操作規(guī)則頁面操作規(guī)則用來動(dòng)態(tài)控制用戶對(duì)頁面上的按鈕或鏈接的操作權(quán)限。 頁面操作規(guī)則是通過頁面操作標(biāo)示符(操作ID)來識(shí)別某個(gè)操作的。規(guī)則表達(dá)式為一個(gè)邏 輯表達(dá)式,返回true或false,沒有規(guī)則返回true。
列表頁面列控制規(guī)則列表頁面列控制規(guī)則用來控制列表頁面中列字段的特性, 如該列是否顯示,或該列中某個(gè)單元格內(nèi)容是否顯示。規(guī)則表達(dá)式為一個(gè)邏輯表達(dá)式,返回 true或false,沒有規(guī)則返回true。如果該單元格有操作,則該操作是否有效,是在該單元 格內(nèi)容顯示的基礎(chǔ)上再校驗(yàn)的。
編輯頁面域控制規(guī)則編輯頁面域控制規(guī)則用來控制頁面上字段是否只讀、可編 輯還是隱藏,結(jié)果為I (編輯)、2 (只讀)、3 (隱藏)。如果讓一個(gè)表達(dá)式返回結(jié)果為I或2 或3,不好表達(dá),所以將域控制規(guī)則分為兩部分維護(hù)域是否顯示和域是否可編輯,域是否 可編輯是在域顯示的基礎(chǔ)上才有效,這樣域規(guī)則表達(dá)式是一個(gè)邏輯表達(dá)式,可返回true或 false,沒有規(guī)則返回true。校驗(yàn)的時(shí)候首先校驗(yàn)該域是否顯示的規(guī)則表達(dá)式,如果結(jié)果為 false,返回3 (隱藏),如果結(jié)果為true,則再校驗(yàn)域是否可編輯的規(guī)則表達(dá)式,如果結(jié)果為 true,返回I (編輯),否則返回2 (只讀)。
所述動(dòng)態(tài)權(quán)限規(guī)則庫(kù)中權(quán)限規(guī)則采用環(huán)境敏感的動(dòng)態(tài)規(guī)則表達(dá)式進(jìn)行描述,支持 權(quán)限規(guī)則的正向和反向定義;所述動(dòng)態(tài)規(guī)則表達(dá)式支持常量和變量,所述變量包括會(huì)話變 量、系統(tǒng)函數(shù)、自定義函數(shù)以及頁面字段。
要實(shí)現(xiàn)步驟B中的動(dòng)態(tài)規(guī)則要求,必須實(shí)現(xiàn)規(guī)則的動(dòng)態(tài)表達(dá)。動(dòng)態(tài)規(guī)則表達(dá)式包 括邏輯表達(dá)式和字符串表達(dá)式兩種規(guī)則表達(dá)式,其中頁面數(shù)據(jù)規(guī)則表達(dá)式為字符串表達(dá) 式,以標(biāo)準(zhǔn)SQL書寫,包括常量和/或變量,其它表達(dá)式都為邏輯表達(dá)式。規(guī)則表達(dá)式除了使 用數(shù)字、字符串、算術(shù)操作符、邏輯操作符之外,還必須使用一些上下文敏感的變量和函數(shù),規(guī)則變量和函數(shù)分為下面幾種(1)、常量,常量在系統(tǒng)啟動(dòng)時(shí)已加載到內(nèi)存中去;(2)、會(huì)話變量,與會(huì)話相關(guān)的變量在用戶登錄時(shí)已加載到會(huì)話中去,并在運(yùn)行過程中實(shí)時(shí)更新,會(huì)話變量常用來作為上下文感知變量;會(huì)話變量是指,網(wǎng)絡(luò)應(yīng)用中從用戶注冊(cè)進(jìn)入系統(tǒng)到注銷退出系統(tǒng)之間構(gòu)成了一個(gè)會(huì)話周期,系統(tǒng)為客戶設(shè)定在整個(gè)會(huì)話周期有效的全局變量(存儲(chǔ)用戶相關(guān)信息,可以被會(huì)話期內(nèi)的多個(gè)頁面引用)。
(3)、對(duì)象變量,指當(dāng)前操作數(shù)據(jù)對(duì)象的屬性集,如記錄字段名,這類變量由系統(tǒng)自動(dòng)獲得,不需要維護(hù)。對(duì)象變量常用來作為上下文感知變量;(4)、自定義函數(shù),可以允許用戶自定義函數(shù)可以作為上下文感知變量,應(yīng)用在權(quán)限規(guī)則表達(dá)式中,自定義函數(shù)與常量一樣在系統(tǒng)啟動(dòng)時(shí)已加載到內(nèi)存中去;(5)、系統(tǒng)函數(shù),指系統(tǒng)自帶的函數(shù),如字符串函數(shù)、數(shù)學(xué)函數(shù)等。這類函數(shù)一般不可能改變。
規(guī)則表達(dá)式的例子如下例1:不允許IP為192. 168. 14. 112的計(jì)算機(jī)登錄系統(tǒng),可定義規(guī)則如下‘ [ipAddress] ’ != ‘192.168.14.112’例2 :系統(tǒng)用戶不能刪除數(shù)據(jù),可針對(duì)該頁面刪除按鈕“0P_Del”定義操作規(guī)則如下 toUpperCase( ‘[userid],)!= ’ SYS-XT'例3 :某實(shí)時(shí)統(tǒng)計(jì)頁面在服務(wù)器CPU負(fù)荷超過70%后不允許訪問,可定義頁面訪問規(guī)則如下getCPULoad( ‘[Srvld]’) < 70注意 (a)、變量必須在前后添加變量標(biāo)記“[”和“]”,如果是字符串,必須在變量標(biāo)記外添加單引號(hào),如’ [userid]’,如果沒有在解析表達(dá)式時(shí)會(huì)報(bào)錯(cuò);(b)、所有的函數(shù)不需要添加變量標(biāo)記和單引號(hào),對(duì)于函數(shù)的參數(shù),則必須符合變量定義規(guī)范,如getTeamId(’ [userid]’),取當(dāng)前用戶的班組ID,雖然函數(shù)getTeamld函數(shù)返回。
進(jìn)一步作為優(yōu)選的實(shí)施方式,所述步驟C中的上下文敏感信息包括有用戶信息、 對(duì)象信息、時(shí)空屬性、環(huán)境信息;所述用戶信息包括有用戶ID、證書、角色、組織和安全級(jí)別,所述對(duì)象信息包括有對(duì)象ID、對(duì)象屬性數(shù)據(jù),所述時(shí)空屬性包括有時(shí)間屬性和位置屬性,所述位置屬性包括IP地址和MAC地址;所述環(huán)境信息包括有操作設(shè)備、網(wǎng)絡(luò)帶寬、服務(wù)器負(fù)荷。
進(jìn)一步作為優(yōu)選的實(shí)施方式,所述步驟C中上下文敏感信息的傳遞包括有以下方式(1)、作為頁面權(quán)限引用方法的參數(shù)傳遞,如validate. validatePageOpPermission (opld)中的當(dāng)前操作對(duì)象標(biāo)不;(2)、在頁面以哈希圖形式批量傳遞,如validate. setCustomVariantMap(customVariantMap);(3)、所述環(huán)境信息通過自定義函數(shù)以透明方式傳遞,如 getCPULoad O得到服務(wù)器CPU當(dāng)前負(fù)荷。
參照?qǐng)D2,一種智能化動(dòng)態(tài)權(quán)限控制系統(tǒng),該系統(tǒng)包括以下功能模塊動(dòng)態(tài)權(quán)限分類模塊,用于對(duì)應(yīng)用軟件系統(tǒng)動(dòng)態(tài)權(quán)限依據(jù)權(quán)限控制范圍和訪問控制方式 進(jìn)行分類;動(dòng)態(tài)權(quán)限規(guī)則庫(kù),用于存儲(chǔ)動(dòng)態(tài)權(quán)限規(guī)則表達(dá)式;動(dòng)態(tài)權(quán)限規(guī)則表達(dá)模塊,用于利用權(quán)限規(guī)則表達(dá)式實(shí)現(xiàn)權(quán)限規(guī)則的動(dòng)態(tài)表達(dá),并將動(dòng) 態(tài)權(quán)限規(guī)則表達(dá)式存儲(chǔ)于動(dòng)態(tài)權(quán)限規(guī)則庫(kù);上下文環(huán)境感知器,用于偵測(cè)上下文敏感信息,并將上下文敏感信息傳遞給動(dòng)態(tài)權(quán)限 規(guī)則解析引擎;動(dòng)態(tài)權(quán)限規(guī)則解析引擎,用于根據(jù)上下文敏感信息自動(dòng)查找匹配的權(quán)限規(guī)則表達(dá)式, 然后對(duì)權(quán)限規(guī)則表達(dá)式進(jìn)行動(dòng)態(tài)解析;權(quán)限規(guī)則部署模塊,用于依據(jù)動(dòng)態(tài)權(quán)限規(guī)則解析引擎的動(dòng)態(tài)解析結(jié)果在頁面進(jìn)行順序 部署,實(shí)現(xiàn)動(dòng)態(tài)權(quán)限控制。
以上是對(duì)本發(fā)明的較佳實(shí)施進(jìn)行了具體說明,但本發(fā)明創(chuàng)造并不限于所述實(shí)施 例,熟悉本領(lǐng)域的技術(shù)人員在不違背本發(fā)明精神的前提下還可以作出種種的等同變換或替 換,這些等同的變形或替換均包含在本申請(qǐng)權(quán)利要求所限定的范圍內(nèi)。
權(quán)利要求
1.一種智能化動(dòng)態(tài)權(quán)限控制方法,其特征在于該方法包括以下步驟 A、依據(jù)權(quán)限控制范圍和訪問控制方式對(duì)應(yīng)用軟件系統(tǒng)動(dòng)態(tài)權(quán)限進(jìn)行分類,并根據(jù)上述分類結(jié)果構(gòu)造動(dòng)態(tài)權(quán)限規(guī)則庫(kù); B、利用權(quán)限規(guī)則表達(dá)式實(shí)現(xiàn)權(quán)限規(guī)則的動(dòng)態(tài)表達(dá),并將動(dòng)態(tài)權(quán)限規(guī)則表達(dá)式存儲(chǔ)于動(dòng)態(tài)權(quán)限規(guī)則庫(kù); C、由上下文環(huán)境感知器偵測(cè)上下文敏感信息,并將上下文敏感信息傳遞給動(dòng)態(tài)權(quán)限規(guī)則解析引擎; D、動(dòng)態(tài)權(quán)限規(guī)則解析引擎根據(jù)上下文敏感信息自動(dòng)查找匹配的權(quán)限規(guī)則表達(dá)式,然后對(duì)所述查找到的權(quán)限規(guī)則表達(dá)式進(jìn)行動(dòng)態(tài)解析; E、依據(jù)動(dòng)態(tài)權(quán)限規(guī)則解析引擎的動(dòng)態(tài)解析結(jié)果在頁面進(jìn)行順序部署,實(shí)現(xiàn)動(dòng)態(tài)權(quán)限控制。
2.根據(jù)權(quán)利要求1所述的一種智能化動(dòng)態(tài)權(quán)限控制方法,其特征在于所述步驟D包括以下子步驟 D1、動(dòng)態(tài)權(quán)限規(guī)則解析引擎根據(jù)上下文環(huán)境感知器傳來的上下文敏感信息,在動(dòng)態(tài)權(quán)限規(guī)則庫(kù)中自動(dòng)查找匹配的權(quán)限規(guī)則表達(dá)式; D2、完成權(quán)限規(guī)則表達(dá)式中的變量替換; D3、對(duì)變量替換后的權(quán)限規(guī)則表達(dá)式進(jìn)行動(dòng)態(tài)解析,得到動(dòng)態(tài)解析結(jié)果。
3.根據(jù)權(quán)利要求1所述的一種智能化動(dòng)態(tài)權(quán)限控制方法,其特征在于所述步驟E包括以下子步驟 E1、登錄系統(tǒng)或打開頁面時(shí),依據(jù)動(dòng)態(tài)解析結(jié)果判定進(jìn)而限制用戶訪問系統(tǒng)或頁面的權(quán)限; E2、打開頁面時(shí),依據(jù)動(dòng)態(tài)解析結(jié)果判定進(jìn)而限制用戶訪問應(yīng)用模塊的權(quán)限; E3、依據(jù)動(dòng)態(tài)解析結(jié)果,生成數(shù)據(jù)查詢條件,判定進(jìn)而限制用戶訪問數(shù)據(jù)的范圍; E4、依據(jù)動(dòng)態(tài)解析結(jié)果判定進(jìn)而限制用戶瀏覽數(shù)據(jù)的范圍; E5、依據(jù)動(dòng)態(tài)解析結(jié)果判定進(jìn)而限制用戶操縱數(shù)據(jù)的權(quán)限; E6、打開編輯頁面時(shí),依據(jù)動(dòng)態(tài)解析結(jié)果判定進(jìn)而限制用戶操縱數(shù)據(jù)的權(quán)限。
4.根據(jù)權(quán)利要求1所述的一種智能化動(dòng)態(tài)權(quán)限控制方法,其特征在于所述A步驟中,依據(jù)訪問控制方式分類的權(quán)限包括訪問權(quán)限、數(shù)據(jù)權(quán)限和操作權(quán)限;所述A步驟中,依據(jù)權(quán)限控制范圍分類的權(quán)限包括系統(tǒng)權(quán)限、模塊權(quán)限、頁面權(quán)限和單元權(quán)限;所述單元權(quán)限控制的權(quán)限單元包括操作按鈕、編輯域、數(shù)據(jù)記錄和數(shù)據(jù)單元。
5.根據(jù)權(quán)利要求1所述的一種智能化動(dòng)態(tài)權(quán)限控制方法,其特征在于所述步驟B中所述動(dòng)態(tài)權(quán)限規(guī)則庫(kù)包括有全局訪問規(guī)則庫(kù)、頁面訪問規(guī)則庫(kù)、頁面數(shù)據(jù)規(guī)則庫(kù)、頁面操作規(guī)則庫(kù)、列表頁面列控制規(guī)則庫(kù)、編輯頁面域控制規(guī)則庫(kù);所述動(dòng)態(tài)權(quán)限規(guī)則庫(kù)中權(quán)限規(guī)則采用環(huán)境敏感的權(quán)限規(guī)則表達(dá)式進(jìn)行描述,支持權(quán)限規(guī)則的正向和反向定義;所述權(quán)限規(guī)則表達(dá)式支持常量和變量,所述變量包括會(huì)話變量、系統(tǒng)函數(shù)、自定義函數(shù)以及頁面字段;所述頁面數(shù)據(jù)規(guī)則庫(kù)中的頁面數(shù)據(jù)規(guī)則以標(biāo)準(zhǔn)SQL書寫,包括常量和/或變量。
6.根據(jù)權(quán)利要求1所述的一種智能化動(dòng)態(tài)權(quán)限控制方法,其特征在于所述步驟C中的上下文敏感信息包括有用戶信息、對(duì)象信息、時(shí)空屬性、環(huán)境信息;所述用戶信息包括有用戶ID、證書、角色、組織和安全級(jí)別,所述對(duì)象信息包括有對(duì)象ID、對(duì)象屬性數(shù)據(jù),所述時(shí)空屬性包括有時(shí)間屬性和位置屬性,所述位置屬性包括IP地址和MAC地址;所述環(huán)境信息包括有操作設(shè)備、網(wǎng)絡(luò)帶寬、服務(wù)器負(fù)荷。
7.根據(jù)權(quán)利要求1所述的一種智能化動(dòng)態(tài)權(quán)限控制方法,其特征在于所述步驟C中上下文敏感信息的傳遞包括有以下方式 (1)、作為頁面權(quán)限引用方法的參數(shù)傳遞; (2)、在頁面以哈希圖形式批量傳遞; (3)、所述環(huán)境信息通過自定義函數(shù)以透明方式傳遞。
8.一種智能化動(dòng)態(tài)權(quán)限控制系統(tǒng),其特征在于該系統(tǒng)包括以下功能模塊 動(dòng)態(tài)權(quán)限分類模塊,用于對(duì)應(yīng)用軟件系統(tǒng)動(dòng)態(tài)權(quán)限依據(jù)權(quán)限控制范圍和訪問控制方式進(jìn)行分類,并根據(jù)上述分類結(jié)果構(gòu)造動(dòng)態(tài)權(quán)限規(guī)則庫(kù); 動(dòng)態(tài)權(quán)限規(guī)則庫(kù),用于存儲(chǔ)動(dòng)態(tài)權(quán)限規(guī)則表達(dá)式; 動(dòng)態(tài)權(quán)限規(guī)則表達(dá)模塊,用于利用權(quán)限規(guī)則表達(dá)式實(shí)現(xiàn)權(quán)限規(guī)則的動(dòng)態(tài)表達(dá),并將動(dòng)態(tài)權(quán)限規(guī)則表達(dá)式存儲(chǔ)于動(dòng)態(tài)權(quán)限規(guī)則庫(kù); 上下文環(huán)境感知器,用于偵測(cè)上下文敏感信息,并將上下文敏感信息傳遞給動(dòng)態(tài)權(quán)限規(guī)則解析引擎; 動(dòng)態(tài)權(quán)限規(guī)則解析引擎,用于根據(jù)上下文敏感信息自動(dòng)查找匹配的權(quán)限規(guī)則表達(dá)式,然后對(duì)權(quán)限規(guī)則表達(dá)式進(jìn)行動(dòng)態(tài)解析; 權(quán)限規(guī)則部署模塊,用于依據(jù)動(dòng)態(tài)權(quán)限規(guī)則解析引擎的動(dòng)態(tài)解析結(jié)果在頁面進(jìn)行順序部署,實(shí)現(xiàn)動(dòng)態(tài)權(quán)限控制。
全文摘要
本發(fā)明公開了一種智能化動(dòng)態(tài)權(quán)限控制方法和系統(tǒng),該方法包括以下步驟A、對(duì)動(dòng)態(tài)權(quán)限進(jìn)行分類,構(gòu)造動(dòng)態(tài)權(quán)限規(guī)則庫(kù);B、實(shí)現(xiàn)權(quán)限規(guī)則的動(dòng)態(tài)表達(dá)存入規(guī)則庫(kù);C、偵測(cè)上下文敏感信息,并將其傳遞給動(dòng)態(tài)權(quán)限規(guī)則解析引擎;D、自動(dòng)查找匹配權(quán)限規(guī)則,然后進(jìn)行動(dòng)態(tài)解析;E、依據(jù)權(quán)限規(guī)則在頁面順序部署。該系統(tǒng)包括以下功能模塊動(dòng)態(tài)權(quán)限規(guī)則庫(kù)、上下文環(huán)境感知器、動(dòng)態(tài)權(quán)限規(guī)則解析引擎和權(quán)限規(guī)則部署模塊。本發(fā)明作為一種智能化動(dòng)態(tài)權(quán)限控制方法和系統(tǒng),實(shí)現(xiàn)了細(xì)粒度和靈活的控制,大幅度提高應(yīng)用軟件系統(tǒng)安全性和權(quán)限控制的易用性。本發(fā)明作為一種智能化動(dòng)態(tài)權(quán)限控制方法和系統(tǒng),可廣泛應(yīng)用于計(jì)算機(jī)軟件領(lǐng)域。
文檔編號(hào)G06F17/30GK103020498SQ20121046704
公開日2013年4月3日 申請(qǐng)日期2012年11月19日 優(yōu)先權(quán)日2012年11月19日
發(fā)明者游景玉, 李文, 何曉峰 申請(qǐng)人:廣東亞仿科技股份有限公司