授權 (Authorization)
在 Logto 中,授權 (Authorization) 定義了使用者與應用程式在驗證 (Authentication) 後可以做什麼:每個身分 (Identity) 可以存取哪些 API、資源或執行哪些操作。
Logto 為現代 SaaS 與 AI 應用程式提供彈性、基於權杖的授權。你可以在全域或每個組織 (Organization) 的範圍內保護 API 資源 (API resources)。所有權限 (Permissions) 皆透過 角色型存取控制 (RBAC, Role-based Access Control) 系統管理,並透過 組織範本 (Organization template) 進階支援多租戶應用。除了控制使用者能做什麼外,你也可以利用 應用程式層級存取控制 (App-level access control) 限制哪些使用者能登入每個應用程式。
核心概念
- 角色型存取控制 (RBAC, Role-based Access Control): Logto 以 RBAC 為基礎,將權限 (Permissions) 指派給使用者、用戶端與服務。深入瞭解 RBAC。
- API 資源 (API resource): 你想保護的任何後端服務或端點(全域或組織專屬)。
- 角色 (Role): 一組權限(例如 admin、viewer、editor)。
- 權限 (Permission, scope): 具體允許的操作(例如
read:report、invite:member)。 - 組織 (Organization): 代表應用程式中的租戶、工作區或客戶。這與 Logto 租戶(tenant)不同,後者指的是你的整體 Logto 專案或實例。
- 組織範本 (Organization template): 針對多租戶應用,定義可重複使用的角色與權限組,套用於所有組織。瞭解組織範本如何運作。
- 存取權杖 (Access token) / 組織權杖 (Organization token): 內含全域或組織範圍權限宣告 (Claims) 的權杖。
授權情境
Logto 主要有三種授權模式,請選擇符合你需求的情境:
| 情境 | 適用時機 | 權杖類型 | 角色設定方式 | 進一步瞭解 |
|---|---|---|---|---|
| 全域 API 資源權限 | 保護整個 Logto 租戶共用的 API 資源(非組織專屬) | 存取權杖 (Access token) | 指派全域角色 / 權限 | 保護全域 API 資源 |
| 組織(非 API)權限 | 控制組織專屬操作、UI 功能或商業邏輯(非 API) | 組織權杖 (Organization token) | 指派組織角色 / 權限以控管應用程式功能 | 保護組織(非 API)權限 |
| 組織層級 API 資源權限 | 保護僅特定組織可存取的 API 資源 | 組織權杖 (Organization token) | 指派組織角色 / 權限以控管組織 API | 保護組織層級 API 資源 |
Logto 依據 RFC 8707 建模 API 資源,於 OAuth 2.0 授權流程中使用 resource 參數。這讓你能輕鬆保護多個 API 或微服務,並確保與其他標準系統相容。
這些模式控制使用者在登入應用程式後可以做什麼。若要控制使用者是否能登入特定應用程式,請使用 應用程式層級存取控制 (App-level access control)。它可根據使用者、角色、組織或組織角色設定允許規則,並獨立於上述基於權杖的模式運作。
需要自訂宣告 (Claims) 或進階存取控制?請參閱 自訂權杖宣告 (Custom token claims)。
Logto 授權運作方式
-
基於權杖 (Token-based): 每次存取皆透過安全、簽章的存取權杖 (Access token) 授權。你的後端驗證權杖並強制執行權限(權限範圍,scopes)。
-
全域 vs. 組織權限(權限範圍,scope):
- 全域 權限(scope):控管整個 Logto 租戶下 API 資源的存取。
- 組織 權限(scope):控管組織範圍內的商業邏輯(應用功能)與 API 資源。組織權限可應用於非 API 功能(如 UI 元素或工作流程)及 / 或組織專屬 API 端點。
-
角色與權限(權限範圍,scopes): 角色為權限(scopes)的集合。可依情境將角色指派給使用者或用戶端(全域或組織範圍)。
下一步
準備好更進一步了嗎?立即動手實作、探索實戰指南,或深入理解:
精通角色與權限,實現細緻的存取控制。
學習如何為多租戶應用設定可重複使用的角色與權限。
以全域角色與權限保護你的 Logto 租戶共用 API。
以組織角色控管組織專屬操作與 UI 功能。
以組織角色保護特定組織可存取的 API。
學習如何在後端驗證 Logto 權杖以保護 API。
以使用者、角色、組織與組織角色限制每個應用程式可登入的對象。
學習如何新增自訂宣告以支援進階存取控制情境。
使用案例
想找實用範例與真實情境?請參考以下指南:
逐步示範如何以 RBAC 實現安全授權。
跟隨完整指南學習多租戶 SaaS 架構與實作。