跳至主要內容

組織範本

組織範本是一種為多租戶應用程式設計的存取控制方案。它基於 角色型存取控制 (RBAC, Role-Based Access Control) 的基本概念,但針對多租戶環境進行調整,其中組織代表企業、群組或使用者。

在組織層級,需要存取控制來管理資源的權限。

以下是一個使用 Notion 的例子,這是一個受歡迎的協作工具,也是典型的多租戶應用程式。它支援各種 驗證 (Authentication)授權 (Authorization) 功能:

  • 你可以使用一個帳戶創建和加入多個工作區,而不需要為每個工作區創建單獨的帳戶。
  • Notion 在所有工作區中使用相同的存取層級,如「工作區擁有者」和「成員」,即使你可能期望每個工作區有不同的存取層級。

在本章中,我們將專注於組織範本,這是指在組織層級的授權設計。

要正確設置它,你需要了解組織如何運作以及涉及的不同實體。如果你還沒有查看過,請務必閱讀這些章節。

理解組織範本

組織權限

組織權限是指在組織上下文中執行某個操作的授權。組織權限應以有意義的字串表示,同時作為名稱和唯一識別符。

Organization Permissions

例如,edit:resource

組織權限在沒有組織上下文的情況下是沒有意義的。例如,edit:resource 在組織 org1 的上下文中與在組織 org2 的上下文中是不同的,因為它們指向不同的資源(org1 vs org2)。

組織角色

組織角色是一組 組織權限API 權限(API 權限直接定義在 Logto Console 的 API 資源 中),可以分配給使用者。

Organization Roles

組織角色在沒有組織上下文的情況下是沒有意義的。例如,admin 在組織 org1 的上下文中與在組織 org2 的上下文中是不同的。

備註:

我可以將在 API 資源層級定義的權限分配給組織角色嗎?

是的,你可以將 API 權限 分配給組織角色,而不僅僅是 組織層級權限

Logto Cloud 中的 API 資源 主要保護使用者/系統層級資源,但當系統和組織共享端點時,Logto 允許你將 API 權限分配給組織角色以增加靈活性。

組織範本

組織範本是指適用於每個組織的組織權限和角色集合。它被視為組織層級的角色型存取控制。

想像一個典型的協作應用程式,它們自然會共享相同的存取控制「範本」,定義了存取層級以及使用者在組織中可以執行的操作。我們在 Logto 中稱之為「組織範本」。

讓我們舉個例子來理解如何將所有內容連接起來:

JohnSarah 在不同的組織中,並在不同的組織上下文中擁有不同的角色。

Organization Template

從這個圖表中,你需要知道以下信息:

  1. John 隸屬於兩個組織,使用 [email protected] 作為他的唯一識別符。他在 Organization A 中擔任 admin,在 Organization B 中是 guest
  2. Sarah 與一個組織相關聯,使用 [email protected] 作為她的唯一識別符。她是 Organization Badmin
  3. AdminMemberGuest 的角色在組織內被指定,這些角色在各個組織中是一致的。
  4. 可以在組織範本設置中創建其他角色。這些新創建的角色將應用並共享於所有組織。
備註:

在 Logto 中,組織範本是一種專為組織設計的存取控制模型。雖然它基於角色型存取控制 (RBAC),但適用於不同的場景。

當你需要為組織設置角色和權限時,使用組織範本。

對於沒有組織層級的簡單 B2C 應用程式,請改用使用者/系統層級的 RBAC。

你可以在 Logto 中同時使用 組織範本使用者/系統層級 RBAC,以更強大的方式滿足你的特定業務和產品需求。

案例研究:使用 Logto 組織構建多租戶