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

โดเมนแบบกำหนดเอง

บันทึก:

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

Tenant ของ Logto ของคุณจะมาพร้อมกับโดเมนฟรีเริ่มต้น {{tenant-id}}.app.logto อย่างไรก็ตาม คุณสามารถยกระดับประสบการณ์ผู้ใช้และการจดจำแบรนด์ของคุณได้ด้วยการใช้โดเมนแบบกำหนดเอง เช่น auth.example.com

โดเมนแบบกำหนดเองของคุณจะถูกใช้ในหลายฟังก์ชัน เช่น:

หลายโดเมนแบบกำหนดเอง

ขณะนี้ Logto รองรับการตั้งค่า หลายโดเมนแบบกำหนดเอง สำหรับ tenant เดียว ทำให้หน้าลงชื่อเข้าใช้ของคุณเข้าถึงได้จากหลายโดเมนแบรนด์

ข้อจำกัดตามแผนการใช้งาน:

  • Development tenant: เพิ่มโดเมนแบบกำหนดเองได้สูงสุด 2 โดเมนฟรี (สำหรับการทดสอบ)
  • Free plan: เพิ่มโดเมนแบบกำหนดเองได้ 1 โดเมนโดยไม่มีค่าใช้จ่าย
  • Pro plan: รวม 1 โดเมนแบบกำหนดเอง และสามารถเพิ่มได้สูงสุด 10 โดเมนผ่าน add-on
  • Enterprise plan: หากต้องการมากกว่า 10 โดเมนหรือมีความต้องการพิเศษ กรุณา ติดต่อเรา

ดูรายละเอียดเพิ่มเติมได้ที่ ตารางราคา Logto

ด้วยหลายโดเมนแบบกำหนดเอง คุณสามารถ:

  • ใช้โดเมนต่างกันสำหรับภูมิภาค, ภาษา, แอปพลิเคชัน, องค์กร หรือโดเมนระดับบนสุดที่ต่างกัน
  • สร้างความน่าเชื่อถือด้วยประสบการณ์แบรนด์ที่สอดคล้องกันทั้งก่อนและหลังลงชื่อเข้าใช้
  • มอบประสบการณ์การยืนยันตัวตนที่เฉพาะเจาะจงตามภูมิภาคหรือแบรนด์ผ่าน Custom UI

ตั้งค่าโดเมนแบบกำหนดเองใน Console

เพื่อเพิ่มโดเมนแบบกำหนดเองใหม่ใน Logto Console ให้ทำตามขั้นตอนดังนี้:

  1. ไปที่ Console > Settings > Domains

  2. ในส่วน "Add a custom domain" ให้กรอก subdomain ของคุณ (เช่น auth.example.com, auth.us.example.com) แล้วคลิก "add domain"

    Add domain
  3. คัดลอกค่า CNAME domains.logto.app ในตาราง แล้วไปที่ผู้ให้บริการ DNS ของโดเมนคุณเพื่อเพิ่ม record

    Custom domain processing
  4. รอการตรวจสอบและกระบวนการ SSL

    1. เราจะตรวจสอบ record ของคุณอัตโนมัติทุก 10 วินาทีจนกว่าโดเมนแบบกำหนดเองจะถูกเพิ่ม ตรวจสอบให้แน่ใจว่าชื่อโดเมนหรือ DNS Records ที่กรอกถูกต้อง
    2. การตรวจสอบมักใช้เวลาไม่กี่นาที แต่อาจนานถึง 24 ชั่วโมง ขึ้นอยู่กับผู้ให้บริการ DNS คุณสามารถเปลี่ยนหน้าไปทำอย่างอื่นระหว่างรอได้

หากต้องการเพิ่มหลายโดเมนแบบกำหนดเอง ให้ทำซ้ำขั้นตอนข้างต้นสำหรับแต่ละโดเมนที่ต้องการตั้งค่า

การแก้ไขปัญหา

ปัญหาใบรับรอง SSL

หากคุณพบปัญหาใบรับรอง SSL ขณะตั้งค่าโดเมนแบบกำหนดเอง อาจเกี่ยวข้องกับ CAA record ในการตั้งค่า DNS ของคุณ CAA record จะระบุว่า Certificate Authority (CA) ใดได้รับอนุญาตให้ออกใบรับรองสำหรับโดเมนของคุณ หากคุณใช้ CAA record คุณต้องอนุญาตทั้ง "letsencrypt.org" และ "pki.goog" เพื่อให้ Logto ออกใบรับรอง SSL ได้

สำหรับการแก้ไขปัญหาและรายละเอียดเพิ่มเติมเกี่ยวกับ CAA record ดูได้ที่ Cloudflare's documentation เกี่ยวกับ CAA Records

