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

ตั้งค่าบริการแอปของคุณด้วย 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 ดู คู่มือฉบับเต็ม