權(quán)限管理平臺的產(chǎn)品設(shè)計思路
后臺的權(quán)限管理影響到業(yè)務(wù)的正常運轉(zhuǎn),筆者初接觸權(quán)限管理,受實際工作情況啟發(fā),對權(quán)限管理平臺進(jìn)行了相應(yīng)的設(shè)計。
權(quán)限管理模塊是管理整個公司各個業(yè)務(wù)系統(tǒng)中最重要的一環(huán),筆者之前尚未接觸此模塊,隨著公司業(yè)務(wù)系統(tǒng)的繁多復(fù)雜,不可能在每個后臺系統(tǒng)做重復(fù)的權(quán)限模塊。
所以選擇做一個獨立的權(quán)限配置平臺,即系統(tǒng)上的系統(tǒng)(此平臺),此平臺完成兩個目標(biāo):管理公司組織架構(gòu);為整個公司的各業(yè)務(wù)系統(tǒng)來分配權(quán)限。
話不多說,直接上整體設(shè)計方案。
一、整體說明
統(tǒng)一權(quán)限配置平臺(Unified?Privilege?Configuration Platform,簡稱upcp,以下簡稱此平臺),權(quán)限配置是一個極其復(fù)雜的問題,也可簡單表述為這樣的邏輯表達(dá)式:判斷“who對what(which)進(jìn)行how的操作”的邏輯。
針對不同的業(yè)務(wù)子系統(tǒng),現(xiàn)將目前的“xxx后臺管理系統(tǒng)(后簡稱:后臺管理系統(tǒng))”命名為“xxx管理系統(tǒng)(后簡稱:業(yè)務(wù)系統(tǒng))”,后續(xù)在各個業(yè)務(wù)板塊管理的靈活性、完整性和易維護(hù)性之間,將銷管系統(tǒng)(待開發(fā))、指數(shù)分析系統(tǒng)(待開發(fā))等都獨立成單獨的子系統(tǒng),在這些因素權(quán)衡后,選擇了此方案。
二、名詞解釋
為了對整個統(tǒng)一權(quán)限配置平臺里面涉及到的一些名詞術(shù)語有清晰的理解,現(xiàn)將一些關(guān)鍵元素做一些說明,如下:
- 用戶(員工):成功認(rèn)證并登錄系統(tǒng)的操作員(主體:who);
- 權(quán)限:訪問資源的許可(how);
- 角色:權(quán)限的集合體;
- 業(yè)務(wù)系統(tǒng):每個業(yè)務(wù)板塊獨立的系統(tǒng),如:業(yè)務(wù)系統(tǒng);
- 資源:各個業(yè)務(wù)系統(tǒng)中的菜單、子菜單、按鈕、字段等(what)。
整個權(quán)限配置平臺要素:用戶、角色、權(quán)限、業(yè)務(wù)系統(tǒng)、資源。
用戶與角色是多對多關(guān)系,角色與權(quán)限是多對多關(guān)系。
如圖所示:
三、設(shè)計目標(biāo)
此平臺是對各個業(yè)務(wù)系統(tǒng)的所有功能和數(shù)據(jù)進(jìn)行統(tǒng)一權(quán)限配置。
四、賬號管理
此平臺默認(rèn)一個平臺管理員角色,這個賬號不可刪除,但可以修改(由開發(fā)人員創(chuàng)建)。
復(fù)制一個平臺管理員的賬號(平臺管理員2),此賬號進(jìn)行:
- 組織架構(gòu)的管理與維護(hù)(增刪改查);
- 員工信息的管理與維護(hù)(增刪改查)。
平臺管理員2在此平臺創(chuàng)建該部門員工賬號及分配權(quán)限。
普通員工不能登錄此平臺,只能登錄對應(yīng)的業(yè)務(wù)系統(tǒng),維護(hù)對應(yīng)的業(yè)務(wù)板塊的權(quán)限。
五、整體規(guī)劃地圖
筆者將從以下四個模塊講起當(dāng)時的設(shè)計思路:
1. 組織架構(gòu)管理:
- 建立部門;
- 部門管理;
- 組織架構(gòu)樹。
2. 員工管理
- 員工分配部門;
- 賬號管理。
3. 業(yè)務(wù)系統(tǒng)管理
1)新增業(yè)務(wù)系統(tǒng)
2)資源管理
3)角色管理
- 新增角色;
- 分配權(quán)限;
- 分配員工。
4. 操作日志管理
- 操作日志
- 登錄日志
- 異常日志
5. 大體思路
- 組織機(jī)構(gòu)與員工關(guān)聯(lián);
- 新建業(yè)務(wù)系統(tǒng)管理,維護(hù)內(nèi)部使用業(yè)務(wù)系統(tǒng);
- 系統(tǒng)角色與業(yè)務(wù)系統(tǒng)關(guān)聯(lián);
- 角色權(quán)限與系統(tǒng)角色關(guān)聯(lián);
- 資源權(quán)限與角色權(quán)限關(guān)聯(lián),維護(hù)該角色對應(yīng)的資源列表。
六、產(chǎn)品設(shè)計思路
1. 組織架構(gòu)管理
組織架構(gòu)管理是對整個集團(tuán)公司的員工所屬組織進(jìn)行維護(hù)、更新的管理。
組織架構(gòu)默認(rèn)“xxx集團(tuán)”,可編輯,不可刪除,此版塊由平臺管理員2維護(hù)。
具體需求如下:
- 對集團(tuán)總員工有一個數(shù)量的統(tǒng)計,數(shù)據(jù)統(tǒng)計列表包括:組織架構(gòu)層級、負(fù)責(zé)人、手機(jī)號碼、人數(shù)、狀態(tài)(正常/停用)、備注及操作。
- 操作包括:新建下級部門、停用、查看、編輯和刪除(最頂層“xxx集團(tuán)”不可刪除)。
- 新建下級部門:默認(rèn)當(dāng)前添加時的組織機(jī)構(gòu)為此時的上級部門,彈窗錄入:上級部門、部門名稱、負(fù)責(zé)人、手機(jī)號碼、部門狀態(tài)(正常或停用)、備注。
- 停用部門:彈窗提示:“停用該部門如包含下級部門將一并停用,是否繼續(xù)?”,一旦停用該部門后,部門下的員工賬號不可登錄任何業(yè)務(wù)系統(tǒng),如有賬號登錄業(yè)務(wù)系統(tǒng)時,toast提示:“該賬號被停用”。
- 刪除:當(dāng)部門下有員工時,彈框提示:“部門或其下部門已有員工信息,請刪除相關(guān)員工在來操作。”;當(dāng)部門下無員工,只有部門時,彈框提示:“刪除該部門且包含下級部門將一并刪除,是否繼續(xù)?”。
組織架構(gòu)也可生成樹形圖形展示,便于實時對照架構(gòu)的正確性。
2. 員工管理
員工管理中的員工是對各個業(yè)務(wù)系統(tǒng)的具體操作者,這些是一個一個的員工個體,員工按組織架構(gòu)新建/導(dǎo)入在對應(yīng)的組織上,一般是在機(jī)構(gòu)對應(yīng)的部門(一級部門–二級部門)下。
管理員工的前提是需要合理的組織架構(gòu),只有支持組織架構(gòu)的靈活配置,才能進(jìn)一步支持組織內(nèi)人員的增刪調(diào)整,以及禁止登錄、重置密碼和停用控制。
員工可以自己擁有權(quán)限信息,可以歸屬于0~n個角色。他的權(quán)限集是自身具有的權(quán)限、所屬的各角色具有的權(quán)限,即:員工權(quán)限 = 所屬角色權(quán)限合集+員工自身權(quán)限,它與權(quán)限、角色之間的關(guān)系都是n對n的關(guān)系。
具體需求如下:員工管理包括組織機(jī)構(gòu)的展示、查詢(員工姓名、狀態(tài)、手機(jī)號碼)、員工統(tǒng)計、新建員工、導(dǎo)入員工、分配部門、批量刪除。
- 員工統(tǒng)計列表:姓名、手機(jī)號碼、所屬部門、職位、狀態(tài)、操作(查看、編輯、禁止登錄/允許登錄、重置密碼、停用/恢復(fù));
- 新建員工:姓名、手機(jī)號碼、性別、初始密碼、所屬公司、所屬部門、職位、備注;
- 員工批量刪除:刪除后,某角色下的有此員工信息也自動移除該角色;
- 分配部門:彈窗顯示已有的組織架構(gòu),勾選分配該員工到達(dá)的部門。
這里需要注意禁止登錄和停用的區(qū)別:
- 禁止登錄:在登錄系統(tǒng)時多次輸入密碼錯誤,系統(tǒng)會因為帳號安全問題暫時把禁用掉,或涉及到帳號被盜等場景需立馬禁止,重置密碼等操作。
- 停用:員工離職,但是在職時所有的操作記錄信息還存在,所以設(shè)置為停用。(可以跟人事系統(tǒng)打通,人事那邊設(shè)置某員工離職后,所有系統(tǒng)賬號自動設(shè)為停用)。
在用戶狀態(tài)上加狀態(tài)控制,可用的用戶就可以登錄系統(tǒng),禁止登錄、停用的就無法登錄。
3. 業(yè)務(wù)系統(tǒng)管理
針對不同業(yè)務(wù)板塊獨立出來的系統(tǒng)進(jìn)行管理,是比較粗顆粒度的一種管理方式,這種模式下一旦獲得權(quán)限,即可對這個業(yè)務(wù)系統(tǒng)進(jìn)行操作和全部數(shù)據(jù)的查看,這種權(quán)限開放給部門主管。
具體需求如下:由平臺管理員2對各個業(yè)務(wù)系統(tǒng)進(jìn)行統(tǒng)一管理,包括新增業(yè)務(wù)系統(tǒng)、批量刪除,據(jù)列表統(tǒng)計業(yè)務(wù)系統(tǒng)的名稱、排序、登錄鏈接、編輯、資源管理和角色管理一系列的維護(hù)。
- 數(shù)據(jù)統(tǒng)計列表:業(yè)務(wù)系統(tǒng)名稱、鏈接、操作(編輯、資源管理、角色管理)。
- 其中批量刪除:如該業(yè)務(wù)系統(tǒng)下有關(guān)聯(lián)的資源,toast提示:“該業(yè)務(wù)系統(tǒng)下關(guān)聯(lián)資源,請刪除相關(guān)資源后來操作?!保蝗缭摌I(yè)務(wù)系統(tǒng)下無關(guān)聯(lián)資源,彈框提示:“是否確定刪除該業(yè)務(wù)系統(tǒng)?”。
- 員工賬號在登錄業(yè)務(wù)系統(tǒng)時,判斷員工是否屬于該業(yè)務(wù)系統(tǒng)的某一角色,如果是,才能登錄操作對應(yīng)角色下的資源,否則toast提示“您未授權(quán),無法登錄”。
3.1 資源管理
此方案的資源指的各個業(yè)務(wù)系統(tǒng)下的菜單、子菜單、按鈕、字段等。
具體需求如下:
- 新增資源:平臺管理員2可以對業(yè)務(wù)系統(tǒng)下的資源進(jìn)行管理,新增資源時,彈窗錄入:資源名稱(可同時添加同類資源)、資源類型、備注;
- 數(shù)據(jù)列表統(tǒng)計有:資源名稱、資源類型、排序、編輯、添加下級資源;
- 添加下級資源:彈窗錄入:上級資源(默認(rèn)當(dāng)前資源為上級資源,可以修改)、資源名稱、資源類型(菜單/子菜單/按鈕/字段)、備注;
- 批量刪除:對話彈窗提示:“刪除該該且包含下級資源將一并刪除,是否繼續(xù)?” 。
3.2 角色管理
角色往往是基于業(yè)務(wù)需求而預(yù)先在此平臺中設(shè)定好的標(biāo)簽(目前默認(rèn)設(shè)置已有的5個角色,詳見《吃豆車生活管理系統(tǒng)角色權(quán)限表》),每個角色對應(yīng)明確的業(yè)務(wù)系統(tǒng)權(quán)限,是一個集合的概念,是眾多最小權(quán)限顆粒的組成。通過把權(quán)限給這個角色,再把角色給賬號,從而實現(xiàn)賬號的權(quán)限,因此它承擔(dān)了一個橋梁的作用。
引入角色這個概念,可以幫助我們靈活的擴(kuò)展,使一個賬號可以具備多種角色。
具體需求如下:
- 新建角色:角色名稱,角色描述、復(fù)制角色(選擇當(dāng)前系統(tǒng)已有角色)、創(chuàng)建人、創(chuàng)建時間;
- 數(shù)據(jù)統(tǒng)計列表包括:角色名稱、角色描述、創(chuàng)建人、創(chuàng)建時間、修改時間、操作(編輯、刪除、分配權(quán)限、重置權(quán)限、分配員工)
- 角色的權(quán)限設(shè)置:對應(yīng)跳轉(zhuǎn)到權(quán)限分配界面,即資源(菜單/子菜單/按鈕/字段),目前默認(rèn)已知的5個角色權(quán)限;
- 角色分配用戶:添加員工,跳轉(zhuǎn)到員工管理,勾選選擇員工;移除員工,當(dāng)前角色下的員工進(jìn)行移除;
- 刪除:彈窗提示:“刪除該角色后,員工會自動移除,是否繼續(xù)?”。
4. 操作日志管理
操作日志管理用于管理此平臺的操作日志,包括有登錄日志、異常日志和操作日志。其中:
- 登錄日志是對用戶登錄操作的記錄,記錄有操作人員、登錄終端型號、操作系統(tǒng)、IP、登錄狀態(tài)、操作內(nèi)容和登錄時間等。
- 異常日志:幫助平臺管理員檢測企業(yè)內(nèi)帳號異常登錄記錄,方便針對有安全隱患的帳號進(jìn)行安全提升措施。例如:通知員工進(jìn)行密碼強(qiáng)度提升,跟蹤檢測異常次數(shù)較多的設(shè)備等,目前異?,F(xiàn)象有:密碼錯誤,通過手機(jī)號碼密碼方式登錄時,超過3次嘗試登錄失敗,則系統(tǒng)判定為異常登錄,即帳號存在安全隱患。記錄有操作人員、登錄終端型號、操作系統(tǒng)、IP、登錄時間和異?,F(xiàn)象。
- 操作日志是對此平臺相應(yīng)模塊及其功能操作的記錄,包括操作模塊、操作結(jié)果、操作人員、IP、操作時間和操作內(nèi)容等,其中操作內(nèi)容記錄的方式為“xx菜單-xx按鈕”,如:員工管理-新增員工。
5. 個人資料
個人資料包括:姓名、手機(jī)號碼、修改密碼、所屬公司、所屬部門、職位、所屬角色、備注、賬號狀態(tài)、創(chuàng)建人、創(chuàng)建時間、修改時間、上次登錄時間、退出登錄。
以上就是一只產(chǎn)品汪對“權(quán)限配置平臺”的設(shè)計思路和對應(yīng)的實現(xiàn)方法,歡迎和同行一起交流產(chǎn)品設(shè)計。
作者:蕃茄醬w,公眾號:番茄醬w
本文由 @番茄 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理,未經(jīng)許可,禁止轉(zhuǎn)載
題圖來自 Unsplash,基于 CC0 協(xié)議
角色控制功能,架構(gòu)控制數(shù)據(jù)查詢范圍。我是這么定位的。不過它的劣勢是,如果要低層級架構(gòu)人員配置高查詢范圍,只能調(diào)整人員的架構(gòu)。
第四章賬戶管理中提到的平臺管理員,如果存在多個管理員,他們之間的關(guān)系是怎樣的,可以互相增刪改查嗎?
唯一一篇理清了人、組織、角色、權(quán)限幾方面之間關(guān)系的文章。這才是做權(quán)限的基石。
思路清晰
文中說是統(tǒng)一權(quán)限管理中心,不知道對多個平臺的角色權(quán)限是如何規(guī)劃的?
通過添加獨立的業(yè)務(wù)系統(tǒng),在針對每個業(yè)務(wù)系統(tǒng)進(jìn)行資源管理(菜單、子菜單、按鈕、字段)和角色管理,最后分配權(quán)限
權(quán)限系統(tǒng)的整體思路和框架沒有什么問題,但是涉及數(shù)據(jù)權(quán)限的不知道作者是如何考慮的,不同的角色看到的數(shù)據(jù)權(quán)限范圍是不同的,每個業(yè)務(wù)系統(tǒng)有自己的數(shù)據(jù)權(quán)限控制要求;如何進(jìn)行統(tǒng)一管理?
數(shù)據(jù)我們實現(xiàn)的思路:把每個字段都作為資源來管理和控制,類似于按鈕,做完后感覺還有其他實現(xiàn)辦法,但目前沒找到~~
不知道我說的對不對,我談?wù)勎覍?quán)限的看法,您上面說將每一個字段都作為資源管理和控制,會不會增加開發(fā)人員的開發(fā)量,因為真正的企業(yè)業(yè)務(wù)平臺字段太多了,隨隨便便就有上千個字段,如果每個字段都要區(qū)分出來工作量太大了;我覺得是不是可以考慮將這些數(shù)據(jù)權(quán)限分配到角色中去,將角色與權(quán)限關(guān)聯(lián);舉個列子,比如財務(wù)這個角色,那我用超級管理員設(shè)置出一個財務(wù)崗(此設(shè)置是一個權(quán)限),并且讓這個財務(wù)崗僅能在后臺系統(tǒng)里看到付款成功的訂單、審核通過退款的訂單等與財務(wù)相關(guān)的數(shù)據(jù)、和財務(wù)管理模塊,(這個配置自然是可以隨意配置的,不是前期配置死的)這樣再創(chuàng)建財務(wù)角色的時候與其關(guān)聯(lián)上,這樣同一個訂單管理模塊不同的角色登錄系統(tǒng)就區(qū)分了數(shù)據(jù)權(quán)限;其他角色登錄自然也看不到財務(wù)管理模塊的數(shù)據(jù),不知道我這么說是不是解決了您上面說的數(shù)據(jù)權(quán)限的問題??傊矣X得將數(shù)據(jù)權(quán)限放到權(quán)限上是比較合理的,開發(fā)的工作量也比放到字段上要小,而且以后系統(tǒng)進(jìn)行迭代,如果再增加字段怎么辦?還要區(qū)分和控制,就比較麻煩了,直接上升到權(quán)限去控制數(shù)據(jù),應(yīng)該也會給后續(xù)節(jié)省資源吧。。。不知道我說的對不對,希望一起交流。
其實我們也沒有全部字段加權(quán)限的,只是一些涉及公司商業(yè)數(shù)據(jù)字段這么做的,你提的這個方法,之前我還有考慮,但根據(jù)開發(fā)實際評估后,沒那么實現(xiàn)
角色是功能權(quán)限的集合,組織是數(shù)據(jù)權(quán)限的集合。同一個角色,在總公司和在分公司是不一樣的,總公司可以看所有分公司的數(shù)據(jù),但分公司只能看自己公司的數(shù)據(jù)。同一份數(shù)據(jù),不同的角色所能做的操作是不同的,這個通過功能權(quán)限進(jìn)行控制。具體到字段就是功能權(quán)限的細(xì)分,比如看ABC還是看AC。同時功能權(quán)限又有依賴關(guān)系,先有查看才能有增刪改。
你說的不錯,數(shù)據(jù)權(quán)限指的不是對哪部分字段的操作權(quán)限,而是同一個字段下,不同的賬號看到的數(shù)據(jù)是不同的
具體到數(shù)據(jù)權(quán)限,可以通過客戶維護(hù)劃分?jǐn)?shù)據(jù)權(quán)限,可以通過狀態(tài)維護(hù)進(jìn)行劃分,或者通過組織樹的結(jié)構(gòu)維護(hù)進(jìn)行劃分。再細(xì)化下去,建立某一個模塊下的數(shù)字權(quán)限,然后將這個權(quán)限配給某個角色。然后這個角色就被限制只能看所配的數(shù)字權(quán)限的數(shù)據(jù)
說得對。數(shù)據(jù)權(quán)限的劃分,實質(zhì)上也算是功能權(quán)限的再細(xì)分,把同一功能權(quán)限從數(shù)據(jù)范圍的角度進(jìn)行細(xì)分,分為能查看不同范圍數(shù)據(jù)權(quán)限。這個細(xì)分的方式可以通過狀態(tài)維護(hù),不同角色權(quán)限狀態(tài)給予不同的數(shù)據(jù)權(quán)限范圍;或者通過結(jié)構(gòu),劃分子角色低級角色進(jìn)行劃分。
最后請教下,你說的通過“客戶維護(hù)”劃分?jǐn)?shù)據(jù)權(quán)限是指什么呢,我沒有理解明白~
你好,前輩,可不可以請你把通過狀態(tài)維護(hù)再講解一下,我沒有理解,非常感謝~