ข้อผิดพลาด "The hostname is associated with a held zone"

หากคุณพบข้อความผิดพลาด "The hostname is associated with a held zone, please contact the owner to have the hold removed" ขณะเพิ่มโดเมนแบบกำหนดเอง หมายความว่าโดเมนนั้นอยู่ใน Cloudflare zone และถูกตั้งสถานะเป็น "Zone Hold" ดูข้อมูลเพิ่มเติมได้ที่ Cloudflare documentation

วิธีแก้ไขคือต้องปลดล็อก zone hold โดยทำตามคำแนะนำในลิงก์ข้างต้น

การเชื่อมต่อหมดเวลา (Error code 522) สำหรับโดเมนที่โฮสต์บน Cloudflare

หากโดเมนของคุณโฮสต์อยู่บน Cloudflare ให้ปิด proxy ของ Cloudflare สำหรับ CNAME record

ข้อผิดพลาด "Redirect URI does not match" หลังตั้งค่าโดเมนแบบกำหนดเอง

หากคุณได้รับข้อผิดพลาด "redirect URI does not match" หลังจากเพิ่มโดเมนแบบกำหนดเอง คุณต้องอัปเดตการตั้งค่า SDK ของคุณให้ใช้โดเมนแบบกำหนดเองเป็น endpoint

เกี่ยวกับ "primary domain":

ใน Logto ไม่มีการตั้งค่า "primary domain" แยกต่างหาก หลังจากเพิ่มโดเมนแบบกำหนดเองแล้ว ทั้งโดเมนแบบกำหนดเองและโดเมนเริ่มต้น {tenant-id}.logto.app จะยังคงใช้งานได้ โดเมนที่คุณกำหนดในพารามิเตอร์ endpoint ของ SDK จะเป็นตัวกำหนดว่าจะใช้โดเมนใดใน flow การยืนยันตัวตน

วิธีแก้ไข:

อัปเดตพารามิเตอร์ endpoint ในการเริ่มต้น SDK ของคุณให้ใช้โดเมนแบบกำหนดเอง:

const client = new LogtoClient({
endpoint: 'https://auth.example.com', // ใช้โดเมนแบบกำหนดเองของคุณ
appId: 'your-app-id',
// ... ตัวเลือกอื่น ๆ
});

ตรวจสอบด้วยว่า redirect URI ที่ลงทะเบียนใน Console → Applications ตรงกับโดเมนที่คุณใช้งาน

หมายเหตุ: Logto จะจัดเตรียมและจัดการใบรับรอง SSL สำหรับโดเมนแบบกำหนดเองของคุณโดยอัตโนมัติ คุณไม่จำเป็นต้องตั้งค่าใบรับรองเอง

การใช้งานโดเมนแบบกำหนดเอง

เมื่อคุณตั้งค่าการใช้งานแล้ว ทั้งชื่อโดเมนแบบกำหนดเองและชื่อโดเมนเริ่มต้นของ Logto จะพร้อมใช้งานสำหรับ tenant ของคุณ อย่างไรก็ตาม จำเป็นต้องมีการตั้งค่าบางอย่างเพื่อเปิดใช้งานโดเมนแบบกำหนดเอง

บันทึก:

ในบทความนี้ สมมติว่าโดเมนแบบกำหนดเองของคุณคือ auth.example.com

การอัปเดต SDK endpoint สำหรับแอปพลิเคชัน

ปรับโค้ดเริ่มต้นของ Logto SDK โดยเปลี่ยนชื่อโดเมนของ endpoint

const client = new LogtoClient({
...,// ตัวเลือกอื่น ๆ
endpoint: 'https://auth.example.com',
});

ในหน้ารายละเอียดของแอปพลิเคชันของคุณที่ Console > Applications เลื่อนลงไปที่ส่วน "Endpoints & Credentials" เปลี่ยนโดเมนใน dropdown เพื่อดูและคัดลอก endpoint ที่เกี่ยวข้องสำหรับอัปเดตการตั้งค่าแอปของคุณ

การแก้ไข auth endpoint สำหรับแอปพลิเคชันอื่น ๆ

หากคุณมีแอปพลิเคชันที่ไม่ได้ใช้ Logto SDK จำเป็นต้องอัปเดต auth endpoint ของแอปเหล่านั้น

คุณสามารถค้นหา auth endpoint ได้ที่ URL มาตรฐานนี้:

https://auth.example.com/oidc/.well-known/openid-configuration

การอัปเดต redirect URI ของตัวเชื่อมต่อโซเชียล

