跳至主要內容

組織範本 (Organization template)

Logto 中的 組織範本 (organization template) 定義了你 SaaS 產品中每個組織(租戶)都可用的一致「角色 (Roles)」與「權限 (Permissions)」集合。透過集中管理這些定義,你可以強化安全性、實現可擴展的導入流程,並確保所有組織都擁有優異的使用體驗。

資訊:

如果你不是在開發多租戶應用程式,或不需要組織專屬的角色/權限,可以略過本節。Logto 的全域角色與權限已足夠應用於單租戶或非組織型應用程式。

什麼是組織範本 (Organization template)?

組織範本是一份藍圖,指定每個組織可用的角色與權限。你在 Logto 租戶中建立的每個組織都會自動繼承這份範本,確保所有租戶都擁有一致的授權 (Authorization) 模型。

  • 為什麼要使用範本?
    • 強制每個組織遵循統一的存取控制政策。
    • 簡化新租戶與團隊成員的導入流程。
    • 隨著產品成長,讓角色型存取控制 (RBAC, Role-based access control) 的更新與稽核更容易。

核心概念

  • 組織角色 (Organization roles): 指派給組織內使用者或 M2M(機器對機器)客戶端的權限集合。角色定義了「誰可以在組織內做什麼」。
  • 組織權限 (Organization permissions): 可指派給角色的細緻非 API 行為(如 UI 功能、商業邏輯)。
  • API 資源 (API resources): 受權限保護的 API 端點/服務。組織角色可連結 API 資源,以取得組織範圍的 API 存取權。
  • 角色-權限對應 (Role-permission mapping): 範本中的每個組織角色都可對應一個或多個權限。
  • 範本傳播 (Template propagation): 範本的變更會同步更新所有組織可用的角色與權限。
備註:

組織角色與權限(包含 API 資源權限)與全域角色及其權限是分開管理的。不過,API 資源及其權限是集中定義,可同時在全域與組織情境中引用。

與全域角色/權限的比較

角色類型比較 (Role type comparison)

角色類型 (Role type)可擁有 API 資源權限?可擁有組織(非 API)權限?
全域 (Global)
組織 (Organization)

權限類型比較 (Permissions type comparison)

權限類型 (Permission type)定義於 (Defined in)可指派給全域角色?可指派給組織角色?
API 資源 (API resource)API 資源實體 (API resource entity)
組織 (Organization)組織範本 (Organization template)

組織範本結構說明 (Anatomy of an organization template)

組織範本由以下部分組成:

  • 角色 (Roles): 例如 AdminMemberViewerBilling
  • 組織權限 (Organization permissions): 例如 invite:membermanage:billingview:analytics
  • 角色-權限矩陣 (Role-permission matrix): 每個角色可獲得哪些權限(包含組織權限與 API 資源權限)的對應關係。

視覺化總覽 (Visual overview)

Organization template overview

此圖說明組織角色、權限與 API 資源如何在 Logto 組織範本中串連。 (This diagram illustrates how organization roles, permissions, and API resources connect in a Logto organization template.)

每個在 Logto 建立的組織都會擁有這套角色與權限,並可依需求為使用者/客戶端指派角色。

在你的產品中使用組織範本

Logto 的組織範本專為現代多租戶 SaaS 應用設計,適用於:

  • 每個組織都應有相同的角色與權限選項,以利導入、協作與管理。
  • 你希望避免為每個新組織手動定義角色/權限。
  • 一致的 RBAC 對合規、安全與客戶信任至關重要。
  • 你需要隨產品變動調整存取控制,且不影響現有組織。

範例應用情境 (Example use cases)

  • 提供工作區、團隊或公司(每個為一租戶)的 SaaS 產品。
  • 每個組織有細緻管理員/成員/檢視者角色的平台。
  • 同時有 API 與非 API 權限的產品。

最佳實踐與版本管理 (Best practices & versioning)

  • 以業務為導向設計角色與權限: 使用能對應實際行為的清楚名稱(不僅僅是技術端點)。
  • 避免角色/權限氾濫: 從簡單開始,僅在產品真正需要時新增新角色/權限。
  • 溝通變更: 若組織內的角色或權限即將變動,請通知使用者/管理員。
  • 持續演進範本: 產品成長時,隨時可更新範本,所有組織都會自動取得新角色/權限。
  • 版本管理(選用): 重大變更時,建議為範本加上版本號,並與客戶溝通遷移計畫。

管理你的組織範本

你可以在 Console → 組織範本 (Organization template) 或透過 Logto Management API 管理組織範本。

  • 建立角色: 將使用者角色與 M2M 角色加入範本,每個角色對所有組織皆可用。
  • 建立權限: 定義 API 資源與非 API(應用內)行為的權限。
  • 編輯角色-權限矩陣: 透過 Logto Console 或 Management API 指派權限給角色。
  • 更新或刪除角色/權限: 範本變更會自動套用到所有組織。(使用者/客戶端的角色指派不變,僅權限集合會變動。)

管理組織角色與權限的詳細步驟,請參閱 角色型存取控制 (Role-based access control)

常見問題 (FAQs)

我一定要用組織權限嗎?

不用,組織權限是選用的。你也可以僅用組織範本來定義角色與 API 資源權限。

如果我更改組織範本會怎樣?

角色或權限的變更會立即反映到所有組織。使用者與客戶端的角色指派不變,僅角色所擁有的權限可能會變動。

可以針對每個組織自訂角色或權限嗎?

無法直接自訂。組織範本強制所有租戶遵循一致模型。(你仍可在每個組織內為不同使用者/客戶端指派不同角色。)

如何回滾或遷移變更?

手動更新範本以還原先前的角色/權限。若為複雜遷移,建議採用版本管理策略。

如果我刪除角色或權限會怎樣?

擁有該角色的使用者/客戶端將失去與其綁定的權限。刪除權限會從所有擁有該權限的角色中移除。

有什麼限制嗎?

自訂僅限於範本層級,無法針對單一組織。聯絡我們 以討論進階的每租戶例外需求。

延伸閱讀 (Further reading)

保護組織(非 API)權限 保護組織層級 API 資源 自訂權杖宣告 (Customizing token claims)