สารบัญ

ดูแลองค์กร

SSO นโยบาย และ SCIM

SSO ขององค์กร นโยบายรหัสผ่าน/MFA/session/IP, session, audit log, SCIM provisioning และแบรนด์

แต่ละองค์กรตั้งกติกาการล็อกอินของตัวเอง: ใช้ผู้ให้บริการยืนยันตัวตนรายไหน รหัสผ่านและ MFA ต้องเข้มแค่ไหน session อยู่ได้นานเท่าไร เข้าคอนโซลได้จากที่ไหน Pi Auth บังคับกติกาเหล่านี้ตอนล็อกอิน ในคอนโซล และบน API และบันทึกทุกการเปลี่ยนแปลงลง audit log

โดเมนขององค์กร

ตั้งค่า → โดเมน ใช้พิสูจน์ว่าองค์กรเป็นเจ้าของโดเมนอีเมล เช่น acme.co.th ด้วย TXT record ใน DNS ต้องยืนยันโดเมนก่อน จึงจะใช้กับ SSO และ custom domain ได้ ฟีเจอร์นี้ใช้ได้เฉพาะ owner และ admin ขององค์กร

  1. เพิ่มโดเมน

    กด เพิ่มโดเมน แล้วใส่โดเมนที่องค์กรดูแล ใส่แค่โดเมนหลักก็พอ ระบบนับรวม subdomain ให้เอง โดเมนอีเมลสาธารณะอย่าง gmail.com หรือ outlook.com เพิ่มไม่ได้

  2. ตั้ง TXT record ที่ผู้ให้บริการ DNS

    หน้าจอแสดงชื่อและค่าของ record ให้ copy ไปใส่ที่ Cloudflare, GoDaddy, Route 53 หรือผู้ให้บริการอื่น

    ช่องค่า
    TypeTXT
    Name / Host_pi-auth.acme.co.th (บางผู้ให้บริการให้ใส่แค่ _pi-auth)
    Valuepi-auth-verification=… (ค่าจากหน้าจอ)
  3. กดยืนยัน

    DNS อาจใช้เวลาไม่กี่นาทีกว่าจะเห็นค่าใหม่ ถ้าขึ้นว่ายังไม่พบ record ให้รอแล้วกดใหม่ ยืนยันสำเร็จแล้วสถานะเปลี่ยนเป็น ยืนยันแล้ว

ใช้กับผลเมื่อยืนยันแล้ว
SSO connectionผูกโดเมนกับ connection ได้ ผู้ใช้ที่พิมพ์อีเมลในโดเมนนี้ถูกพาไป IdP ขององค์กร และบัญชีเดิมที่อีเมลตรงกันผูกกับ SSO ได้
Custom domainตั้งโดเมนล็อกอินของตัวเอง เช่น auth.acme.co.th ได้ (ต้องอยู่ใต้โดเมนที่ยืนยันแล้ว และอยู่ในแผนที่รองรับ)

SSO ขององค์กร

ตั้งค่า → SSO connections เชื่อม tenant กับ OIDC identity provider — Microsoft Entra, Google Workspace หรือ OIDC issuer ทั่วไป connection ระบุโดเมนอีเมลที่ตนดูแล เมื่อมีคนพิมพ์ name@acme.co.th ที่หน้าล็อกอิน ระบบพาไปผู้ให้บริการนั้นทันที และเมื่อล็อกอินครั้งแรกจะกลายเป็นสมาชิกของ tenant

ฟิลด์ใส่อะไร
ผู้ให้บริการค่าสำเร็จรูป (Entra / Google) หรือ OIDC ทั่วไป — ค่าสำเร็จรูปเติม issuer hint และ scope ให้
ชื่ออ้างอิงid สั้น ๆ ที่ใช้ใน redirect URI เช่น entra-acme
issuerissuer URL ของผู้ให้บริการ; อ่าน discovery จาก issuer/.well-known/openid-configuration เว้นแต่ตั้ง discovery endpoint เอง
โดเมนอีเมลคั่นด้วยจุลภาค ทุกโดเมนต้องยืนยันแล้วที่ ตั้งค่า → โดเมน และโดเมนหนึ่งเป็นของ connection เดียว
client_id / client_secretจากแอปที่ลงทะเบียนไว้ที่ผู้ให้บริการ secret ไม่แสดงอีกหลังบันทึก