ตัวเชื่อมต่อโซเชียล ใช้โปรโตคอล OIDC / OAuth เมื่อผู้ใช้ลงชื่อเข้าใช้ผ่านโดเมนแบบกำหนดเอง redirect URI จะใช้โดเมนแบบกำหนดเองโดยอัตโนมัติ คุณต้องอัปเดต redirect URI ใน developer console ของผู้ให้บริการโซเชียลของคุณ

ขั้นตอน:

  1. ไปที่ Console > Connectors > Social Connectors และเลือกตัวเชื่อมต่อของคุณ
  2. คัดลอก redirect URI ที่แสดงในรายละเอียดตัวเชื่อมต่อ Logto จะแสดง redirect URI ทั้งหมดที่มีสำหรับโดเมนแบบกำหนดเองที่คุณตั้งค่าไว้
  3. เพิ่ม redirect URI นี้ใน developer console ของผู้ให้บริการโซเชียลของคุณ (เช่น Google, GitHub, Facebook)

สำหรับหลายโดเมนแบบกำหนดเอง:

  • เพิ่ม redirect URI ทั้งหมดสำหรับแต่ละโดเมนแบบกำหนดเองที่คุณตั้งค่าไว้ เพื่อให้การเข้าสู่ระบบโซเชียลทำงานได้ไม่ว่าผู้ใช้จะเข้าผ่านโดเมนใด
  • โดเมนเริ่มต้นของ Logto (*.logto.app) ยังคงใช้งานได้ รวมไว้ด้วยหากคุณต้องการรองรับการเข้าสู่ระบบผ่านโดเมนเริ่มต้นด้วย
  • สำหรับตัวเชื่อมต่อ GitHub ให้ใช้ GitHub Apps แทน OAuth apps ที่ตั้งค่าใน GitHub dashboard เพราะ GitHub Apps รองรับหลาย redirect URI ในขณะที่ OAuth apps รองรับได้เพียง URI เดียว

การอัปเดต redirect URI ของตัวเชื่อมต่อ enterprise SSO ที่ใช้ OIDC

ตัวเชื่อมต่อ enterprise ที่ใช้ OIDC ใช้รูปแบบเดียวกับตัวเชื่อมต่อโซเชียล

ขั้นตอน:

  1. ไปที่ Console > Enterprise SSO และเลือกตัวเชื่อมต่อ OIDC ของคุณ
  2. คัดลอก redirect URI จากรายละเอียดตัวเชื่อมต่อ Logto จะแสดง redirect URI ทั้งหมดสำหรับโดเมนแบบกำหนดเองที่คุณตั้งค่าไว้
  3. อัปเดต redirect URI ในการตั้งค่าผู้ให้บริการข้อมูลระบุตัวตน (IdP) ของคุณ

สำหรับหลายโดเมนแบบกำหนดเอง: เพิ่ม redirect URI ที่เกี่ยวข้องทั้งหมดใน IdP ของคุณ เพื่อให้ enterprise SSO ทำงานได้ในทุกโดเมน

การอัปเดต ACS URL ของตัวเชื่อมต่อ enterprise SSO ที่ใช้ SAML

ตัวเชื่อมต่อ enterprise ที่ใช้ SAML จะใช้ Assertion Consumer Service (ACS) URL แทน redirect URI

ขั้นตอน:

  1. ไปที่ Console > Enterprise SSO และเลือกตัวเชื่อมต่อ SAML ของคุณ
  2. ในส่วน "Configure in the IdP" ใช้ dropdown ของโดเมนเพื่อสลับระหว่างโดเมนแบบกำหนดเองของคุณ
  3. คัดลอก ACS URL สำหรับโดเมนที่คุณต้องการรองรับ
  4. เพิ่ม ACS URL เหล่านี้ในการตั้งค่าผู้ให้บริการ SAML ของคุณ

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

Passkey สำหรับ MFA

Passkey สำหรับการยืนยันตัวตนหลายปัจจัย (MFA) จะผูกกับโดเมนที่ลงทะเบียนไว้ ผู้ใช้ต้องลงชื่อเข้าใช้ผ่านโดเมนเดียวกันเพื่อใช้ Passkey ของตน

ข้อจำกัดปัจจุบัน: Logto ยังไม่รองรับการตรวจสอบ Passkey ข้ามโดเมน หากผู้ใช้ลงทะเบียน Passkey ที่ auth.us.example.com จะต้องลงชื่อเข้าใช้ผ่าน auth.us.example.com เท่านั้นจึงจะใช้ Passkey นั้นได้ Passkey ที่ลงทะเบียนในโดเมนหนึ่งจะไม่สามารถใช้กับโดเมนแบบกำหนดเองอื่นได้