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