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

一、最簡單的用戶系統

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

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

二、具備權限管理的用戶系統

若是須要進行權限管理的話,那麼就加上資源和角色模塊。同時,在身份認證以後須要按需進行鑑權。
資源和用戶都是最底層的數據,角色須要關聯用戶和資源完成對用戶的受權。瞭解RBAC模型的,應該很清楚這種關係。
blog

三、帶有用戶組、組織機構的複雜系統

若是咱們須要有用戶組輔助用戶管理,或者系統中須要有組織機構,而且支持對職位進行受權操做的話。咱們能夠再添加用戶組和組織機構模塊,這兩個模塊能夠和用戶創建多對多的關係。同時,角色就能夠經過和用戶組、組織機構和用戶創建間接的關係,這樣就能夠簡化受權操做。
資源

四、一個多租戶平臺

不少時候,咱們須要有租戶的概念,使用租戶來分開用戶的業務數據。譬如釘釘就是一個多租戶系統,每家企業在釘釘裏面都是一個租戶。
咱們能夠在用戶之上增長租戶模塊,讓租戶和用戶、資源(應用)創建多對多的關係。同時,用戶組、組織機構和角色就均可以按租戶進行區分了。
權限

假設每一個租戶都有「管理員」這個角色,那麼1萬個租戶在系統裏面就會有1萬個名字叫管理員的角色,只不過每一個租戶都只能看到本身的那個「管理員」角色罷了。若是A租戶創建了一個「業務員」角色,那麼B租戶是沒有這個角色的,他想要的話,必須本身去創建一個。im

最後

在第4張圖裏面,用戶組、組織機構和租戶這幾個模塊都是可選的。模塊之間不該該存在耦合關係,只存在數據依賴關係。你須要什麼就實現什麼,並不須要一開始就所有實現。數據

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

相關文章
相關標籤/搜索