授權 (Authorization)
授權 (Authorization) 定義使用者在驗證後可以執行的操作或存取的資源,決定他們在應用程式中可以做什麼。
Logto 授權服務使用 基於權杖的 機制。雖然 Logto 提供 存取權杖 (access token)
,但你的資源伺服器負責驗證並執行它們作為存取控制的一部分。
有兩種類型的 存取權杖 (access tokens):
- 存取權杖 (Access tokens):用於存取使用者/系統 API 資源。
- 組織權杖 (Organization tokens):用於組織資源的特殊存取權杖,當啟用組織功能時,用於多租戶架構。
Logto 提供多種情境的授權服務。以下是幾個典型的使用案例,你可以選擇合適的方案並將其與 Logto 的功能和服務匹配。
情境 | 方法 | 授權流程 |
---|---|---|
簡單保護你的 API 資源,不使用 RBAC。 | 在 Logto Console 中註冊你的 API,Logto 將簡單地授予存取權杖 | Logto 授予 存取權杖 (access token) (不含權限),你需要驗證這些權杖以保護你的 API 資源。 |
使用 RBAC 保護你的 API 資源 | 註冊你的 API 並應用 RBAC 以實現靈活、細粒度的存取控制。 | Logto 授予包含 權限 (permission) 的 存取權杖 (access token) 以保護你的 API 資源。 |
使用組織層級 RBAC(組織模板)保護你的組織資源。 | 將每個組織視為資源,使用組織層級 RBAC(組織模板)在 多租戶 架構中進行存取控制。 | Logto 授予包含 組織權限 (organization permission) 的 組織權杖 (organization token) 以保護組織層級資源。 |
你也可以使用像 自訂權杖宣告 這樣的工具,在存取權杖中包含額外的宣告以滿足你的自訂技術需求。還有更高級的使用案例:使用組織層級 RBAC(組織模板)保護你的 API 資源
熟悉角色型存取控制
角色型存取控制在整個 Logto 基礎設施中使用,涵蓋系統(角色型存取控制)和組織層級(組織 RBAC):
- 主體 (Subjects):可以是真實的使用者(或在組織上下文中的成員)或非人類實體,如機器對機器應用程式。
- API 資源 (API resources):系統中需要保護的資源。
- 角色 (Roles):代表工作職能或責任。
- 權限 (Permissions):定義在特定資源上授權的操作。
管理這些實體及其關係,讓你能靈活滿足存取控制需求。在 Logto 中,你可以在兩個層級使用 RBAC,使用者/系統層級(不涉及中間的組織層),以及組織。在組織上下文中,有一個獨立的 RBAC 設計,我們稱之為「組織模板」。
授權功能
在 Logto Console 中簡單註冊 API 資源並保護你的 API 資源。
使用角色型存取控制 (RBAC) 管理使用者/系統層級的權限,以便於管理和靈活性。
使用組織模板(組織 RBAC)保護你的資源。適用於多租戶產品,角色在組織層級定義。
使用自訂權杖宣告新增自訂宣告以實現屬性型存取控制。
相關資源
RBAC 和 ABAC:你應該知道的存取控制模型Logto 的授權系統及其在身分管理情境中的應用