配置角色 (Roles)
通過 Logto Console 配置
定義角色類型
在 Logto 中,根據實體的應用對象,角色分為兩種類型:「使用者角色」或「機器對機器應用程式角色」。
- 使用者角色:使用者角色僅可分配給使用者。它可以包含來自你自己的 API 資源的權限。
- 機器對機器角色:M2M 角色僅可分配給機器對機器應用程式。它可以包含你自己的 API 權限和 Logto Management API 權限。機器對機器角色通常用於保護你的機器對機器驗證,例如存取 Logto Management API 或你自己的 API 資源。
創建角色後,無法修改其類型。
創建並定義新角色
角色是一組權限。導航至 Console > Roles,你將看到已定義的角色列表。
- 請記住,雖然技術上可以創建沒有權限或使用者分配的角色,但不建議創建過多空角色。這會破壞角色管理的和諧,並使基於角色的存取控制 (RBAC) 系統失效。
- 權限在選擇器中按 API 分組,允許你批量添加或單獨選擇。
基於角色的存取控制 (RBAC) 在整個 Logto 基礎設施中使用,無論是系統/使用者層級還是組織層級。本章著重於系統/使用者層級的 RBAC。如果需要在組織層級實施 RBAC,請參閱 組織範本。
查看或更新角色
你可以隨時編輯角色名稱和描述,並檢查和管理分配給角色的權限和使用者。
刪除角色將消除對受影響使用者的所有相關權限,並刪除角色、使用者或應用程式與權限之間的連結。
管理角色中的使用者或機器對機器應用程式
根據你選擇的角色類型,你可以在角色詳細資訊頁面上分配或移除使用者或機器對機器應用程式。
點擊「Users」或「Machine-to-machine apps」標籤以查看分配給角色的使用者或應用程式。要繼續將使用者或應用程式添加到角色中,請點擊右上角的「Assign users」或「Assign applications」按鈕。
管理角色中的權限
如果需要更改角色的功能,可以輕鬆地通過分配或移除權限來實現。
如果刪除某個權限,擁有此角色的使用者或應用程式將失去該權限授予的存取權。
管理分配給機器對機器應用程式或使用者的角色
在使用者或應用程式的詳細資訊頁面上,你可以找到「Roles」標籤。點擊該標籤以查看和管理分配給使用者或機器對機器應用程式的角色。
如果 Logto Cloud 中的配置不夠,你可以利用 Management API 以程式化方式執行此管理任務。
通過 Logto Management API 配置
使用 Logto Management API 進行管理。調用相關端點。查看此 參考資料。
方法 | 路徑 | 描述 |
---|---|---|
GET | /api/roles | 使用篩選器和分頁獲取角色。 |
POST | /api/roles | 使用給定數據創建新角色。 |
GET | /api/roles/{Id} | 根據 ID 獲取角色詳細資訊。 |
DELETE | /api/roles/{Id} | 刪除具有給定 ID 的角色。 |
PATCH | /api/roles/{Id} | 更新角色詳細資訊。此方法執行部分更新。 |
GET | /api/roles/{Id}/users | 獲取分配了角色的使用者,並支持分頁。 |
POST | /api/roles/{Id}/users | 將角色分配給一組使用者。角色必須具有 User 類型。 |
DELETE | /api/roles/{Id}/users/{userId} | 從具有給定 ID 的使用者中移除角色。 |
GET | /api/roles/{Id}/applications | 獲取分配了角色的應用程式,並支持分頁。 |
POST | /api/roles/{Id}/applications | 將角色分配給一組應用程式。角色必須具有 Application 類型。 |
DELETE | /api/roles/{Id}/applications/{applicationId} | 從具有給定 ID 的應用程式中移除角色。 |
GET | /api/roles/{Id}/scopes | 獲取與角色相關聯的 API 資源權限範圍 (Scopes)。 |
POST | /api/roles/{Id}/scopes | 將一組 API 資源權限範圍 (Scopes) 連結到角色。原始連結的範圍將被保留。 |
DELETE | /api/roles/{Id}/scopes/{scopeId} | 從具有給定 ID 的角色中取消連結 API 資源權限範圍 (Scope)。 |
預設角色
預設角色是在創建使用者時自動分配的角色,無論是自我註冊還是通過 Management API 創建。你可以在 Console > Roles 下的詳細資訊頁面的「General」標籤中啟用此切換。