組織範本
組織範本是一種為多租戶應用程式設計的存取控制方案。它基於 角色型存取控制 (RBAC, Role-Based Access Control) 的基本概念,但針對多租戶環境進行調整,其中組織代表企業、群組或使用者。
在組織層級,需要存取控制來管理資源的權限。
以下是一個使用 Notion 的例子,這是一個受歡迎的協作工具,也是典型的多租戶應用程式。它支援各種 驗證 (Authentication) 和 授權 (Authorization) 功能:
- 你可以使用一個帳戶創建和加入多個工作區,而不需要為每個工作區創建單獨的帳戶。
- Notion 在所有工作區中使用相同的存取層級,如「工作區擁有者」和「成員」,即使你可能期望每個工作區有不同的存取層級。
在本章中,我們將專注於組織範本,這是指在組織層級的授權設計。
要正確設置它,你需要了解組織如何運作以及涉及的不同實體。如果你還沒有查看過,請務必閱讀這些章節。
理解組織範本
組織權限
組織權限是指在組織上下文中執行某個操作的授權。組織權限應以有意義的字串表示,同時作為名稱和唯一識別符。
例如,edit:resource
。
組織權限在沒有組織上下文的情況下是沒有意義的。例如,edit:resource
在組織 org1
的上下文中與在組織 org2
的上下文中是不同的,因為它們指向不同的資源(org1
vs org2
)。
組織角色
組織角色是一組 組織權限 或 API 權限(API 權限直接定義在 Logto Console 的 API 資源 中),可以分配給使用者。

組織角色在沒有組織上下文的情況下是沒有意義的。例如,admin
在組織 org1
的上下文中與在組織 org2
的上下文中是不同的。
組織範本
組織範本是指適用於每個組織的組織權限和角色集合。它被視為組織層級的角色型存取控制。
想像一個典型的協作應用程式,它們自然會共享相同的存取控制「範本」,定義了存取層級以及使用者在組織中可以執行的操作。我們在 Logto 中稱之為「組織範本」。
讓我們舉個例子來理解如何將所有內容連接起來:
John 和 Sarah 在不同的組織中,並在不同的組織上下文中擁有不同的角色。

從這個圖表中,你需要知道以下信息:
- John 隸屬於兩個組織,使用
[email protected]
作為他的唯一識別符。他在Organization A
中擔任admin
,在Organization B
中是guest
。 - Sarah 與一個組織相關聯,使用
[email protected]
作為她的唯一識別符。她是Organization B
的admin
。 Admin
、Member
和Guest
的角色在組織內被指定,這些角色在各個組織中是一致的。- 可以在組織範本設置中創建其他角色。這些新創建的角色將應用並共享於所有組織。
在 Logto 中,組織範本是一種專為組織設計的存取控制模型。雖然它基於角色型存取控制 (RBAC),但適用於不同的場景。
當你需要為組織設置角色和權限時,使用組織範本。
對於沒有組織層級的簡單 B2C 應用程式,請改用使用者/系統層級的 RBAC。
你可以在 Logto 中同時使用 組織範本 和 使用者/系統層級 RBAC,以更強大的方式滿足你的特定業務和產品需求。