หลังบันทึก นำ redirect URI ที่แสดงไปลงทะเบียนในการตั้งค่าแอปของผู้ให้บริการ ไม่เช่นนั้นการล็อกอินจะถูกปฏิเสธที่ฝั่งนั้น ลบ connection แล้วผู้ใช้กลับไปใช้รหัสผ่าน passkey หรือลิงก์อีเมล

ปุ่ม SSO ไม่ต้องกรอกอีเมล: ตั้งชื่อที่แสดงบนปุ่มที่ connection (ไอคอนดินสอ เช่น "Estar (Microsoft 365)") แล้วเลือกที่ แอป → วิธีล็อกอิน → ปุ่ม SSO ว่าแอปนั้นแสดง SSO ตัวไหน หน้าล็อกอินที่มาจากแอปจะแสดงเฉพาะตัวที่เลือก (รู้จาก client_id ไม่เดาองค์กร) กดแล้วไปผู้ให้บริการทันที พร้อม domain_hint (Entra) หรือ hd (Google) เพื่อข้ามหน้าเลือกบัญชี เข้า Pi Auth ตรงผ่าน subdomain/custom domain ขององค์กรจะเห็น SSO ทั้งหมดขององค์กรนั้น วิธีอื่นยังอยู่ด้านล่างเสมอ เพื่อให้ owner/admin เข้าได้ถ้า IdP มีปัญหา เครื่องที่เคยใช้ SSO จะเห็นปุ่มเดิมพร้อมป้าย "ใช้ล่าสุด"

Pi Auth ไม่เชื่อค่า email_verified ที่ IdP ส่งมาเอง บัญชีเดิมจะผูกกับ SSO ได้เฉพาะเมื่ออีเมลอยู่ในโดเมนที่องค์กรยืนยันแล้ว ช่องนี้กันไม่ให้องค์กรที่ตั้ง IdP เองอ้างอีเมลของคนนอกองค์กร connection ที่มีโดเมนยังไม่ยืนยันจะล็อกอินไม่ได้ จนกว่าจะยืนยันครบ

นโยบาย

ตั้งค่า → นโยบาย มีสี่นโยบายต่อ tenant ค่าเริ่มต้นคือแบบที่ปลอดภัยที่สุดที่ยังใช้งานได้ตั้งแต่วันแรก

นโยบายกติกาค่าเริ่มต้น
รหัสผ่านความยาวขั้นต่ำ (≥ 10) บังคับตัวพิมพ์เล็ก/ใหญ่ บังคับตัวเลข การตรวจรหัสรั่ว (Have I Been Pwned) เปิดเสมอ10 ตัวอักษร
MFAใครต้องมีปัจจัยที่สอง: none / admins (owner และ admin) / all พร้อมระยะผ่อนผันเป็นวันหลังเข้าร่วมadmins ไม่มีผ่อนผัน
Sessionอายุ session สูงสุดเป็นชั่วโมงนับจากล็อกอิน ครบแล้วต้องล็อกอินใหม่30 วัน
IP allowlistCIDR ที่อนุญาตให้ล็อกอินและใช้คอนโซล เลือกบังคับกับ Management API ด้วยได้ ว่าง = ไม่จำกัดว่าง

MFA ถูกบังคับตอนสมาชิกเลือก tenant ระหว่างล็อกอิน: ถ้านโยบายกำหนดและยังไม่ได้ตั้ง ระบบพาไป บัญชี → ความปลอดภัย เพื่อตั้งแอป authenticator (TOTP) หรือ passkey ก่อนไปต่อ ได้ backup code 10 ชุดตอนตั้ง การล็อกบัญชีเมื่อล็อกอินล้มเหลวซ้ำเป็นของแพลตฟอร์มและเพิ่มเวลาขึ้นทุกรอบ และแพลตฟอร์มไม่รับอีเมลชั่วคราว/ใช้แล้วทิ้ง (mailinator, yopmail, temp-mail ฯลฯ) ทั้งตอนสมัคร ขอลิงก์เข้าสู่ระบบ และเชิญสมาชิก — บันทึกใน audit เป็น *.disposable_emailการกระทำอ่อนไหว (หมุน secret, ลบแอป, แก้นโยบาย MFA/IP, ลบ SSO connection, ขอลบองค์กร, สวมสิทธิ์, สร้าง/หมุน key ของ service account) ต้องยืนยันตัวตนซ้ำถ้าล็อกอินมาเกิน 10 นาที — ระบบพาไป บัญชี → ยืนยันตัวตนอีกครั้ง (รหัสผ่าน, รหัส TOTP, passkey หรือ Google) แล้วกลับมาทำรายการต่อ

