軟件系統(tǒng)三基座之一:權限管理

2 評論 12329 瀏覽 109 收藏 11 分鐘

不同的員工在公司享有不同的權限,用戶可以訪問而且只能訪問自己被授權的資源。那么,權限管理功能要如何設計呢?本文作者對此進行了分析,希望對你有幫助。

軟件系統(tǒng)三基座包含:權限管理、組織架構、用戶管理。

何為基座,即是有了這些基礎,任一相關的“建筑”就能逐步搭建起來。

萬丈高樓平地起

一、為什么要權限管理

權限管理,一般指根據系統(tǒng)設置的安全規(guī)則或者安全策略,用戶可以訪問而且只能訪問自己被授權的資源。只要有用戶和密碼的系統(tǒng),幾乎全有權限管理。

1. 各司其職,提高工作效率

產品經理的品質追求和項目的里程碑交互是矛盾的,讓產品經理管項目,可能項目沒有終結點。

程序員的邏輯嚴謹和市場的變化多端是矛盾的,讓程序員去做市場銷售,可能團隊沒有太多收益。

2. 權責分明,利于問題溯源

授予管理的權限,同時也是一份責任。費用的報銷和預算消耗所剩無幾是相關聯的,打市場需要團隊成員全員硬剛和請假審批松散導致身邊無人可用是有前因后果的。

3. 數據隔離,依權限管理數據

市場部的日常執(zhí)行信息不斷反饋給采購部,會極大地消耗采購部的精力。

戰(zhàn)略規(guī)劃部的規(guī)劃調整隨時更新給一線執(zhí)行人員,會極大地摧毀公司整體的穩(wěn)固度。

4. 安全防患,防止誤操作、人為破壞、數據泄漏

某某程序員刪庫跑路了,某某銷售代表攜客戶資源跳槽了……此類事項屢屢出現,這總是前人血淚教訓。

二、權限管理

軟件系統(tǒng)三基座包含:權限管理、組織架構、用戶管理。按照系統(tǒng)管理的設計,交互如下圖所示。

以用戶管理為例,需要支持最基礎的增刪改查操作,即是添加用戶、編輯用戶、刪除用戶、查詢用戶。

以現實業(yè)務情況,系統(tǒng)用戶的增加包含用戶注冊或管理員添加。對于其他系統(tǒng)用戶來講,用戶管理這一塊與自己無關,不必查看,就需要做權限管控。

權限管理和現實中的開鎖相似。首先需要了解哪些地方需要加鎖,公園就不需要加鎖,即是權限點注冊;其次是在需要加鎖的地方放上鎖,并給需要的人發(fā)放鑰匙,即是授權;最后則是有鑰匙的人拿著鑰匙開鎖,沒有鑰匙則在封鎖區(qū)域之外,即是鑒權。

哪些地方加鎖 = 權限點注冊

上鎖并發(fā)放鑰匙 = 授權

拿鑰匙開鎖 = 鑒權

1. 權限點注冊

權限點注冊是軟件哪些功能需要做權限控制,就添加到權限控制的列表中。注冊成功后,權限點樹形結構展示,如下圖所示。

權限點注冊支持樹形結構,也就是沒有授權“用戶管理”時,不能授權“刪除用戶”。權限點還可以細分按鈕權限、URL權限,按鈕權限控制頁面上是否可見,URL權限控制按鈕的交互是否能執(zhí)行。一般的情況下,對同一個操作需要既授予按鈕權限,又授予URL權限。若存在系統(tǒng)間接口數據交互的情況,不需要頁面交互,就不必授予按鈕權限。

權限管理作為底層支持,可擴展更多模塊、更多應用的管理。在三基座授權管理的基礎上,增加產品管理,則權限點注冊后如下圖所示。

2. 授權管理

授權管理就是針對不同的用戶授予不同的權限,也就能讓不同的用戶看到不同的軟件部分。

如圖所示,給用戶A授權“添加用戶、編輯用戶、刪除用戶、查詢用戶”權限;給用戶B授權“查詢用戶”;兩個用戶相比較而言,用戶B就只能查詢用戶,相當于獲取用戶信息,則不能進行用戶信息的編輯、修改。

兩個用戶都沒有授權“用戶授權”,則兩個用戶都不能修改用戶的權限信息。

用戶授權信息均由系統(tǒng)超管員(一般為admin賬戶)授權分發(fā)下來。

用以上含產品管理的系統(tǒng)進行授權管理,則可授權兩大類,一類是A:系統(tǒng)管理,有權限管理、角色管理、用戶管理權限,適用于人事;一類是B:產品管理員,有產品管理權限,適用于市場部人員。

A 人事:

B 產品管理員:

3. 鑒權

鑒權則是應用自己的權限去打開對應的系統(tǒng)功能。如上面授權舉例,系統(tǒng)管理員A、產品管理員B則看到不同的系統(tǒng)功能。

系統(tǒng)管理員 A:

產品管理員 B:

三、權限管理應用場景

1. 人員變動之入職/調崗

在實際業(yè)務中,常存在新人入職,或在崗人員調崗的情況。若依舊使用給人員授權的情況,讓整個操作變的復雜。 用戶直接授權如下圖所示:

如圖所示,需要新人入職授權,就需要給新人挨個去授權每個功能;需要調崗,就需要先刪除原有的所有權限,然后再授予新的權限。

基于系統(tǒng)要能用、好用的原則,增加角色管理,如下圖所示:

如圖所示,需要新人入職授權,就只需要勾選新人所屬的角色;需要調崗,就只需要先去掉原先的角色,勾選上新的角色,整體操作簡便更多。

隨著人員變多,業(yè)務變復雜,系統(tǒng)功能更龐大,權限管理體系還需要調整。如上例,若新人是個特殊人才,除了通有角色的權限,還需要一個單獨權限,就需要增加用戶直接授權的能力。當然,也可以新建一個單獨的角色,只有這一個特殊的權限來實現。這也正體現了現實業(yè)務的復雜性,沒有最好的,只有最適合當前業(yè)務需要的。

2. 三方應用權限管理

在三基座的基礎上,擴展了產品管理,但作為系統(tǒng),功能遠遠不夠。電商類的需要擴展,商品管理、訂單管理、支付管理、活動管理、積分管理等等一系列的功能模塊或應用。

權限系統(tǒng)具有以上能力,為系統(tǒng)擴展打好了基礎。增加的應用,通過權限點注冊,全部納入權限管理的范圍內。若權限系統(tǒng)把權限點注冊、權限查詢、權限校驗開放成為OpenAPI,則能夠兼容三方應用的權限管理。

支持三方應用的權限點管理,就能實現三方應用在較小的改造成本下,納入系統(tǒng)下,為系統(tǒng)的融合擴展提供了支持。

權限點管理:

添加權限點:

天臺十萬八千丈,祥云送我上青天。

前行需要一架梯子,你在梯子上拉拉我,我在梯子上拉拉你。

本文由 @壹叁零壹 原創(chuàng)發(fā)布于人人都是產品經理。未經許可,禁止轉載。

題圖來自 Unsplash,基于 CC0 協(xié)議

該文觀點僅代表作者本人,人人都是產品經理平臺僅提供信息存儲空間服務。

更多精彩內容,請關注人人都是產品經理微信公眾號或下載App
評論
評論請登錄
  1. 如何給多個子系統(tǒng)設計一個簡單通用的權限管理方案?

    來自湖南 回復
    1. 權限系統(tǒng)可以作為獨立的服務,可以理解為內部的sass.

      來自陜西 回復