1. 程式人生 > >4張圖看明白使用者、許可權和租戶的關係

4張圖看明白使用者、許可權和租戶的關係

### 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張圖裡面,使用者組、組織機構和租戶這幾個模組都是可選的。模組之間不應該存在耦合關係,只存在資料依賴關係。你需要什麼就實現什麼,並不需要一開始就全部實現。 #### 看懂的請點個贊,以便讓更多的人