background

คุณสร้างระบบ auth เองได้ในวันเดียว แต่นั่นแหละคือกับดัก

ทีม B2B หลายสิบทีมเล่าเรื่องเดียวกันให้เราฟัง มันเริ่มต้นแค่หน้าล็อกอินธรรมดา ก่อนที่ทราฟฟิกจริงจะไหลเข้ามา แล้วมันค่อย ๆ กลายเป็นโครงสร้างตัวตน ซึ่งเป็นรากฐานที่ผลิตภัณฑ์ของคุณตั้งอยู่

banner

มันดูเหมือนฟีเจอร์ธรรมดา แต่มันทิ้งโมเดลตัวตนทั้งระบบไว้เบื้องหลัง

ทุก auth ที่สร้างเองเริ่มจากโค้ดไม่กี่บรรทัด แต่ปัญหาเริ่มหลังจากเปิดใช้งาน เมื่อแต่ละการตัดสินใจย่อย ๆ ค่อย ๆ กลายเป็นโมเดลหลักที่ทั้ง product ต้องอาศัย

วันแรก: สี่สิบบรรทัดโค้ด

อีเมล รหัสผ่าน แฮช เก็บเปรียบเทียบตอนล็อกอิน จบครบ
นี่คือเหตุผลว่าทำไมทุกทีมถึงเริ่มตรงนี้ และทำไม auth ถึงดูเหมือนสร้างเสร็จได้ในบ่ายเดียว

วันที่สองร้อย: โมเดลตัวตนแบบเงียบ ๆ

ใครนับว่าเป็นผู้ใช้ สังกัดองค์กรไหน session ไหนยังเชื่อถือได้ ใครเป็นคนดึงสิทธิ์ออก
Rate limit, MFA และ flow การกู้คืน, session, refresh token, โมเดลองค์กรที่ซับซ้อนไม่ใช่แค่ boolean is_admin คำตอบทุกข้อที่คุณ ship คือ rule ที่ product สมมติว่าเป็นจริง

ปีที่ห้า: ฐานรากที่คุณแตะไม่ได้

การเปลี่ยน login page บนกระดาษเท่ากับต้องรื้อ identity foundation ในโค้ดใหม่
มี SaaS อายุกว่า 20 ปีพยายามเปลี่ยนไปใช้อีเมลเป็น username เงื่อนไข permission กระจายอยู่ในโมดูลนับร้อย ไม่มีใครกล้า approve งานค้างจนแก้ไขไม่ได้

Auth ที่สร้างเองทำงานได้ดี — จนวันที่ธุรกิจเปลี่ยน

มันล็อกอินคนเข้าระบบได้ไม่มีปัญหาหลายปี แต่การเปลี่ยนแปลงธุรกิจแค่ครั้งเดียว ก็ทำให้ “พอใช้” กลายเป็น “กลายเป็นอุปสรรค” ขึ้นมาทันที สามจุดนี้เกิดขึ้นแทบทุก product ที่ scale

figure

ลูกค้าองค์กรเริ่มขอ SSO

ดีลใหญ่รายแรกมาต้องการ SSO ผ่าน Entra หรือ Google Workspace ของตัวเอง ต่อมาก็ต้องรองรับทั้ง SAML และ OIDC เพราะลูกค้ารายถัดไปใช้แบบอื่น แต่ละลูกค้ามีระบบตัวตนต่างกันแทบทั้งหมด และงานแทบไม่มีส่วนไหนใช้ซ้ำกันได้เลย

  • แต่ละลูกค้ามี protocol, การ mapping field, การเปลี่ยน certificate แตกต่างกัน
  • SSO ไม่ใช่สร้างครั้งเดียว แต่ต้องทำใหม่ทุกครั้งเมื่อลูกค้า enterprise ใหม่มาถึง
  • ท้ายที่สุดกลายเป็นภาระงานที่มีวิศวกรบางคนรู้กระบวนการทั้งหมดเพียงคนเดียว
figure

ตัวตนที่กระจายต้องรวมเป็นหนึ่งเดียว

แยกตามองค์กร แยกตาม product หรือสืบทอดมาจากการควบรวมกิจการ “รวมตัวตน” ฟังดูเหมือนแค่ฟีเจอร์ แต่ในโค้ดคือการนิยามใหม่ว่าหนึ่ง user หรือหนึ่งองค์กรคืออะไร

  • อีเมลเดียวกันอยู่ได้หลายองค์กรหรือไม่ ย้าย username เดิมอย่างไร
  • ควบรวมจาก 9 product คือ 9 auth stack ทำงานขนานกัน
  • ต้องเพิกถอนสิทธิ์สำหรับผู้ลาออกในทุกระบบพร้อมกัน และตรวจสอบย้อนกลับได้ในที่เดียว
figure

AI agent และ CLI เริ่มดำเนินการแทนผู้ใช้

