4張圖看明白使用者、許可權和租戶的關係
阿新 • • 發佈:2020-03-17
### 1、最簡單的使用者系統
一個最簡單的使用者系統,只需要有使用者和身份驗證兩個模組就夠了。如圖:
![](https://img2020.cnblogs.com/blog/734277/202003/734277-20200317155824569-1060897516.jpg)
這裡提示一下:上層資料依賴下層資料。舉個栗子,就是身份驗證需要依賴使用者資料。
### 2、具有許可權管理的使用者系統
如果需要進行許可權管理的話,那麼就加上資源和角色模組。同時,在身份認證之後需要按需進行鑑權。
資源和使用者都是最底層的資料,角色需要關聯使用者和資源完成對使用者的授權。瞭解RBAC模型的,應該很清楚這種關係。
![](https://img2020.cnblogs.com/blog/734277/202003/734277-20200317160348144-154414714.jpg)
### 3、帶有使用者組、組織機構的複雜系統
如果我們需要有使用者組輔助使用者管理,或者系統中需要有組織機構,並且支援對職位進行授權操作的話。我們可以再新增使用者組和組織機構模組,這兩個模組可以和使用者建立多對多的關係。同時,角色就可以通過和使用者組、組織機構和使用者建立間接的關係,這樣就可以簡化授權操作。
![](https://img2020.cnblogs.com/blog/734277/202003/734277-20200317161011937-1917181780.jpg)
### 4、一個多租戶平臺
很多時候,我們需要有租戶的概念,使用租戶來分開使用者的業務資料。譬如釘釘就是一個多租戶系統,每家企業在釘釘裡面都是一個租戶。
我們可以在使用者之上增加租戶模組,讓租戶和使用者、資源(應用)建立多對多的關係。同時,使用者組、組織機構和角色就都可以按租戶進行區分了。
![](https://img2020.cnblogs.com/blog/734277/202003/734277-20200317162224783-2022960518.jpg)
假設每個租戶都有「管理員」這個角色,那麼1萬個租戶在系統裡面就會有1萬個名字叫管理員的角色,只不過每個租戶都只能看到自己的那個「管理員」角色罷了。如果A租戶建立了一個「業務員」角色,那麼B租戶是沒有這個角色的,他想要的話,必須自己去建立一個。
### 最後
在第4張圖裡面,使用者組、組織機構和租戶這幾個模組都是可選的。模組之間不應該存在耦合關係,只存在資料依賴關係。你需要什麼就實現什麼,並不需要一開始就全部實現。
#### 看懂的請點個贊,以便讓更多的人