由於不同的後臺需求多樣化,不能一一兼顧,只能蜻蜓點水,儘量深入淺出。
一、權限管理系統定義
權限管理是一個幾乎所有後臺系統的都會涉及的一個重要組成部分,主要目的是對整個
後臺管理系統進行權限的控制,而針對的對象是員工,避免因權限控制缺失或操作不當引發的風險問題,如操作錯誤,數據泄露等問題。
其實權限管理的設計並不難,就目前來說最廣泛的是一個賬號對應多個角色,每個角色對應相應的權限集(RBAC模型)這種模型基本可以應對所有的問題,且通過角色可以實現靈活且多樣的的權限操作需求,我們梳理一下上面主要提到的幾個名詞:賬號、角色、權限。
1. 賬號的定義
每個員工想要進入系統肯定都會有一個賬號,而這個賬號就是一把鑰匙。
我們通過控制賬號所具備的權限,進而控制這個員工的授權範圍。
因此需要告誡員工,賬號密碼不能輕易提供他人,不然遇到的問題由自己承擔。
2. 角色的定義
角色管理是確定角色具備哪些權限的一個過程,他是一個集合的概念,是衆多最小權限顆粒的組成。
我們通過把權限給這個角色,再把角色給賬號,從而實現賬號的權限,因此它承擔了一個橋樑的作用。
引入角色這個概念,可以幫助我們靈活的擴展,使一個賬號可以具備多種角色。
角色的命名最好按照職位而定,例如市場部普通員工,市場部主管等。因爲職位在任何企業都是存在的,且是有限的,並且容易理解,市場部文員那就是市場部文員角色,方便我們配置權限時的判斷,避免配置錯誤。
3. 權限的定義
權限可以分爲三種: 頁面權限,操作權限,數據權限。
頁面權限
控制你可以看到哪個頁面,看不到哪個頁面。
很多系統都只做到了控制頁面這一層級,它實現起來比較簡單,一些系統會這樣設計,但是比較古板,控制的權限不精細,難以在頁面上對權限進行更下一層級的劃分。
操作權限
則控制你可以在頁面上操作哪些按妞。
延伸:當我們進入一個頁面,我們的目的無非是在這個頁面上進行增刪改查,那在頁面上對應的操作可能是:查詢,刪除,編輯,新增四個按鈕。
可能你在某個頁面上,只能查詢數據,而不能修改數據。
數據權限
數據權限則是控制你可以看到哪些數據,比如市場A部的人只能看到或者修改A部創建的數據,他看不到或者不能修改B部的數據。
延伸:數據的控制我們一般通過部門去實現,每條記錄都有一個創建人,而每一個創建人都屬於某個部門,因此部門分的越細,數據的控制層級也就越精細,這裏是否有其他好的方式除了部門這個維度還有其他什麼方式可以控制數據權限,大家可以提出來探討一下。
哪個頁面要放置哪些權限,完全根據業務需要配置,你只需要把控制權限的地方列出來交給開發就好。
1. 角色列表頁
刪除角色,需要去判斷是否有賬號關聯了此角色,如果有關聯,則不允許刪除。如果角色不想用或者取消了,你可以將角色設置爲無效狀態,賬戶獲取角色時會首先判斷角色是否有效。
從便捷性上可以提供一個功能批量給某角色添加賬戶,在新員工入職時特別是同一崗位的,設置的權限時效率會大大提升。
2. 賬戶列表頁
首先我們肯定有個賬戶列表,因爲我們是給賬戶配置權限。裏面可以查詢到或者添加到所有的人(爲什麼說添加,因爲很多大公司有很多的管理系統,而每一個管理系統只有一部分人用,所以不會把所有人都在賬戶列表顯示出來,故用到了添加)。
這裏需要注意的是賬號的禁用,用於防止員工離職後的問題。可以跟人事系統打通,人事那邊設置某員工離職後,所有系統賬號自動設爲禁用。
有很多系統,提供了給賬號直接添加具體權限的功能而不是通過角色,我是不提倡的,給某個員工增加某個特定權限時,雖然操作更加便捷了,但是缺少規範性,一個員工明明是隻有市場部角色,居然有財務部的支付功能,這個在頁面上是解釋不通的,而且日積月累會導致人員權限混亂,這種需求完全可以通過可以新增一個角色去處理。
3. 從權限添加賬戶
這種方式也是不提倡的,這種形式如果上面所講的,直接給賬號添加具體的權限,雖然提升的操作的便捷性,但是影響了權限的規範性與可維護性,角色這一橋樑就會變成斷橋,統一性就會破壞掉。
三、權限的分配
權限的分配要合理,很多公司分配給部門權限的時候很隨意,部門要什麼權限就給什麼權限,其實這是有隱患的。
我們更多需要更深入的考慮部門能有什麼權限,而不是要什麼權限,而這一塊往往被忽略。
四、總結
歸根到底我想強調一件事情: 權限的管理,如何從公司制度上重視?
即如何規範權限的分配,即那個部門哪個員工要哪個權限都需要進行審批或郵件知會後才能幫其配置,還有哪些數據要設置權限,哪些操作要設置權限,這些
權限管理過程纔是權限系統的核心,恰恰這些核心的東西在系統上是體現不出來的。
前期的不經意就會在後期會變成麻煩,不僅影響業務效率,更會導致風險危機。
權限管理最終是爲了風控,如果權限的風控意識沒做好,
權限系統做的再好也是枉然。