ข้ามไปยังเนื้อหาหลัก

ตั้งค่าบริการแอปของคุณด้วย Logto Management API

Logto มี Management API ที่ทรงพลัง ช่วยให้คุณสร้างและปรับแต่งประสบการณ์องค์กรของคุณเองภายในแอป การเข้าใจวิธีการทำงานเป็นกุญแจสำคัญในการออกแบบการตั้งค่าที่กำหนดเองของคุณ ด้านล่างนี้คือขั้นตอนพื้นฐานและโครงร่างสำหรับการผสาน Management API เพื่อสร้างประสบการณ์องค์กรของคุณ

หากคุณทราบพื้นฐานแล้ว สามารถข้ามไปที่ คู่มือ ได้เลย เมื่อคุณคุ้นเคยกับการตั้งค่าแล้ว คุณสามารถสำรวจ API อื่น ๆ เพื่อปรับแต่ง flow ที่เหลือให้เหมาะกับความต้องการทางธุรกิจของคุณ

สร้างการเชื่อมต่อเครื่องต่อเครื่อง (Machine-to-machine)

Logto ใช้ การยืนยันตัวตนระหว่างเครื่อง (Machine‑to‑machine; M2M) เพื่อเชื่อมต่อบริการ backend ของคุณกับ Logto Management API endpoint อย่างปลอดภัย จากนั้นบริการ backend ของคุณสามารถใช้ Management API เพื่อจัดการงานที่เกี่ยวข้องกับองค์กร เช่น สร้างองค์กร, เพิ่มหรือลบสมาชิก และอื่น ๆ

ขั้นตอนประกอบด้วย:

  1. สร้างแอป Machine-to-Machine (M2M) ใน Logto Console
รายละเอียดแอป M2M
  1. ขอรับ M2M access token จาก Logto เรียนรู้เพิ่มเติม
  2. เรียกใช้ Logto Management APIs จากบริการ backend ของคุณ ตัวอย่างเช่น แสดงรายการองค์กรทั้งหมด:
curl \
-X GET https://[tenant_id].logto.app/api/organizations \
-H "Authorization: Bearer $M2M_ACCESS_TOKEN" \
-H "Content-Type: application/json"

ปกป้องเซิร์ฟเวอร์แอปของคุณ

เนื่องจากผู้ใช้ปลายทางสามารถดำเนินการบางอย่างเกี่ยวกับองค์กรได้ด้วยตนเอง จึงควรเพิ่มชั้นการอนุญาต (Authorization) ระหว่างผู้ใช้ปลายทางกับเซิร์ฟเวอร์แอปของคุณ\คุณสามารถใช้ชั้นนี้ในระดับ global หรือระดับองค์กร ขึ้นอยู่กับว่าใช้ Logto Management API endpoint ใดและโครงสร้าง API ของผลิตภัณฑ์ของคุณเป็นอย่างไร เซิร์ฟเวอร์ควรเป็นตัวกลางในทุกคำขอ ตรวจสอบโทเค็นองค์กรของผู้ใช้และขอบเขตที่ต้องการ และใช้ข้อมูลประจำตัว M2M ที่เซิร์ฟเวอร์ถืออยู่เพื่อเรียก Management API เท่านั้น

เมื่อผู้ใช้ส่ง organization token เพื่อขอดำเนินการ (เช่น สร้างองค์กร) เซิร์ฟเวอร์จะตรวจสอบขอบเขตในโทเค็นก่อน หากโทเค็นมีขอบเขตที่จำเป็น เช่น org:create ให้อนุญาตคำขอและเรียก Logto Management API ผ่าน flow M2M เพื่อสร้างองค์กร

หากโทเค็นไม่มีขอบเขตที่ต้องการ ให้ส่งกลับ 403 Forbidden และข้ามตรรกะ M2M เพื่อให้แน่ใจว่าผู้ใช้ที่ไม่มีสิทธิ์จะไม่สามารถสร้างองค์กรได้

