1、最簡單的用戶系統 一個最簡單的用戶系統,只需要有用戶和身份驗證兩個模塊就夠了。如圖: 這裡提示一下:上層數據依賴下層數據。舉個慄子,就是身份驗證需要依賴用戶數據。 2、具有許可權管理的用戶系統 如果需要進行許可權管理的話,那麼就加上資源和角色模塊。同時,在身份認證之後需要按需進行鑒權。 資源和用戶都 ...
1、最簡單的用戶系統
一個最簡單的用戶系統,只需要有用戶和身份驗證兩個模塊就夠了。如圖:
這裡提示一下:上層數據依賴下層數據。舉個慄子,就是身份驗證需要依賴用戶數據。
2、具有許可權管理的用戶系統
如果需要進行許可權管理的話,那麼就加上資源和角色模塊。同時,在身份認證之後需要按需進行鑒權。
資源和用戶都是最底層的數據,角色需要關聯用戶和資源完成對用戶的授權。瞭解RBAC模型的,應該很清楚這種關係。
3、帶有用戶組、組織機構的複雜系統
如果我們需要有用戶組輔助用戶管理,或者系統中需要有組織機構,並且支持對職位進行授權操作的話。我們可以再添加用戶組和組織機構模塊,這兩個模塊可以和用戶建立多對多的關係。同時,角色就可以通過和用戶組、組織機構和用戶建立間接的關係,這樣就可以簡化授權操作。
4、一個多租戶平臺
很多時候,我們需要有租戶的概念,使用租戶來分開用戶的業務數據。譬如釘釘就是一個多租戶系統,每家企業在釘釘裡面都是一個租戶。
我們可以在用戶之上增加租戶模塊,讓租戶和用戶、資源(應用)建立多對多的關係。同時,用戶組、組織機構和角色就都可以按租戶進行區分了。
假設每個租戶都有「管理員」這個角色,那麼1萬個租戶在系統裡面就會有1萬個名字叫管理員的角色,只不過每個租戶都只能看到自己的那個「管理員」角色罷了。如果A租戶建立了一個「業務員」角色,那麼B租戶是沒有這個角色的,他想要的話,必須自己去建立一個。
最後
在第4張圖裡面,用戶組、組織機構和租戶這幾個模塊都是可選的。模塊之間不應該存在耦合關係,只存在數據依賴關係。你需要什麼就實現什麼,並不需要一開始就全部實現。