ตอนนี้ไม่ใช่แค่คนใช้งานในเบราว์เซอร์แล้ว agent, MCP server และ command line ต่าง ๆ ก็ขอสิทธิ์แทนผู้ใช้ แต่ auth ของคุณอาจรู้แค่จะล็อกอินคนเข้าสู่หน้าเว็บอย่างเดียว

  • token ถูกออกให้ใคร มี scope และ audience แบบใด
  • อนุญาตให้แค่เครื่องมือเดียวหรือข้อมูลชุดย่อย แล้วเพิกถอนสิทธิ์เมื่อไหร่ก็ได้
  • MCP และ CLI เน้น OAuth ไม่ใช่แบบฟอร์มล็อกอิน
background

ต้นทุนที่แท้จริงไม่ใช่ช่วงที่สร้าง แต่คือการดูแลมันไปหลายปี

เวอร์ชันแรกสร้างง่าย แค่ไม่กี่วิศวกร ไม่กี่สัปดาห์ก็จบ แต่หลังจากนั้นคุณต้องเสียเวลาที่ควรพัฒนาผลิตภัณฑ์หลักไปดูแล auth นี้ทุกปี

บิลไม่ได้หาย แค่เปลี่ยนวิธีจ่าย

คุณจะไม่ได้รับใบแจ้งหนี้ที่บอกว่า “authentication”
คุณจ่ายเป็นเดือน/ปีของคน, deadline ที่พลาด, tech debt ด้านความปลอดภัย, ต้องรื้อแก้งาน มีองค์กรสมาชิกหนึ่งสร้าง auth เองเพื่อประหยัดค่า license สุดท้าย 5 ปีผ่านไป ค่าดูแลแพงกว่าซื้อสำเร็จรูปหลายเท่า

สุดท้ายพึ่งแค่คนหนึ่งหรือสองคน

บริบทสำคัญอยู่ในหัวคน ไม่ใช่เอกสาร
ลูกค้าคนไหน config อย่างไร หรือ migration เดิมทำเพราะอะไร ถ้าเขาหยุด คนทั้งองค์กรก็ชะลอ ถ้าเขาลาออก ความรู้ก็หายไปด้วยทันที

คุณอยากให้วิศวกรของคุณอยู่ตรงไหน

ไม่มีลูกค้าคนไหนยอมจ่ายเพราะคุณเขียน OAuth server เอง
Auth ต้องน่าเชื่อถือ แต่ “น่าเชื่อถือ” ไม่ได้แปลว่า “ต้องสร้างเอง” สำหรับ product ส่วนใหญ่ auth คือ dependency หลัก ไม่ใช่จุดแข็งที่แตกต่าง

ถ้าไม่สร้างเอง แล้วควรเลือกอย่างไร

auth ที่ครบเครื่องส่วนใหญ่รองรับ SSO, MFA, องค์กร, unified login, agent access อยู่แล้ว สิ่งสำคัญคือคุณย้ายออกได้ไหม อย่าสร้างระบบขึ้นมาเองนับพันบรรทัดแล้วต้องติดกับ vendor รายใหม่

มาตรฐานสากล ไม่ใช้ stack ที่คิดเอง

OIDC, OAuth, และ JWT ที่เซ็นต์ด้วย RS256 ซึ่งคุณเข้าใจอยู่แล้ว อ่าน claim จาก token ตามมาตรฐาน ไม่ต้องเรียนรู้ API เฉพาะของ vendor

ประตูที่ออกได้จริง

ถ้าเป็น open source และ self-host ได้ คุณย้ายออกเมื่อไหร่ก็ได้ อย่าแลก custom system ของคุณกับการเช่าใช้ระบบที่ติดล็อกจากที่อื่น

ระบบคิดเงินที่ไม่ผูกกับ user table ของคุณ

คิดตามจำนวนผู้ใช้ที่ลงทะเบียนหรือ active รายเดือน หมายถึง table ที่โตขึ้นเรื่อย ๆ สุดท้ายกลายเป็น growth tax ที่ผลักให้ทีมอยากสร้างเอง

ข้อมูลของคุณไม่เคยถูกล็อกไว้

export ข้อมูลผู้ใช้เมื่อไหร่ก็ได้ และเมื่อส่งข้อมูลอ่อนไหวให้ผู้เชี่ยวชาญ คุณจะไม่เสี่ยงกับภาระดูแล PII โดยไม่จำเป็น

auth อาจไม่ใช่ธุรกิจหลักของคุณ — ให้ความสำคัญแค่นั้นก็พอ

Logto เป็น open source, self-host ได้ และยังมีแบบ Cloud สำเร็จรูป พร้อม sign-in, MFA, SSO, RBAC ใช้งานได้ทันทีผ่านมาตรฐาน OIDC ระบบคิดเงินตาม token วันที่คุณอยากเปลี่ยนออก ประตูก็เปิดเสมอ

คำถามที่พบบ่อย

ควรจะไม่สร้าง auth เองเลยหรือไม่

authentication ต่างกับ authorization อย่างไร

ทำไม SSO สำหรับองค์กรทำให้ auth ที่สร้างเองซับซ้อน

เราใช้ auth ของตัวเองมาหลายปี แล้วยังย้ายออกได้ไหม

ทำไม AI agent กับ MCP ถึงกลายเป็นต้นตอแรงกดดัน auth แบบใหม่