ด้านล่างนี้คือลักษณะการอนุญาตที่พบบ่อย

การใช้สิทธิ์ขององค์กร (Organization permissions)

ก่อนอื่น ตรวจสอบให้แน่ใจว่าคุณได้กำหนดสิทธิ์และบทบาทขององค์กรไว้ในเทมเพลตองค์กรใน หัวข้อก่อนหน้า

จากนั้น ตรวจสอบให้แน่ใจว่า UserScope.Organizations (ค่า: urn:logto:organization) ถูกเพิ่มใน config ของ Logto ยกตัวอย่าง React SDK:

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

const config = {
endpoint: 'https://<tenant-id>.logto.app/', // Logto endpoint ของคุณ
appId: '40fmibayagoo00lj26coc', // app id ของคุณ
resources: [
'https://my.company.com/api', // ตัวระบุทรัพยากร API ระดับ global ของคุณ
],
scopes: [
UserScope.Email,
UserScope.Phone,
UserScope.CustomData,
UserScope.Identities,
UserScope.Organizations, // ขอ organization token
],
};

สิ่งนี้จะทำให้เมื่อเรียก getOrganizationToken(organizationId) client SDK จะขอ organization token ที่มีสิทธิ์ขององค์กรที่กำหนดให้กับผู้ใช้ บริการ backend ของคุณสามารถตรวจสอบโทเค็นและอนุญาตคำขอถัดไปตามสิทธิ์เหล่านี้

สำหรับรายละเอียดเกี่ยวกับการปกป้องสิทธิ์ระดับองค์กร (ที่ไม่ใช่ API) ดู คู่มือฉบับเต็ม

การใช้สิทธิ์ระดับ API (API-level permissions)

กรณีนี้ใช้เมื่อทรัพยากร API และสิทธิ์ของคุณถูกลงทะเบียนในระดับ global แต่บทบาทถูกกำหนดในระดับองค์กร (คุณสามารถกำหนดสิทธิ์ระดับ API ให้กับบทบาทองค์กรในเทมเพลตองค์กรได้)

การใช้งานเหมือนกับหัวข้อก่อนหน้าเสมอ ให้ระบุ organization ID และเรียก getOrganizationToken(organizationId) เพื่อดึง organization token มิฉะนั้นสิทธิ์ขององค์กรจะไม่ถูกรวมอยู่ด้วย

สำหรับรายละเอียดเกี่ยวกับการปกป้องสิทธิ์ API ระดับองค์กร ดู คู่มือฉบับเต็ม

การใช้ RBAC ระดับ global

ในกรณีนี้ คุณสามารถใช้ Logto Management API เพื่อสร้างการควบคุมการเข้าถึงระดับระบบ

ในสภาพแวดล้อมแบบหลายผู้เช่า (multi-tenant) รูปแบบที่พบบ่อยคือมี superuser หรือ super admin ตัวอย่างเช่น หากคุณกำลังสร้างแพลตฟอร์ม SaaS ด้วย Logto คุณอาจต้องการ superuser ที่สามารถจัดการองค์กรลูกค้าทั้งหมดได้โดยตรงในแอปของคุณเอง โดยไม่ต้องเข้าสู่ระบบ Logto Console

superuser นี้สามารถดำเนินการระดับสูง เช่น สร้างหรือลบองค์กรจำนวนมาก ซึ่งต้องใช้สิทธิ์ระดับระบบที่กว้างกว่าขอบเขตขององค์กรใด ๆ เพื่อเปิดใช้งานสิ่งนี้ ให้ลงทะเบียนทรัพยากร API ใน Logto พร้อมใช้ Logto Management API และใช้ RBAC ระดับ global เพื่อจัดการสิทธิ์เหล่านี้

สำหรับรายละเอียดเพิ่มเติมเกี่ยวกับการผสานและจัดการการควบคุมการเข้าถึงสำหรับ RBAC ดู คู่มือฉบับเต็ม