設計方案
- 通過LDAP進行使用者登入驗證,並讀取使用者域中所屬角色。
- 通過使用者角色與許可權的關聯表,判斷使用者是否可以訪問某個操作頁面,如果不可以操作,提示使用者沒有相關許可權,提供返回入口。
- 記錄使用者所有的安全日誌,動作記錄(包括,增加,修改,刪除,查詢)
功能
- 角色-功能-許可權管理介面
- 功能列表管理
- 功能模組管理
- 事件記錄管理
資料庫backend_authorize
- 功能表(function_list):功能ID, 功能名稱, 功能介紹,上級功能ID, 功能網址,是否可用
- 許可權表(permission):許可權ID,許可權名稱
- 角色許可權表(role_authorized): 角色許可權ID,角色名稱,使用者職位,功能id,許可權id
- 事件記錄表(event_log):ID, 使用者名稱,用戶端IP, 事件類型, 功能名稱, 模組名稱, 詳細描述, 操作時間
情境
* 驗證邏輯.jpg:
備忘:使用者的職位儲存於域使用者的描述列中,但由於目前內網域環境中,使用者對應的描述為空白,所以暫時不進行使用者的描述判斷,即使用者所擁有的角色可以訪問頁面,即通過許可權的驗證。
資料規則
表
欄位
資料規則與約定
function_list
fucntion_list_id
自增長,主鍵
name
功能名稱
description
功能描述
parent_id
父功能編號,預設值為0,即準系統
url
功能網址,儲存規則:Request.Url.AbsolutePath的值
is_valid
改功能是否可用,預設值為0,值為1時為可用
permission
permission_id
自增長,主鍵
name
許可權名稱,即(完全控制,唯讀)
role_authorized
role_authorized_id
自增長,主鍵
role_name
使用者角色,儲存規則:存為域中的group名
user_description
使用者的職位,儲存規則:存為域中user的description。若使用者中description有多個職位(leader,employee...),在本欄位中只插入一個職位,分多條記錄儲存
function_id
授權的功能id
permission_id
授權使用者擁有的存取權限,(完全控制,唯讀(後期))
應用
- 新增功能
- 在資料表function_list中根據相關的欄位資料規則添加
- 為功能分配可訪問角色資訊
- 在表role_authorized中 根據相關欄位資料規則添加
- web應用
- 開發完功能頁面後,如須添加存取控制,直接拖拽 使用者權限驗證控制項(項目中\BackOfficeWeb\windowsAuthorized\WebUserControl.ascx到頁面中既可,無需其他代碼