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

การตั้งค่าบัญชีผู้ใช้ด้วย Management API

การเชื่อมต่อระบบ (Integrations)​

Logto มี Management API หลากหลายสำหรับจัดการบัญชีผู้ใช้ คุณสามารถใช้ API เหล่านี้เพื่อสร้างหน้าตั้งค่าบัญชีแบบบริการตนเองสำหรับผู้ใช้ปลายทาง

สถาปัตยกรรม (Architecture)​

  1. ผู้ใช้: ผู้ใช้ที่ได้รับการยืนยันตัวตนซึ่งต้องการเข้าถึงและจัดการการตั้งค่าบัญชีของตน
  2. แอปพลิเคชันฝั่งลูกข่าย: แอปพลิเคชันของคุณที่ให้บริการหน้าตั้งค่าบัญชีแก่ผู้ใช้
  3. แอปพลิเคชันฝั่งเซิร์ฟเวอร์: แอปพลิเคชันฝั่งเซิร์ฟเวอร์ที่ให้บริการ API ตั้งค่าบัญชีแก่ฝั่งลูกข่าย และติดต่อกับ Logto Management API
  4. Logto: Logto ในฐานะบริการการยืนยันตัวตน (Authentication) และการอนุญาต (Authorization) ให้บริการ Management API สำหรับจัดการบัญชีผู้ใช้

ลำดับขั้นตอน (Sequence diagram)​

  1. ผู้ใช้เข้าถึงแอปพลิเคชันฝั่งลูกข่าย
  2. แอปฝั่งลูกข่ายส่งคำขอการยืนยันตัวตน (Authentication request) ไปยัง Logto และเปลี่ยนเส้นทางผู้ใช้ไปยังหน้าลงชื่อเข้าใช้ของ Logto
  3. ผู้ใช้ลงชื่อเข้าใช้ Logto
  4. ผู้ใช้ที่ได้รับการยืนยันตัวตนจะถูกเปลี่ยนเส้นทางกลับไปยังแอปฝั่งลูกข่ายพร้อมรหัสการอนุญาต (authorization code)
  5. แอปฝั่งลูกข่ายขอโทเค็นการเข้าถึง (Access token) จาก Logto สำหรับเข้าถึง API ตั้งค่าบัญชีแบบโฮสต์เอง
  6. Logto ออกโทเค็นการเข้าถึงให้แอปฝั่งลูกข่าย
  7. แอปฝั่งลูกข่ายส่งคำขอตั้งค่าบัญชีไปยังแอปฝั่งเซิร์ฟเวอร์พร้อมโทเค็นการเข้าถึงของผู้ใช้
  8. แอปฝั่งเซิร์ฟเวอร์ตรวจสอบตัวตนและสิทธิ์ของผู้ร้องขอจากโทเค็นการเข้าถึงของผู้ใช้ จากนั้นขอโทเค็นการเข้าถึง Management API จาก Logto
  9. Logto ออกโทเค็นการเข้าถึง Management API ให้แอปฝั่งเซิร์ฟเวอร์
  10. แอปฝั่งเซิร์ฟเวอร์ขอข้อมูลผู้ใช้จาก Logto โดยใช้โทเค็นการเข้าถึง Management API
  11. Logto ตรวจสอบตัวตนของเซิร์ฟเวอร์และสิทธิ์ Management API แล้วส่งข้อมูลผู้ใช้กลับมา
  12. แอปฝั่งเซิร์ฟเวอร์ประมวลผลข้อมูลผู้ใช้ตามสิทธิ์ของผู้ร้องขอและส่งรายละเอียดบัญชีผู้ใช้กลับไปยังแอปฝั่งลูกข่าย

การเชื่อมต่อ Management API กับแอปฝั่งเซิร์ฟเวอร์​

ดูหัวข้อ Management API เพื่อเรียนรู้วิธีเชื่อมต่อ Management API กับแอปพลิเคชันฝั่งเซิร์ฟเวอร์

User Management APIs​

สคีมาข้อมูลผู้ใช้ (User data schema)​

ดูหัวข้อ ข้อมูลผู้ใช้และข้อมูลกำหนดเอง เพื่อเรียนรู้เพิ่มเติมเกี่ยวกับสคีมาผู้ใช้ใน Logto

การจัดการโปรไฟล์และตัวระบุผู้ใช้ (User profile and identifiers Management APIs)​

โปรไฟล์และตัวระบุของผู้ใช้เป็นสิ่งสำคัญสำหรับการจัดการผู้ใช้ คุณสามารถใช้ API ต่อไปนี้เพื่อจัดการโปรไฟล์และตัวระบุผู้ใช้

