權(quán)限管理”。有的朋友對權(quán)限管理理解的很透徹,有些朋友對一些概念模糊不清。這里總結(jié)了一些常見的誤區(qū),可供大家參考。
1. “普通用戶有刪除功能嗎”
權(quán)限實際上是功能權(quán)限和數(shù)據(jù)權(quán)限的組合,像“刪除”操作是一個功能操作權(quán)限,需要把“刪除”賦予給某個用戶,該用戶才能有這個操作權(quán)限。如這樣一個場景:企業(yè)IT管理員為系統(tǒng)定義角色,給用戶分配角色。
給新員工陳穎賦予“業(yè)務(wù)經(jīng)理”角色,“業(yè)務(wù)經(jīng)理”具有“新增客戶單位”、“查詢客戶單位”、“修改客戶單位”權(quán)限。此時張穎能夠進(jìn)入系統(tǒng),則可以進(jìn)行這些操作。
2. “普通用戶能查看訂單數(shù)據(jù)嗎”
以上舉例,局限于功能訪問權(quán)限,還有一些數(shù)據(jù)權(quán)限的權(quán)限管理,如:陳穎是浙江區(qū)域的“業(yè)務(wù)經(jīng)理”,所以她只能夠查看本區(qū)域的客戶單位,而不能查看到其它地區(qū)的客戶單位。甚至考慮到業(yè)務(wù)經(jīng)理之間的競爭,系統(tǒng)可以控制更細(xì)粒度級別的數(shù)據(jù)權(quán)限,即普通業(yè)務(wù)經(jīng)理的角色只能看到自己維護(hù)的客戶單位,而不能查看其他人員的客戶單位。軟件系統(tǒng)的權(quán)限管理其實是與線下實際管理策略相對應(yīng)的。
有些企業(yè)本身制定和實施了嚴(yán)格的規(guī)章制度,那么軟件系統(tǒng)的權(quán)限管理就可以幫助企業(yè)更好的貫徹制度的實行,提高整體的運行效率和數(shù)據(jù)的安全。相反有些企業(yè)實際線下沒有明確的經(jīng)營策略,存在著管理風(fēng)險和員工之間的不正當(dāng)競爭,寄希望于軟件系統(tǒng)的權(quán)限規(guī)范,但是實施過程中會有很多阻力。
3. “這不就是用戶管理系統(tǒng)嗎”
這是將用戶管理系統(tǒng)當(dāng)做權(quán)限管理系統(tǒng),其實權(quán)限基本都是基于角色的,用戶分配了對應(yīng)的角色后,則會擁有對應(yīng)的權(quán)限。而用戶管理系統(tǒng),只是將用戶管理起來。
從控制力度來看,可以將權(quán)限管理分為兩大類:
- 功能級權(quán)限管理;
- 數(shù)據(jù)級權(quán)限管理。
從控制方向來看,也可以將權(quán)限管理分為兩大類:
- 從系統(tǒng)獲取數(shù)據(jù),比如查詢訂單、查詢客戶資料;
- 向系統(tǒng)提交數(shù)據(jù),比如刪除訂單、修改客戶資料。
“權(quán)限管理”是B端產(chǎn)品的基礎(chǔ)功能,B端產(chǎn)品經(jīng)理不可避免會遇到權(quán)限設(shè)計的相關(guān)問題,行業(yè)里已經(jīng)很成熟。雖然它不是核心業(yè)務(wù)功能,但卻牽一發(fā)而動全身,需要產(chǎn)品經(jīng)理根據(jù)具體業(yè)務(wù)使用場景來設(shè)計。
通常情況下我們所說的“權(quán)限”,包括“功能權(quán)限”和“數(shù)據(jù)權(quán)限”,“功能權(quán)限”指用戶登錄系統(tǒng)后能看到哪些模塊,操作哪些按鈕,企業(yè)中的由于用戶擁有不同的角色,分工職責(zé)不盡相同。
比如常見的CRM系統(tǒng),銷售人員和財務(wù)人員由于處理的業(yè)務(wù)不同,登錄系統(tǒng)后,看到的功能模塊也不盡相同;而同樣都是財務(wù)人員,因為職位等級不同,擁有的操作功能也可能不同。
尤其是針對刪除或者撤銷的功能權(quán)限的控制。比如“刪除”的操作,不會隨意提供給一個普通員工。而數(shù)據(jù)權(quán)限指的是用戶在某個模塊里能看到哪些范圍的數(shù)據(jù),比如A業(yè)務(wù)經(jīng)理只能看到自己的客戶數(shù)據(jù),但是A的業(yè)務(wù)總監(jiān)可以查看到各個區(qū)域業(yè)務(wù)員的客戶數(shù)據(jù),
4. 功能權(quán)限中按角色訪問控制設(shè)計
其基本思想是,對系統(tǒng)操作的各種權(quán)限不是直接授予具體的用戶,而是在用戶集合與權(quán)限集合之間建立一個角色集合,每一種角色對應(yīng)一組相應(yīng)的權(quán)限。
一旦用戶被分配了適當(dāng)?shù)慕巧螅撚脩艟蛽碛写私巧乃胁僮鳈?quán)限。
這樣做的好處是,不必在每次創(chuàng)建用戶時都進(jìn)行分配權(quán)限的操作,只要分配用戶相應(yīng)的角色即可。而且角色的權(quán)限變更比用戶的權(quán)限變更要少得多,這樣將簡化用戶的權(quán)限管理,減少系統(tǒng)的開銷。一般情況下的角色權(quán)限時相對穩(wěn)定的,而用戶則因為時間的變化而需要獲取相關(guān)新的權(quán)限。
基礎(chǔ)模型:用戶與角色是多對多的關(guān)系。一個用戶可以擁有若干角色,一個角色也可以賦予若干用戶。但并不意味著角色之間的關(guān)系互斥與否。
在企業(yè)的后臺管理系統(tǒng)中,通常包含多種管理模塊,有針對供應(yīng)商的模塊、客戶的模塊、財務(wù)人員的模塊、統(tǒng)計管理人員的模塊。為了避免內(nèi)部信息的交叉?zhèn)鞑ィ约安僮魅藛T可能存在的誤操作行為,我們就可以通過此種基于角色的訪問控制模型,為后臺的操作者設(shè)置多種角色,并為每個角色賦予不同的業(yè)務(wù)權(quán)限,精確到對應(yīng)菜單模塊的控制,甚至是相應(yīng)的按鈕權(quán)限。
這樣就可以讓銷售同事只能查閱和修改供應(yīng)商管理模塊,無法查閱公司的財務(wù)信息。而財務(wù)同事也只能查閱和修改財務(wù)報表相關(guān)的管理模塊,無法查看公司的訂單匯總,不同崗位各司其職,互不干擾。
對于小型的企業(yè),當(dāng)一個人既負(fù)責(zé)銷售部,又負(fù)責(zé)運營部時,就可以為其賦予銷售人員、運營人員兩個角色,這樣他就擁有這兩個角色的所有權(quán)限,即可以訪問這兩個模塊的內(nèi)容。但是公司規(guī)模越大,對每個崗位的權(quán)責(zé)要求也更為細(xì)致,角色之間可能會有相應(yīng)的組合關(guān)系。有必要理清楚崗位,職務(wù),職位,權(quán)限,角色。
毫無疑問:權(quán)限是這些概念中的最細(xì)粒度的一個東西,而角色是一組權(quán)限的集合。崗位是職位的同義詞,他們的側(cè)重點不同。
職務(wù)才是被大家忽略的一個概念:具體定義不是很清晰,但他是某一業(yè)務(wù)中某一角色應(yīng)當(dāng)承擔(dān)的責(zé)任或者說應(yīng)該負(fù)責(zé)的事。
一個職位一般來說有多個職務(wù),比如說我們的經(jīng)理助理這么一個“職位”可能要負(fù)責(zé)的事情可能有很多類,如:協(xié)助安排經(jīng)理的日程,對下面呈上來的某類報告做初步審理等等一條條。這些被我們認(rèn)為梳理出來的一條條的東西就是職務(wù) – 他在當(dāng)前職位上需要擔(dān)負(fù)的義務(wù)。
大家初期容易將崗位抽象成一個角色,但是最終發(fā)現(xiàn)這個角色可能粒度太粗或者是不宜重用,這個時候就應(yīng)該梳理一下每個職位的職務(wù),以職務(wù)為單位抽象成角色,這樣才能制定出更細(xì)粒的角色。
當(dāng)然職位由于他是我們看的見摸得著的,所以直接將職位映射成角色是非常簡單清晰沒有異議的,而職務(wù)就不同了,他需要產(chǎn)品人員深入理解客戶的業(yè)務(wù),這樣才能根據(jù)客戶的業(yè)務(wù)情況梳理出一個業(yè)務(wù)職務(wù)體系,這個過程必然會很辛苦。
5. 關(guān)于功能權(quán)限設(shè)計的幾點Tips
- 如果項目初期不需要權(quán)限管理,一定記得提醒開發(fā)同學(xué),預(yù)留相關(guān)接口。
- 功能權(quán)限設(shè)計,也包括頁面權(quán)限和接口權(quán)限,這一點沒有經(jīng)驗的產(chǎn)品同學(xué)可能注意不到,需要保證沒有該模塊功能權(quán)限的用戶直接輸入頁面地址或調(diào)用接口時,也無法訪問。
- 一個頁面完成一件事,避免頁面交互方式太復(fù)雜,無法劃分功能權(quán)限。
- 功能權(quán)限與數(shù)據(jù)權(quán)限有時可以通過模塊進(jìn)行轉(zhuǎn)換。