โดเมนแบบกำหนดเองสำหรับการยืนยันตัวตนคืออะไร และเหตุใดโดเมนหลายโดเมนจึงสำคัญ
เรียนรู้ว่าโดเมนแบบกำหนดเองสำหรับการยืนยันตัวตนและการใช้หลายโดเมนช่วยเพิ่มอัตราแปลง ความปลอดภัย และภาพลักษณ์แบรนด์ได้อย่างไร; และ Logto ช่วยให้คุณจัดการทุกอย่างได้โดยไม่ต้องปวดหัวกับ DNS
ถ้าคุณเคยปล่อยผลิตภัณฑ์ออกไปแบบเร่งด่วน เรื่องนี้จะรู้สึกคุ้นเคยมาก
แอปของคุณใช้ชีวิตอย่างมีความสุขที่ example.com ฝ่ายการตลาดกำลังโปรโมทแคมเปญ ผู้ใช้กำลังสมัครใช้งาน ทุกอย่างดูดีหมด จากนั้นผู้ใช้ใหม่กด เข้าสู่ระบบ
แทนที่จะเป็น URL ที่คุ้นเคยอย่าง auth.example.com เบราว์เซอร์กลับกระโดดไปที่บางอย่างที่ดูเหมือนสภาพแวดล้อมทดสอบ: my-tenant-123.app.logto
ในทางเทคนิค ไม่มีอะไรผิด หน้าเว็บนั้นปลอดภัย การเข้าสู่ระบบยังคงใช้งานได้
แต่ปฏิกิริยาแรกของผู้ใช้คือ:
“เดี๋ยวนะ เมื่อกี้ฉันถูกพาไปที่ไหน?”
เพียงแค่เสี้ยววินาทีของความสงสัยนี้เองที่ทำให้เกิดการหลุดจากขั้นตอนเข้าสู่ระบบ
- จากมุมมองด้าน การแปลงผู้ใช้ จุดเข้าสู่ระบบและลงทะเบียนเป็นคอขวดที่สุดของกระบวนการ ใครๆ ก็จะลังเลถ้ามีอารมณ์แบบ “นี่โดเมนอะไร?” เข้ามา
- จากมุมมองด้าน ความปลอดภัย ผู้ใช้ถูกสอนให้ “ตรวจสอบ URL” มาหลายปี ถ้าโดเมนสำหรับเข้าสู่ระบบไม่ใช่แบรนด์ของคุณ มันก็ดูเหมือนการหลอกลวง (phishing) มากกว่าระบบจริงอีก
นี่คือเหตุผลที่เกือบทุกบริษัทใหญ่เลือกใช้โดเมนเช่น:
login.company.comauth.company.comaccounts.company.com
ไม่ได้ทำเพราะสนุก แต่เพราะโดเมนสำหรับเข้าสู่ระบ บเป็นส่วนหนึ่งของประสบการณ์สินค้า
ในบทความนี้เราจะเจาะลึกว่า:
- โดเมนยืนยันตัวตนแบบกำหนดเอง จริง ๆ แล้วคืออะไร
- เมื่อไหร่ หนึ่ง โดเมนก็พอ — และเมื่อไหร่ควรเตรียมพร้อมรับมือ หลายโดเมน
- ข้อผิดพลาดที่พบบ่อยของโดเมนเข้าสู่ระบบ (รวมถึงวิธีหลีกเลี่ยง "redirect URI does not match" อาถรรพ์)
- Logto มีฟีเจอร์ custom domain ที่ช่วยให้คุณทำทุกอย่างนี้ได้ โดยไม่ต้องกลายเป็นวิศวกร DNS เต็มตัว อย่างไร
โดเมนสำหรับการยืนยันตัวตนแบบกำหนดเองคืออะไร?
อธิบายง่ายๆ เลย
ทุก tenant ใน Logto จะมาพร้อมกับโดเมนเริ่มต้น: {{tenant-id}}.app.logto หมายความว่าทุกครั้งที่ผู้ใช้ถูกเปลี่ยนไป หน้า: https://my-tenant-123.app.logto/sign-in
การใช้โดเมนแบบกำหนดเองสำหรับการยืนยันตัวตนจะเปลี่ยน URL ที่ผู้ใช้เห็น ให้เป็นของคุณเอง — เช่น auth.example.com ทีนี้ผู้ใช้จะเห็นแบรนด์ของคุณตลอดเวลา: https://auth.example.com/sign-in
บริการยืนยันตัวตนเหมือนเดิมทุกอย่าง เปลี่ยนแค่อิมเพรสชั่นแรกของผู้ใช้ที่ดีขึ้นมาก
ทำไมถึงต้องใช้ subdomain ไม่ใช่ root domain?
สำหรับ Logto แล้ว โดเมนแบบกำหนดเองจะออกแบบให้ใช้กับ ซับโดเมน เช่น:
auth.example.comauth.us.example.com
ในทางปฏิบัติ นี่คือสิ่งที่คุณต้องการสำหรับ auth:
- โดเมนหลักมักจะไว้สำหรับเว็บหลัก (
example.com). - DNS "zone apex" ไม่สามารถใช้ CNAME ได้ และหน้า sign-in ที่ Logto โฮสต์ไว้ ต้องการ CNAME ชี้ไปที่
domains.logto.appเพื่อจัดการทราฟฟิก - Logto จัดการ certificate ผ่าน Cloudflare ถ้าเราต้องทำ TLS บน root domain เราต้องควบคุม zone ทั้งหมด (รวมทั้ง
A,MX,TXTฯลฯ) ซึ่งเป็นไปไม่ได้สำหรับ SaaS แบบ multi-tenant
Apex-flattening record (ALIAS/ANAME) ก็จะ resolve ไปที่ IP ที่เราไม่ได้เป็นเจ้าของ เลยไม่นำไปใช้กับ certificate ที่เราดูแลได้ สรุปคือ service sign-in ที่ Logto โฮสต์ไว้ต้องอยู่บนซับโดเมน ให้ CNAME ของซับโดเมนนั้นชี้มายัง Logto แล้วเราจัดการยืนยัน SSL และ uptime ให้ ส่วน root domain ก็ยังใช้โฮสต์ส่วนอื่นๆ ได้ตามปกติ
ทำไมมันไม่ใช่แค่ “เพิ่ม CNAME ก็จบ”
ความเข้าใจผิดที่พบบ่อยมาก:
“ก็แค่เพิ่ม CNAME ใน DNS แล้วจบใช่มั้ย?”
น่าเสียดายที่ไม่ใช่
การเปลี่ยนโดเมนเข้าสู่ระบบที่ผู้ใช้เห็นเป็นแค่หนึ่งส่วนเท่านั้น เมื่อคุณใช้โดเมนยืนยันตัวตนแบบกำหนดเอง จะเกี่ยวข้องกับ:
-
URL หน้า sign-in และหน้าลงทะเบียน
ผู้ใช้จะเข้าที่https://auth.example.com/...สำหรับหน้าเหล่านี้ -
OIDC / OAuth redirect URIs
แอปและคอนเน็กเตอร์ของคุณต้องใช้โดเมนเดียวกันใน redirect/callback URL ไม่งั้นจะขึ้นข้อผิดพลาดแบบredirect_uri_mismatch -
Social logins & enterprise SSO (IdP)
Google, GitHub, Azure AD, Okta ฯลฯ ล้วนตรวจสอบ redirect URI หรือ ACS URL โดยรวมโดเมนไปด้วย -
Passkeys (WebAuthn)
Passkey ผูกกับโดเมนแบบเป๊ะๆ ถ้าเปลี่ยนโดเมน passkey ที่เคยสมัครไว้จะใช้ไม่ได้อีก -
SDK configuration
SDK ของ Logto ใช้endpointที่ชี้ไปยังโดเมนของ tenant ถ้า endpoint ไม่ตรงกัน ชั้น identity กับแอปจะ sync กันไม่ได้
DNS มีส่วนแน่ๆ
แต่ถ้าคิดแค่ว่า “ฉันเพิ่ม CNAME แล้วจบ” คุณเกือบจะแน่นอนว่าทำพังอย่างอื่นไปแล้ว

