許可權系統設計--概論
許可權系統作為商業系統的一個基礎平臺而存在。許可權系統的設計有一些基本的準則,如使用者(User),使用者組(Group),角色(Role),動作(Action),檢視(View),組織結構(Organization)。它們是許可權系統設計的基本要素。
系統中的許可權通常可以定義為3個許可權子集:模組訪問許可權,操作許可權,資料檢視許可權。
模組訪問許可權 – 通常商業系統都按功能特性組織成不同的子系統或功能模組。每個子系統中有包含若干功能單元。比如,某銷售管理系統包括“商機系統”、“客戶管理系統”、“管理分析和BI系統”、“電子商務系統”、“資訊共享平臺”、“基礎框架平臺”。不同的使用者將被授予不同的子系統及其子模組的訪問許可權。
模組許可權在實現時常常表現為功能選單的訪問授權。
操作許可權 – 定義使用者進入某個子系統後可以做什麼、不可以做什麼。比如,商機系統包含“普通商機”流程,其中有“商機報備”、“技術可行性和價格回覆”、“立項申請”、“價格審批”、“物料編號回覆”、“合同擬製”、“合同稽核”、“下單”。其中,O/S,I/S具有“商機報備”、“合同擬製”的操作許可權,技術支援人員具有“技術可行性回覆”的操作許可權,各級審批人員具有相應的“價格審批”操作許可權,法務代表具有“合同稽核”的操作許可權,渠道夥伴具有“下單”操作許可權。等等。
操作許可權相對於模組許可權通常處於較低的控制級別。就是說,通常先檢查模組訪問許可權,有模組訪問許可權的前提下,才檢查是否有某個功能的操作許可權。打個比方,就像你進公園,先要檢查你是否有門票。進去之後,如果有些景點是需要單獨購票的,你還有單獨購票才能進去。操作許可權通常控制到使用者介面的操作按鈕是否可用(或可見)、在Code的方法呼叫級別做許可權檢查。
資料檢視許可權 – 商業系統中往往存在大量資料,如產品資料、客戶資料、銷售資料、財務資料、報表資料。為了資料安全性和保密性的需要,往往需要對使用者有權檢視或操作的資料集進行定義,即不同的使用者有不同的資料檢視。
資料檢視許可權的定義往往與公司的組織架構緊密相關。比如常常有類似這樣的需求:總經理能夠檢視系統內的任何資料,銷售總監可以檢視全部的銷售資料,區域銷售經理只能檢視自己管轄區域的銷售資料,銷售人員只能看到自己的銷售資料。
資料檢視許可權同時又與操作許可權緊密相關。如區域銷售經理能檢視自己下屬銷售人員的銷售資料,但沒有修改或刪除的許可權;但是區域銷售經理對他本人的銷售資料具有完全的操作許可權(增加、修改、刪除、檢視)。簡言之,不同的操作許可權往往與不同的資料檢視許可權相關。
許可權系統的設計必須要結合特定系統的業務規則和使用者需要來進行,並且需要做細緻、周密的規劃。
許可權系統設計的關鍵是做到模組化、介面化、可配置。
許可權判定的邏輯往往會滲透到整個系統的程式碼中。為了便於系統維護,需要採用AOP設計和程式設計。
[@more@]來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/13651903/viewspace-1028848/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 許可權系統:許可權應用服務設計
- 許可權系統:許可權應用服務設計Tu
- 許可權系統:6個許可權概念模型設計模型
- 許可權設計
- 關於系統許可權的設計-位操作
- 分散式系統中,許可權設計實踐分散式
- Spring Security + jwt 許可權系統設計,包含SQLSpringJWTSQL
- Linux系統程式設計(七)檔案許可權系統呼叫Linux程式設計
- 許可權系統:一文搞懂功能許可權、資料許可權
- 通用許可權系統之資料庫表設計資料庫
- learun通用許可權系統框架功能實現設計框架
- 手把手擼套框架-許可權系統設計框架
- 管理系統之許可權的設計和實現
- 如何設計應用系統的資料許可權管理
- 基於Spring Security和 JWT的許可權系統設計SpringJWT
- mongodb 的許可權系統MongoDB
- 有贊許可權系統
- android 許可權元件設計Android元件
- JavaWeb許可權設計原理JavaWeb
- 若依管理系統RuoYi-Vue(二):許可權系統設計詳解Vue
- [仁潤雲技術團隊]許可權系統的設計
- 授權許可權服務設計解析
- 許可權維持專題:作業系統許可權維持作業系統
- 企業許可權管理系統
- Winner許可權管理系統3.0
- 領域驅動設計之實戰許可權系統微服務微服務
- SpringSecurity許可權管理系統實戰—九、資料許可權的配置SpringGse
- Linux系統ACL許可權設定之setfacl和getfaclLinux
- 打造自己的系統許可權控制
- PingCode Wiki 許可權設計之ACLGC
- 選單許可權和按鈕許可權設定
- 設計模式概論設計模式
- Confluence6對比系統管理員許可權和Confluence管理員許可權
- 語音交友app開發許可權系統,不容錯過的設計方案APP
- 如何利用 Spring Hibernate 高階特性設計實現一個許可權系統Spring
- win10軟體許可權設定在哪裡 W10系統怎麼設定應用的許可權Win10
- 擴充套件.Django-許可權系統套件Django
- OA管理系統,有哪些許可權管理?
- 基於RBAC的許可權管理系統