軟件系統(tǒng)三基座之一:權(quán)限管理
不同的員工在公司享有不同的權(quán)限,用戶可以訪問(wèn)而且只能訪問(wèn)自己被授權(quán)的資源。那么,權(quán)限管理功能要如何設(shè)計(jì)呢?本文作者對(duì)此進(jìn)行了分析,希望對(duì)你有幫助。
軟件系統(tǒng)三基座包含:權(quán)限管理、組織架構(gòu)、用戶管理。
何為基座,即是有了這些基礎(chǔ),任一相關(guān)的“建筑”就能逐步搭建起來(lái)。
萬(wàn)丈高樓平地起
一、為什么要權(quán)限管理
權(quán)限管理,一般指根據(jù)系統(tǒng)設(shè)置的安全規(guī)則或者安全策略,用戶可以訪問(wèn)而且只能訪問(wèn)自己被授權(quán)的資源。只要有用戶和密碼的系統(tǒng),幾乎全有權(quán)限管理。
1. 各司其職,提高工作效率
產(chǎn)品經(jīng)理的品質(zhì)追求和項(xiàng)目的里程碑交互是矛盾的,讓產(chǎn)品經(jīng)理管項(xiàng)目,可能項(xiàng)目沒(méi)有終結(jié)點(diǎn)。
程序員的邏輯嚴(yán)謹(jǐn)和市場(chǎng)的變化多端是矛盾的,讓程序員去做市場(chǎng)銷售,可能團(tuán)隊(duì)沒(méi)有太多收益。
2. 權(quán)責(zé)分明,利于問(wèn)題溯源
授予管理的權(quán)限,同時(shí)也是一份責(zé)任。費(fèi)用的報(bào)銷和預(yù)算消耗所剩無(wú)幾是相關(guān)聯(lián)的,打市場(chǎng)需要團(tuán)隊(duì)成員全員硬剛和請(qǐng)假審批松散導(dǎo)致身邊無(wú)人可用是有前因后果的。
3. 數(shù)據(jù)隔離,依權(quán)限管理數(shù)據(jù)
市場(chǎng)部的日常執(zhí)行信息不斷反饋給采購(gòu)部,會(huì)極大地消耗采購(gòu)部的精力。
戰(zhàn)略規(guī)劃部的規(guī)劃調(diào)整隨時(shí)更新給一線執(zhí)行人員,會(huì)極大地摧毀公司整體的穩(wěn)固度。
4. 安全防患,防止誤操作、人為破壞、數(shù)據(jù)泄漏
某某程序員刪庫(kù)跑路了,某某銷售代表攜客戶資源跳槽了……此類事項(xiàng)屢屢出現(xiàn),這總是前人血淚教訓(xùn)。
二、權(quán)限管理
軟件系統(tǒng)三基座包含:權(quán)限管理、組織架構(gòu)、用戶管理。按照系統(tǒng)管理的設(shè)計(jì),交互如下圖所示。
以用戶管理為例,需要支持最基礎(chǔ)的增刪改查操作,即是添加用戶、編輯用戶、刪除用戶、查詢用戶。
以現(xiàn)實(shí)業(yè)務(wù)情況,系統(tǒng)用戶的增加包含用戶注冊(cè)或管理員添加。對(duì)于其他系統(tǒng)用戶來(lái)講,用戶管理這一塊與自己無(wú)關(guān),不必查看,就需要做權(quán)限管控。
權(quán)限管理和現(xiàn)實(shí)中的開(kāi)鎖相似。首先需要了解哪些地方需要加鎖,公園就不需要加鎖,即是權(quán)限點(diǎn)注冊(cè);其次是在需要加鎖的地方放上鎖,并給需要的人發(fā)放鑰匙,即是授權(quán);最后則是有鑰匙的人拿著鑰匙開(kāi)鎖,沒(méi)有鑰匙則在封鎖區(qū)域之外,即是鑒權(quán)。
哪些地方加鎖 = 權(quán)限點(diǎn)注冊(cè)
上鎖并發(fā)放鑰匙 = 授權(quán)
拿鑰匙開(kāi)鎖 = 鑒權(quán)
1. 權(quán)限點(diǎn)注冊(cè)
權(quán)限點(diǎn)注冊(cè)是軟件哪些功能需要做權(quán)限控制,就添加到權(quán)限控制的列表中。注冊(cè)成功后,權(quán)限點(diǎn)樹(shù)形結(jié)構(gòu)展示,如下圖所示。
權(quán)限點(diǎn)注冊(cè)支持樹(shù)形結(jié)構(gòu),也就是沒(méi)有授權(quán)“用戶管理”時(shí),不能授權(quán)“刪除用戶”。權(quán)限點(diǎn)還可以細(xì)分按鈕權(quán)限、URL權(quán)限,按鈕權(quán)限控制頁(yè)面上是否可見(jiàn),URL權(quán)限控制按鈕的交互是否能執(zhí)行。一般的情況下,對(duì)同一個(gè)操作需要既授予按鈕權(quán)限,又授予URL權(quán)限。若存在系統(tǒng)間接口數(shù)據(jù)交互的情況,不需要頁(yè)面交互,就不必授予按鈕權(quán)限。
權(quán)限管理作為底層支持,可擴(kuò)展更多模塊、更多應(yīng)用的管理。在三基座授權(quán)管理的基礎(chǔ)上,增加產(chǎn)品管理,則權(quán)限點(diǎn)注冊(cè)后如下圖所示。
2. 授權(quán)管理
授權(quán)管理就是針對(duì)不同的用戶授予不同的權(quán)限,也就能讓不同的用戶看到不同的軟件部分。
如圖所示,給用戶A授權(quán)“添加用戶、編輯用戶、刪除用戶、查詢用戶”權(quán)限;給用戶B授權(quán)“查詢用戶”;兩個(gè)用戶相比較而言,用戶B就只能查詢用戶,相當(dāng)于獲取用戶信息,則不能進(jìn)行用戶信息的編輯、修改。
兩個(gè)用戶都沒(méi)有授權(quán)“用戶授權(quán)”,則兩個(gè)用戶都不能修改用戶的權(quán)限信息。
用戶授權(quán)信息均由系統(tǒng)超管員(一般為admin賬戶)授權(quán)分發(fā)下來(lái)。
用以上含產(chǎn)品管理的系統(tǒng)進(jìn)行授權(quán)管理,則可授權(quán)兩大類,一類是A:系統(tǒng)管理,有權(quán)限管理、角色管理、用戶管理權(quán)限,適用于人事;一類是B:產(chǎn)品管理員,有產(chǎn)品管理權(quán)限,適用于市場(chǎng)部人員。
A 人事:
B 產(chǎn)品管理員:
3. 鑒權(quán)
鑒權(quán)則是應(yīng)用自己的權(quán)限去打開(kāi)對(duì)應(yīng)的系統(tǒng)功能。如上面授權(quán)舉例,系統(tǒng)管理員A、產(chǎn)品管理員B則看到不同的系統(tǒng)功能。
系統(tǒng)管理員 A:
產(chǎn)品管理員 B:
三、權(quán)限管理應(yīng)用場(chǎng)景
1. 人員變動(dòng)之入職/調(diào)崗
在實(shí)際業(yè)務(wù)中,常存在新人入職,或在崗人員調(diào)崗的情況。若依舊使用給人員授權(quán)的情況,讓整個(gè)操作變的復(fù)雜。 用戶直接授權(quán)如下圖所示:
如圖所示,需要新人入職授權(quán),就需要給新人挨個(gè)去授權(quán)每個(gè)功能;需要調(diào)崗,就需要先刪除原有的所有權(quán)限,然后再授予新的權(quán)限。
基于系統(tǒng)要能用、好用的原則,增加角色管理,如下圖所示:
如圖所示,需要新人入職授權(quán),就只需要勾選新人所屬的角色;需要調(diào)崗,就只需要先去掉原先的角色,勾選上新的角色,整體操作簡(jiǎn)便更多。
隨著人員變多,業(yè)務(wù)變復(fù)雜,系統(tǒng)功能更龐大,權(quán)限管理體系還需要調(diào)整。如上例,若新人是個(gè)特殊人才,除了通有角色的權(quán)限,還需要一個(gè)單獨(dú)權(quán)限,就需要增加用戶直接授權(quán)的能力。當(dāng)然,也可以新建一個(gè)單獨(dú)的角色,只有這一個(gè)特殊的權(quán)限來(lái)實(shí)現(xiàn)。這也正體現(xiàn)了現(xiàn)實(shí)業(yè)務(wù)的復(fù)雜性,沒(méi)有最好的,只有最適合當(dāng)前業(yè)務(wù)需要的。
2. 三方應(yīng)用權(quán)限管理
在三基座的基礎(chǔ)上,擴(kuò)展了產(chǎn)品管理,但作為系統(tǒng),功能遠(yuǎn)遠(yuǎn)不夠。電商類的需要擴(kuò)展,商品管理、訂單管理、支付管理、活動(dòng)管理、積分管理等等一系列的功能模塊或應(yīng)用。
權(quán)限系統(tǒng)具有以上能力,為系統(tǒng)擴(kuò)展打好了基礎(chǔ)。增加的應(yīng)用,通過(guò)權(quán)限點(diǎn)注冊(cè),全部納入權(quán)限管理的范圍內(nèi)。若權(quán)限系統(tǒng)把權(quán)限點(diǎn)注冊(cè)、權(quán)限查詢、權(quán)限校驗(yàn)開(kāi)放成為OpenAPI,則能夠兼容三方應(yīng)用的權(quán)限管理。
支持三方應(yīng)用的權(quán)限點(diǎn)管理,就能實(shí)現(xiàn)三方應(yīng)用在較小的改造成本下,納入系統(tǒng)下,為系統(tǒng)的融合擴(kuò)展提供了支持。
權(quán)限點(diǎn)管理:
添加權(quán)限點(diǎn):
天臺(tái)十萬(wàn)八千丈,祥云送我上青天。
前行需要一架梯子,你在梯子上拉拉我,我在梯子上拉拉你。
本文由 @壹叁零壹 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理。未經(jīng)許可,禁止轉(zhuǎn)載。
題圖來(lái)自 Unsplash,基于 CC0 協(xié)議
該文觀點(diǎn)僅代表作者本人,人人都是產(chǎn)品經(jīng)理平臺(tái)僅提供信息存儲(chǔ)空間服務(wù)。
如何給多個(gè)子系統(tǒng)設(shè)計(jì)一個(gè)簡(jiǎn)單通用的權(quán)限管理方案?
權(quán)限系統(tǒng)可以作為獨(dú)立的服務(wù),可以理解為內(nèi)部的sass.