跳至主要內容

使用 Logto Management API 設定你的應用服務

Logto 提供強大的 Management API,讓你能在應用程式內建立並自訂專屬的組織 (Organization) 流程。 理解其運作方式是設計自訂流程的關鍵。以下為整合 Management API 以實現組織使用體驗的基本步驟與概要。

如果你已熟悉基礎內容,可直接前往 教學。熟悉設定後,還能探索更多 API,根據業務需求調整其餘流程。

建立機器對機器連線

Logto 使用 機器對機器 (M2M, Machine-to-Machine) 驗證 (Authentication),安全地將你的後端服務連接至 Logto Management API 端點。 你的後端服務即可透過 Management API 處理組織相關任務,例如建立組織新增或移除成員等。

步驟如下:

  1. 在 Logto Console 建立一個機器對機器 (M2M) 應用程式
M2M app details
  1. 從 Logto 取得 M2M 存取權杖 (Access token)進一步了解
  2. 從你的後端服務 呼叫 Logto Management API。例如,列出所有組織:
curl \
-X GET https://[tenant_id].logto.app/api/organizations \
-H "Authorization: Bearer $M2M_ACCESS_TOKEN" \
-H "Content-Type: application/json"

保護你的應用伺服器

由於終端使用者可自行執行部分組織操作,因此在終端使用者與應用伺服器之間加入授權 (Authorization) 層至關重要。你可以根據所使用的 Logto Management API 端點及產品 API 架構,選擇全域或組織層級套用此授權層。伺服器應攔截每個請求,驗證使用者的組織權杖 (Organization token) 及所需權限範圍 (Scopes),僅在通過驗證後,才以伺服器持有的 M2M 憑證呼叫 Management API。

當使用者提交組織權杖請求操作(例如建立組織)時,伺服器會先驗證權杖中的權限範圍 (Scopes)。若權杖包含必要權限範圍(如 org:create),則授權請求並透過 M2M 流程呼叫 Logto Management API 建立組織。

若權杖未包含所需權限範圍,則回傳 403 Forbidden 並略過 M2M 邏輯。如此可確保未具備適當權限的使用者無法建立組織。

以下為常見授權 (Authorization) 模式。

使用組織權限 (Organization permissions)

首先,請確保你已在前一節的組織範本中定義組織權限與角色。

接著,確認 Logto 設定中已包含 UserScope.Organizations(值:urn:logto:organization)。以 React SDK 為例:

// src/App.js
import { UserScope } from '@logto/react';

const config = {
endpoint: 'https://<tenant-id>.logto.app/', // 你的 Logto 端點
appId: '40fmibayagoo00lj26coc', // 你的 app id
resources: [
'https://my.company.com/api', // 你的全域 API 資源識別符
],
scopes: [
UserScope.Email,
UserScope.Phone,
UserScope.CustomData,
UserScope.Identities,
UserScope.Organizations, // 請求組織權杖 (Organization token)
],
};

這可確保當呼叫 getOrganizationToken(organizationId) 時,client SDK 會請求包含分配給使用者之組織權限的組織權杖。你的後端服務即可驗證該權杖,並根據這些權限授權後續請求。

關於保護組織層級(非 API)權限,詳見完整指南

使用 API 層級權限 (API-level permissions)

當你的 API 資源與權限為全域註冊,但角色於組織層級定義時(你可在組織範本中將 API 層級權限指派給組織角色),適用此模式。

實作方式與前述相同。務必提供組織 ID 並呼叫 getOrganizationToken(organizationId) 以取得組織權杖,否則不會包含組織權限。

關於保護組織層級 API 權限,詳見完整指南

使用全域 RBAC (Global RBAC)

此情境下,你可利用 Logto Management API 實作系統層級存取控制。

在多租戶環境中,常見模式是設有超級使用者或超級管理員角色。例如,若你以 Logto 建立 SaaS 平台,可能希望有一位超級使用者能直接在自家應用內管理所有客戶組織,無需登入 Logto Console。

此超級使用者可執行更高層級操作,如批次建立或刪除組織,這些操作需超越單一組織範疇的系統權限。為實現此目標,請在 Logto 註冊 API 資源,並結合 Logto Management API,利用全域 RBAC 管理這些權限。

關於 RBAC 整合與存取控制管理,詳見完整指南