4張圖看明白用戶、權限和租戶的關系


1、最簡單的用戶系統

一個最簡單的用戶系統,只需要有用戶和身份驗證兩個模塊就夠了。如圖:

這里提示一下:上層數據依賴下層數據。舉個栗子,就是身份驗證需要依賴用戶數據。

2、具有權限管理的用戶系統

如果需要進行權限管理的話,那么就加上資源和角色模塊。同時,在身份認證之后需要按需進行鑒權。
資源和用戶都是最底層的數據,角色需要關聯用戶和資源完成對用戶的授權。了解RBAC模型的,應該很清楚這種關系。

3、帶有用戶組、組織機構的復雜系統

如果我們需要有用戶組輔助用戶管理,或者系統中需要有組織機構,並且支持對職位進行授權操作的話。我們可以再添加用戶組和組織機構模塊,這兩個模塊可以和用戶建立多對多的關系。同時,角色就可以通過和用戶組、組織機構和用戶建立間接的關系,這樣就可以簡化授權操作。

4、一個多租戶平台

很多時候,我們需要有租戶的概念,使用租戶來分開用戶的業務數據。譬如釘釘就是一個多租戶系統,每家企業在釘釘里面都是一個租戶。
我們可以在用戶之上增加租戶模塊,讓租戶和用戶、資源(應用)建立多對多的關系。同時,用戶組、組織機構和角色就都可以按租戶進行區分了。

假設每個租戶都有「管理員」這個角色,那么1萬個租戶在系統里面就會有1萬個名字叫管理員的角色,只不過每個租戶都只能看到自己的那個「管理員」角色罷了。如果A租戶建立了一個「業務員」角色,那么B租戶是沒有這個角色的,他想要的話,必須自己去建立一個。

最后

在第4張圖里面,用戶組、組織機構和租戶這幾個模塊都是可選的。模塊之間不應該存在耦合關系,只存在數據依賴關系。你需要什么就實現什么,並不需要一開始就全部實現。

看懂的請點個贊,以便讓更多的人看到。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM