繁體中文(香港)
  • organizations
  • collaboration
  • identity
  • user management
  • authentication
  • authorization

案例研究:利用 Logto Organizations 構建多租戶系統

學習如何利用 Logto Organizations 為多租戶系統建立一個穩固且可擴展的身份基礎。

Gao
Gao
Founder

Stop wasting weeks on user auth
Launch secure apps faster with Logto. Integrate user auth in minutes, and focus on your core product.
Get started
Product screenshot

如今,多租戶系統已成為應用或 SaaS 的重要部分。這通常涉及用戶、組織、角色和權限之間的複雜關係。例如,一個用戶可以是多個組織的成員,反之亦然;一個用戶在不同的組織中可以具有不同的角色。

問題

這不僅會在開始時引起頭痛,還會在應用的長期維護中引起問題。傳統的基於角色的訪問控制 (RBAC) 模型可以部分解決這個問題,但當用戶和組織的數量增加時,它很快就會成為一場噩夢。

組織示例

例如,起初,你可能在每個組織中只有兩個角色:adminmember。當你有 10 個組織時,你將管理 20 個角色;當你有 1,000 個組織時,你將管理 2,000 個角色。

隨著業務的增長,你可能需要添加更多角色,比如 guestdeveloper 等。RBAC 模型的複雜性將呈指數增長。

這也是我們在構建 Logto Cloud 時遇到的問題。我們很快意識到這是業界常見的問題,需要解決它。Logto Organizations 就是為了解決這個問題。

組織模板

一個簡單的問題:為什麼 SaaS 應用是 SaaS?我們相信可擴展性是最重要的原因之一。換句話說,對一個客戶有效的方案應適用於所有客戶。

這引出了 "組織模板" 的概念。組織模板是每個組織訪問控制模型的藍圖:它定義了適用於所有組織的角色和權限。

假設我們為每個組織設置了兩個角色:

  • admin:可以管理組織,包括添加/移除成員、更改角色等。
  • member:可以訪問組織的資源和邀請新成員。

我們可以使用以下配置創建一個組織模板:

組織模板

添加用戶到組織中

由於我們設置了組織模板,管理用戶變得簡單而自然。你可以通過 Logto Console(網絡界面)或 Logto Management API 將用戶添加到組織中。

查看 Configure organizations 了解更多信息。

我們添加了兩個組織並設置如下:

  • 組織 A:Alice 和 Bob 都是成員。Alice 擁有 admin 角色,Bob 擁有 member 角色。
  • 組織 B:只有 Alice 是成員,她擁有 member 角色。

組織 A

組織 B

在你的應用中請求組織令牌

在你的客戶端應用中,現在你可以從 Logto 請求組織訪問令牌(組織令牌)。組織令牌是一個 JWT 令牌,包含你的服務驗證用戶是否具有組織內權限所需的信息。

請求組織令牌的詳細步驟在 Integrate Organizations with your app 中描述。

假設 Alice 已登錄到你的應用中,她想要在組織 A 中移除一個用戶。你的應用可以請求一個具有 remove:member 權限(範圍)的"組織 A"的組織令牌。Logto 會驗證 Alice 是否在組織中具備該權限,並返回組織令牌,因為她具有 admin 角色:

以下是一些錯誤案例的示例:

  • 如果 Bob 想在組織 A 中移除一個用戶,Logto 會返回錯誤,因為他在組織 A 中沒有 admin 角色。
  • 如果 Alice 想在組織 B 中移除一個用戶,Logto 也會返回錯誤,因為她在組織 B 中沒有 admin 角色。
  • 如果 Bob 想用任何權限請求組織 B 的組織令牌,Logto 會返回錯誤,因為他在組織 B 中沒有成員身份。

當你的應用收到組織令牌後,可以將其添加到 Authorization 標頭中來調用你的服務。

在你的服務中驗證組織令牌

在你的服務中,你可以通過標準的 JWT 驗證流程來驗證組織令牌。查看 Verify organization tokens 獲取更多詳情。

更新組織模板

當你需要更新組織模板時,例如新增一個叫 developer 的新角色,你可以在 Logto Console 或通過 Logto Management API 進行。這一變更將自動應用於所有組織,而不會有任何停機時間。

組織角色新

總結

利用 Logto Organizations,管理和擴展多租戶系統變得標準化和舒適。你可以專注於你的業務邏輯,並將身份和訪問控制交給 Logto。