跳至主要內容

授權 (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:reportinvite: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)的集合。可依情境將角色指派給使用者或用戶端(全域或組織範圍)。

下一步

準備好更進一步了嗎?立即動手實作、探索實戰指南,或深入理解:

使用案例

想找實用範例與真實情境?請參考以下指南:

延伸閱讀

RBAC 與 ABAC:你應該知道的存取控制模型 什麼時候該用 JWT? API 授權方法