อัปเดตผลิตภัณฑ์ Logto
🎉 ขอแนะนำเวอร์ชันประจำเดือนกรกฎาคม: Logto API SDK, ตู้นิรภัยสำหรับการจัดเก็บโทเค็นแบบ Federated, จัดการ TOTP และรหัสสำรองผ่าน Account API และอีกมากมาย!
🎉 ขอแนะนำเวอร์ชันประจำเดือนกรกฎาคม: Logto API SDK, ตู้นิรภัยสำหรับการจัดเก็บโทเค็นแบบ Federated, จัดการ TOTP และรหัสสำรองผ่าน Account API และอีกมากมาย!
TypeScript SDK สำหรับใช้งานร่วมกับ Management API ของ Logto โดยใช้การยืนยันตัวตนแบบ client credentials
วิธีการทำงาน:
npm install @logto/apicreateManagementApi() เพื่อสร้าง Management API client ที่มี type สำหรับแอปของคุณด้วย credentialsจุดเด่น:
Secret vault คือโซลูชันการจัดเก็บข้อมูลอย่างปลอดภัยใน Logto สำหรับจัดการข้อมูลผู้ใช้ที่ละเอียดอ่อน เช่น access token, API key, รหัสผ่าน และข้อมูลลับอื่นๆ โดยปกติแล้ว ข้อมูลลับเหล่านี้จะใช้เพื่อเข้าถึงบริการบุคคลที่สามแทนผู้ใช้ ดังนั้นการจัดเก็บอย่างปลอดภัยจึงจำเป็น
ขณะนี้รองรับการจัดเก็บ token สำหรับทั้งคอนเนคเตอร์ SSO แบบโซเชียลและองค์กร เมื่อเปิดใช้งาน Logto จะเก็บ token set ที่ออกโดย identity provider หลังจากการยืนยันตัวตนที่สำเร็จ แอปพลิเคชันสามารถดึง access token นี้ได้ในภายหลัง โดยไม่ต้องให้ผู้ใช้ยืนยันตัวตนอีกครั้ง เพื่อนำไปเรียก API ของบุคคลที่สาม
คอนเนคเตอร์ที่รองรับ:
วิธีการทำงาน:
สำหรับข้อมูลรายละเอียดเพิ่มเติม ดูที่ เอกสารการใช้งาน Secret vault
ตอนนี้ผู้ใช้สามารถเพิ่ม TOTP และรหัสสำรองผ่าน Account API ได้แล้ว
POST /api/my-account/mfa-verifications/totp-secret/generate: สร้าง TOTP secretPOST /api/my-account/mfa-verifications/backup-codes/generate: สร้างรหัสสำรองPOST /api/my-account/mfa-verifications: เพิ่ม TOTP หรือรหัสสำรองโดยใช้ secret หรือโค้ดที่สร้างขึ้นGET /api/my-account/mfa-verifications/backup-codes: ดึงรหัสสำรองscope ที่กำหนดเองตอนสร้าง authorization URL สำหรับคอนเนคเตอร์โซเชียล ทำให้สามารถร้องขอสิทธิ์เพิ่มเติมจากผู้ให้บริการโซเชียลขณะเรียก social verification endpoint ของ Logto ได้ หากมีการระบุ scope จะใช้ค่า scope นั้นในการขออนุญาต มิฉะนั้นจะใช้ scope ค่าเริ่มต้นที่ตั้งไว้ในการตั้งค่าคอนเนคเตอร์เงื่อนไข Foreign key แบบ tenant-aware สำหรับตาราง organization_user_relations
ปัญหา
นักพัฒนาอาจเผลอกำหนด user_id จาก tenant อื่นให้กับองค์กร ทำให้ endpoints ที่เกี่ยวกับผู้ใช้องค์กรเกิดข้อผิดพลาด 500 เดิมที ตาราง organization_user_relations มี foreign key constraint แค่ที่ users (id) จึงสามารถเพิ่ม user ID ใดก็ได้ที่มีอยู่ โดยไม่ขึ้นกับการแยก tenant
สาเหตุหลัก
Logto ใช้ Row Level Security (RLS) กับทุกตารางเพื่อแยกการเข้าถึงข้อมูลตาม tenant เมื่อ join ตาราง users กับ organization_user_relations ข้อมูลจริงของผู้ใช้จะไม่สามารถเข้าถึงได้สำหรับ tenant ปัจจุบันเนื่องจากข้อจำกัด RLS ทำให้ข้อมูลผู้ใช้ตอบกลับเป็น Null และเกิด server error 500
วิธีแก้ไข
ได้เพิ่ม foreign key แบบ composite (tenant_id, user_id) อ้างอิงไปที่ users (tenant_id, id) เพื่อให้ tenant_id ของความสัมพันธ์องค์กร-ผู้ใช้ตรงกับ tenant_id ของผู้ใช้ ซึ่งช่วยบังคับการแยก tenant ที่ถูกต้องในระดับฐานข้อมูล