methodpathdescription
GET/api/users/{userId}รับรายละเอียดผู้ใช้ตาม user ID
PATCH/api/users/{userId}อัปเดตรายละเอียดผู้ใช้
PATCH/api/users/{userId}/profileอัปเดตฟิลด์โปรไฟล์ผู้ใช้ตาม user ID
GET/api/users/{userId}/custom-dataรับข้อมูลกำหนดเองของผู้ใช้ตาม user ID
PATCH/api/users/{userId}/custom-dataอัปเดตข้อมูลกำหนดเองของผู้ใช้ตาม user ID
PATCH/api/users/{userId}/is-suspendedอัปเดตสถานะระงับบัญชีผู้ใช้ตาม user ID

การยืนยันอีเมลและหมายเลขโทรศัพท์ (Email and phone number verification)​

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

บันทึก:

โปรดตรวจสอบให้แน่ใจว่ายืนยันอีเมลหรือหมายเลขโทรศัพท์ก่อนอัปเดตโปรไฟล์ผู้ใช้ด้วยอีเมลหรือหมายเลขโทรศัพท์ใหม่

methodpathdescription
POST/api/verifications/verification-codeส่งรหัสยืนยันอีเมลหรือหมายเลขโทรศัพท์
POST/api/verifications/verification-code/verifyยืนยันอีเมลหรือหมายเลขโทรศัพท์ด้วยรหัสยืนยัน

การจัดการรหัสผ่านผู้ใช้ (User password management)​

methodpathdescription
POST/api/users/{userId}/password/verifyตรวจสอบรหัสผ่านปัจจุบันของผู้ใช้ตาม user ID
PATCH/api/users/{userId}/passwordอัปเดตรหัสผ่านผู้ใช้ตาม user ID
GET/api/users/{userId}/has-passwordตรวจสอบว่าผู้ใช้มีรหัสผ่านหรือไม่ตาม user ID
บันทึก:

โปรดตรวจสอบรหัสผ่านปัจจุบันของผู้ใช้ก่อนอัปเดตรหัสผ่านใหม่

การจัดการตัวตนโซเชียลของผู้ใช้ (User social identities management)​

methodpathdescription
GET/api/users/{userId}รับรายละเอียดผู้ใช้ตาม user ID ตัวตนโซเชียลจะอยู่ในฟิลด์ identities
POST/api/users/{userId}/identitiesเชื่อมโยงตัวตนโซเชียลที่ได้รับการยืนยันกับผู้ใช้ตาม user ID
DELETE/api/users/{userId}/identitiesยกเลิกการเชื่อมโยงตัวตนโซเชียลออกจากผู้ใช้ตาม user ID
PUT/api/users/{userId}/identitiesอัปเดตตัวตนโซเชียลที่เชื่อมโยงกับผู้ใช้โดยตรงตาม user ID
POST/api/connectors/{connectorId}/authorization-uriรับ authorization URI สำหรับผู้ให้บริการตัวตนโซเชียล ใช้ URI นี้เพื่อเริ่มการเชื่อมต่อบัญชีโซเชียลใหม่
  1. ผู้ใช้เข้าถึงแอปฝั่งลูกข่ายและขอเชื่อมโยงบัญชีโซเชียล
  2. แอปฝั่งลูกข่ายส่งคำขอไปยังเซิร์ฟเวอร์เพื่อเชื่อมโยงบัญชีโซเชียล
  3. เซิร์ฟเวอร์ส่งคำขอไปยัง Logto เพื่อขอ authorization URI สำหรับผู้ให้บริการตัวตนโซเชียล คุณต้องระบุ state และ redirect_uri ของคุณเองในคำขอ และต้องลงทะเบียน redirect_uri กับผู้ให้บริการตัวตนโซเชียลไว้ล่วงหน้า
  4. Logto ส่งคืน authorization URI ให้เซิร์ฟเวอร์
  5. เซิร์ฟเวอร์ส่ง authorization URI ให้แอปฝั่งลูกข่าย
  6. แอปฝั่งลูกข่ายเปลี่ยนเส้นทางผู้ใช้ไปยัง authorization URI ของ IdP
  7. ผู้ใช้ลงชื่อเข้าใช้ IdP
  8. IdP เปลี่ยนเส้นทางผู้ใช้กลับไปยังแอปฝั่งลูกข่ายโดยใช้ redirect_uri พร้อม authorization code
  9. แอปฝั่งลูกข่ายตรวจสอบ state และส่งต่อการตอบกลับจาก IdP ไปยังเซิร์ฟเวอร์
  10. เซิร์ฟเวอร์ส่งคำขอไปยัง Logto เพื่อเชื่อมโยงบัญชีโซเชียลกับผู้ใช้
  11. Logto ขอข้อมูลผู้ใช้จาก IdP โดยใช้ authorization code
  12. IdP ส่งคืนข้อมูลผู้ใช้ให้ Logto และ Logto เชื่อมโยงบัญชีโซเชียลกับผู้ใช้