Session

สมาชิกดูและถอนอุปกรณ์ของตัวเองที่ บัญชี → ความปลอดภัย; ผู้ดูแลเห็น session ของทุกคนที่ Logs → Session ของสมาชิก และถอนได้ทีละอันหรือทั้งหมดของคนนั้น การถอนมีผลทันทีกับคอนโซล และส่ง event session.revoked ให้แอปจบ session ของตัวเองด้วย การระงับหรือเอาสมาชิกออกถอนทุก session ของเขา

หน้าเดียวกันแสดง วิธีล็อกอินที่เชื่อมอยู่ (อีเมล + รหัสผ่าน, Google) — ล็อกอิน Google ด้วยอีเมลเดียวกันจะผูกเข้าบัญชีเดิมอัตโนมัติ, กด "เชื่อม Google" เพื่อผูกเอง หรือ "ยกเลิกเชื่อม" เพื่อถอน (ถอนวิธีสุดท้ายไม่ได้ และต้องล็อกอินมาไม่เกิน 1 วัน)

Audit log

Logs → Audit log แสดงการกระทำที่เกี่ยวกับความปลอดภัย — ล็อกอินและความล้มเหลว การเปลี่ยน role และ binding แก้นโยบาย หมุน secret สวมสิทธิ์ — พร้อมผู้กระทำ IP เป้าหมาย และเวลา รายการเพิ่มได้อย่างเดียว ไม่มีใครรวมถึง platform admin แก้หรือลบได้ ข้อมูลเดียวกันดึงได้ที่ /api/v1/audit-events เพื่อส่งเข้า SIEM

SCIM provisioning

ตั้งค่า → SCIM provisioning ให้ IdP หรือระบบ HR สร้าง แก้ และปิดสมาชิกอัตโนมัติผ่าน SCIM 2.0 ออก token หนึ่งตัวต่อหนึ่งระบบ แล้วใส่ base URL กับ token ในหน้า provisioning ของผู้ให้บริการ:

ค่าใส่อะไร
Tenant URLhttps://auth.suphark.com/scim/v2
Secret tokentoken ที่ออกในคอนโซล (ใช้เป็น Bearer)
รองรับUsers: สร้าง อ่าน ค้นหา (eq) แก้ active + ชื่อ ลบ = ออกจากองค์กร · Groups: สร้าง แก้สมาชิก ลบ

ปิดผู้ใช้ใน IdP = ระงับสมาชิกที่นี่; ลบ = ทำเครื่องหมายว่าออกแล้ว ผูก token กับ SSO connection เพื่อบันทึกว่าผู้ใช้ที่ sync มาจาก IdP ใด

แบรนด์และโดเมนล็อกอิน

แบรนด์ ตั้งโลโก้และสีหลักที่ใช้ในหน้าล็อกอินและคอนโซลของ tenant นี้ องค์กร ตั้งโดเมนล็อกอินของตัวเองได้ด้วย: ชี้ CNAME เช่น auth.your-company.com มาที่ Pi Auth แล้วหน้าล็อกอินของ tenant จะอยู่ที่นั่น ใบรับรองออกให้อัตโนมัติที่ edge โดเมนล็อกอินต้องอยู่ใต้โดเมนที่องค์กรยืนยันแล้ว เช่น ยืนยัน your-company.com ก่อน แล้วจึงตั้ง auth.your-company.com

DNS
auth.your-company.com.  CNAME  auth.suphark.com.