跳至主要內容

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

利用 Logto Management API,你可以在應用程式中打造自訂的 組織 (Organization) 流程。以下是整合 Management API 的基本設定步驟。如果你已經熟悉這些內容,可以直接前往 教學

熟悉設定後,你可以探索更多 API,根據業務需求調整其餘流程。

建立機器對機器連線

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

步驟如下:

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

保護你的應用伺服器

由於終端使用者可自行執行部分組織 (Organization) 操作,建議在終端使用者與應用伺服器之間加入授權 (Authorization) 層。伺服器應攔截每個請求,驗證使用者的組織權杖 (Organization token) 及所需權限範圍 (Scopes),僅在通過驗證後,才以伺服器持有的 M2M 憑證呼叫 Management API。

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

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

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

使用組織權限 (Organization permissions)

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

接著,確認 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 資源 (API resource) 識別符
],
scopes: [
UserScope.Email,
UserScope.Phone,
UserScope.CustomData,
UserScope.Identities,
UserScope.Organizations, // 請求組織權杖 (Organization token)
],
};

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

關於保護組織層級(非 API)權限的詳細說明,請參閱 完整指南

混合組織層級權限與 API 層級權限

當你的 API 資源 (API resources) 與權限 (Permissions) 是全域註冊,但角色 (Roles) 則在組織 (Organization) 層級定義時適用(你可以在組織範本中將 API 層級權限指派給組織角色)。

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

關於保護組織層級 API 權限的詳細說明,請參閱 完整指南