บันทึก:

มีข้อจำกัดบางประการที่ควรพิจารณาเมื่อเชื่อมโยงบัญชีโซเชียลใหม่กับผู้ใช้:

  • Management API ไม่มี session context ใด ๆ ตัวเชื่อมต่อโซเชียลที่ต้องการ session ที่ใช้งานอยู่เพื่อรักษาสถานะการยืนยันตัวตนโซเชียลอย่างปลอดภัยจะไม่สามารถเชื่อมโยงผ่าน Management API ได้ ตัวเชื่อมต่อที่ไม่รองรับ เช่น apple, OIDC มาตรฐาน และ OAuth 2.0 มาตรฐาน
  • ด้วยเหตุผลเดียวกัน Logto ไม่สามารถตรวจสอบ state ในการตอบกลับ authorization ได้ โปรดจัดเก็บ state ในแอปฝั่งลูกข่ายของคุณและตรวจสอบเมื่อได้รับการตอบกลับ authorization
  • คุณต้องลงทะเบียน redirect_uri กับผู้ให้บริการตัวตนโซเชียลล่วงหน้า มิฉะนั้น IdP โซเชียลจะไม่เปลี่ยนเส้นทางผู้ใช้กลับไปยังแอปของคุณ IdP โซเชียลของคุณต้องรองรับ callback redirect_uri มากกว่าหนึ่งรายการ ได้แก่ สำหรับการลงชื่อเข้าใช้ผู้ใช้ และสำหรับหน้าผูกบัญชีโปรไฟล์ของคุณเอง

การจัดการตัวตนองค์กรของผู้ใช้ (User enterprise identities management)​

methodpathdescription
GET/api/users/{userId}?includeSsoIdentities=trueรับรายละเอียดผู้ใช้ตาม user ID ตัวตนองค์กรจะอยู่ในฟิลด์ ssoIdentities เพิ่ม query parameter includeSsoIdentities=true ใน API เพื่อแสดงข้อมูลนี้

ปัจจุบัน Management API ยังไม่รองรับการเชื่อมโยงหรือยกเลิกการเชื่อมโยงตัวตนองค์กรกับผู้ใช้ คุณสามารถแสดงเฉพาะตัวตนองค์กรที่เชื่อมโยงกับผู้ใช้ได้เท่านั้น

โทเค็นการเข้าถึงส่วนบุคคล (Personal access token)​

methodpathdescription
GET/api/users/{userId}/personal-access-tokensรับโทเค็นการเข้าถึงส่วนบุคคลทั้งหมดของผู้ใช้
POST/api/users/{userId}/personal-access-tokensเพิ่มโทเค็นการเข้าถึงส่วนบุคคลใหม่ให้ผู้ใช้
DELETE/api/users/{userId}/personal-access-tokens/{name}ลบโทเค็นของผู้ใช้ตามชื่อ
PATCH/api/users/{userId\s}/personal-access-tokens/{name}อัปเดตโทเค็นของผู้ใช้ตามชื่อ

โทเค็นการเข้าถึงส่วนบุคคลเป็นวิธีที่ปลอดภัยสำหรับผู้ใช้ในการให้ โทเค็นการเข้าถึง (Access token) โดยไม่ต้องใช้ข้อมูลรับรองหรือการลงชื่อเข้าใช้แบบโต้ตอบ ดูเพิ่มเติมเกี่ยวกับ การใช้โทเค็นการเข้าถึงส่วนบุคคล

การจัดการการตั้งค่า MFA ของผู้ใช้ (User MFA settings management)​

methodpathdescription
GET/api/users/{userId}/mfa-verificationsรับการตั้งค่า MFA ของผู้ใช้ตาม user ID
POST/api/users/{userId}/mfa-verificationsตั้งค่าการยืนยันตัวตนหลายปัจจัย (MFA) ให้ผู้ใช้ตาม user ID
DELETE/api/users/{userId}/mfa-verifications/{verificationId}ลบการยืนยัน MFA ของผู้ใช้ตาม ID

การลบบัญชีผู้ใช้ (User account deletion)​

methodpathdescription
DELETE/api/users/{userId}ลบบัญชีผู้ใช้ตาม user ID