การยืนยันตัวตน (Authentication) กับ การอนุญาต (Authorization)
ความแตกต่างระหว่าง การยืนยันตัวตน (Authentication) และ การอนุญาต (Authorization) สามารถสรุปได้ดังนี้:
- การยืนยันตัวตน (Authentication) ตอบคำถามว่า “คุณมีอัตลักษณ์ใด?”
- การอนุญาต (Authorization) ตอบคำถามว่า “คุณสามารถทำอะไรได้บ้าง?”
สำหรับบทนำเกี่ยวกับระบบจัดการเอกลักษณ์และการเข้าถึงของลูกค้า (CIAM) แบบครบถ้วน สามารถดูได้จากชุดบทความของเรา:
การยืนยันตัวตน (Authentication)
Logto รองรับวิธีการยืนยันตัวตนทั้งแบบโต้ตอบและไม่โต้ตอบหลายรูปแบบ ตัวอย่างเช่น:
- ประสบการณ์การลงชื่อเข้าใช้: กระบวนการยืนยันตัวตนสำหรับผู้ใช้ปลายทาง
- การยืนยันตัวตนระหว่างเครื่อง (Machine-to-machine; M2M): กระบวนการยืนยันตัวตนสำหรับบริการหรือแอปพลิเคชัน
เป้าหมายสูงสุดของการยืนยันตัวตนเรียบง่ายมาก: เพื่อตรวจสอบและรับตัวระบุที่ไม่ซ้ำของเอนทิตี (ใน Logto คือ ผู้ใช้ หรือ แอปพลิเคชัน)
การอนุญาต (Authorization)
ใน Logto การอนุญาตทำผ่านการควบคุมการเข้าถึงตามบทบาท (RBAC). สิ่งนี้ทำให้คุณควบคุมการเข้าถึงของผู้ใช้หรือแอป M2M ของคุณต่อสิ่งต่อไปนี้ได้อย่างเต็มที่:
- ทรัพยากร API (API resources): เอนทิตีระดับโกลบอลที่แสดงด้วย URI แบบสัมบูรณ์
- องค์กร (Organizations): กลุ่มของผู้ใช้หรือแอปพลิเคชัน
- ทรัพยากร API ขององค์กร (Organization API resources): ทรัพยากร API ที่เป็นขององค์กรหนึ่ง
เพื่อเรียนรู้เพิ่มเติมเกี่ยวกับแนวคิดเหล่านี้ ดูแหล่งข้อมูลต่อไปนี้:
นี่คือภาพแสดงความสัมพันธ์ของแนวคิดเหล่านี้:
โดยสรุป การอนุญาตคือการกำหนดกฎว่าหน่วยในกลุ่ม “Identities” สามารถเข้าถึงหน่วยในกลุ่ม “Resources” ได้บ้าง
คำถามที่พบบ่อย
ฉันต้องระบุว่าผู้ใช้คนใดสามารถลงชื่อเข้าใช้แอปพลิเคชัน
ด้วยธรรมชาติของ Single Sign-On (SSO) ปัจจุบัน Logto ไม่รองรับการใช้ “แอปพลิเคชัน” เป็นทรัพยากร โดยคุณสามารถกำหนด “ทรัพยากร API” และ “สิทธิ์ (permissions)” เพื่อควบคุมการเข้าถึงได้แทน
ฉันต้องการให้ผู้ใช้ของฉันลงชื่อเข้าสู่องค์กร
ดังที่กล่าวไป การยืนยันตัวตนคือการตรวจสอบตัวตนของเอนทิตี ในขณะที่การควบคุมการเข้าถึงจัดการผ่านการอนุญาต ดังนั้น:
- การตัดสินใจว่าผู้ใช้สังกัดองค์กรใดเป็นประเด็นของ “การอนุญาต”
- กระบวนการลงชื่อเข้าใช้เป็นประเด็นของ “การยืนยันตัวตน”
นั่นหมายความว่า ไม่มีแนวคิด “ลงชื่อเข้าสู่องค์กร” ใน Logto เมื่อผู้ใช้ได้รับการยืนยันตัวตนแล้ว เขาจะถูกอนุญาตให้เข้าถึงทุกทรัพยากร (รวมถึงทรัพยากรขององค์กร) ตามสิทธิ์ที่กำหนด
โมเดลนี้มีประสิทธิภาพและชัดเจน เพราะแยกความกังวลระหว่างการยืนยันตัวตนกับการอนุญาต ซอฟต์แวร์ SaaS สมัยใหม่ทั้งหมด เช่น GitHub และ Notion ใช้โมเดลนี้
อย่างไรก็ตาม บางกรณีคุณจำเป็นต้องสร้างการแมป 1-1 ระหว่างแหล่งที่มาของผู้ใช้กับองค์กร ในกรณีนี้ Enterprise SSO และ การจัดเตรียม (Provisioning) แบบ Just-in-Time (JIT) ขององค์กร จะช่วยได้
ลูกค้าของเราต้องการปรับแต่งแบรนด์ในหน้าลงชื่อเข้าใช้
โปรดดู การตั้งค่าแบรนด์เฉพาะแอป และ การตั้งค่าแบรนด์เฉพาะองค์กร สำหรับการตั้งค่าที่เกี่ยวข้อง