【圖解權限】系統權限是如何生效的?
系統權限涉及身份驗證服務和訪問控制服務兩個過程,那么它們是如何操作的呢?本文將簡述其中的過程,希望能對大家有所幫助。
很多產品小伙伴在剛接觸權限控制問題的時候,往往搜到的都是RBAC、ABAC等權限控制技術實現方法,而這種抽象方法其實不能夠幫大家形象地了解“權限是如何生效的”這個問題.為什么不同角色看到的菜單不一樣?不同角色擁有的操作不一樣?同一個菜單列表里的數據范圍也不一樣?
這里主要涉及2大過程:
- 身份驗證服務
- 訪問控制服務
今天我試著用圖解的方式,告訴大家權限是如何生效的。
一、系統權限如何生效
1. 身份驗證服務
我們打開一個系統,第一步要做的就是登錄,最常見的就是使用賬號密碼登錄。當我們輸入正確的賬號和密碼組合時,提交給系統后,系統的“身份驗證服務”就會對我們提交的賬號和密碼組合進行驗證,看看是否屬于系統用戶。
身份驗證服務相當于門衛
在驗證成功后,“身份驗證服務”會給用戶發一個憑證,這個憑證就相當于一個通行證,方便用戶與系統后續的交互行為。
2. 訪問控制服務
經過身份驗證服務后,算是進了系統的“大門”了,但是進門之后,并不一定就可以訪問系統里所有的內容,因為這時候有“訪問控制服務”來對每個進來的用戶進行訪問控制。我們常說的頁面權限控制、操作權限控制、數據權限控制等都屬與“訪問控制”的范疇。
訪問控制服務是“鑰匙”
前面提到的角色權限控制(RBAC模式)就屬于訪問控制的一種經典實現方式,也就是使用“角色”這個中間對象,關聯允許訪問的菜單以及對應菜單上的操作(比如新增、修改、刪除),然后被賦予該角色的用戶都能夠被授予這些訪問權限。
用角色控制菜單和操作權限
在數據權限上,我們一般使用組織架構管理來進行數據范圍的控制。比如“訂單管理”菜單中,包含了廣東省所有地級市的訂單內容,我們就使用廣東省總公司(父級)、廣州市分公司(子級)、深圳市分公司(子級)這樣的組織層級,對訂單管理列表的數據內容,作一個地市上的劃分和控制。
比如屬于廣東省總公司層級的賬號,可以看到所有的訂單數據,而屬于廣州市分公司層級的賬號,只能看到廣州市的訂單數據,看不到其它城市的訂單數據。
用組織架構進行數據權限的區隔
二、UML時序圖
下面我們用時序圖強化一下對登錄后,權限生效過程的理解:
- 當賬號密碼通過驗證時,我們就進入了系統大門;
- 系統根據訪問控制服務的反饋,加載對應的頁面元素,其中包含菜單、按鈕、列表數據等受訪問控制的對象;
- 系統頁面加載完畢,用戶可以進行瀏覽和操作。
本篇僅是想給各位產品經理科普權限生效的過程,也是“圖解權限”系列的第一篇,后續我們會結合具體的后臺頁面,給大家具體呈現演繹一下RBAC角色權限控制的實際效果。
作者:產品經理P仔 , 公眾號:產品經理P仔
本文由@產品經理P仔 原創發布于人人都是產品經理,未經許可,禁止轉載。
題圖來自Unsplash,基于CC0協議。
該文觀點僅代表作者本人,人人都是產品經理平臺僅提供信息存儲空間服務。
- 目前還沒評論,等你發揮!