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

การอนุญาต (Authorization)

การอนุญาต (Authorization) ใน Logto คือการกำหนดว่า ผู้ใช้และแอปสามารถทำอะไรได้บ้างหลังการยืนยันตัวตน: API, ทรัพยากร หรือการกระทำใดที่อนุญาตสำหรับแต่ละอัตลักษณ์

Logto มอบการอนุญาตแบบยืดหยุ่นโดยใช้โทเค็น สำหรับแอป SaaS และ AI สมัยใหม่ คุณสามารถปกป้องทรัพยากร API ได้ทั้งในระดับโกลบอล หรือในบริบทของแต่ละองค์กร ทุกสิทธิ์ถูกจัดการผ่านระบบ การควบคุมการเข้าถึงตามบทบาท (RBAC) พร้อมรองรับแอปหลายผู้เช่าขั้นสูงด้วย เทมเพลตองค์กร นอกจากควบคุมสิ่งที่ผู้ใช้ทำได้แล้ว คุณยังสามารถจำกัดว่าผู้ใช้คนใดสามารถลงชื่อเข้าใช้แต่ละแอปพลิเคชันได้ด้วย การควบคุมการเข้าถึงระดับแอป

แนวคิดหลัก

  • การควบคุมการเข้าถึงตามบทบาท (RBAC): Logto ใช้ RBAC เป็นรากฐานในการกำหนดสิทธิ์ให้กับผู้ใช้ ไคลเอนต์ และบริการ เรียนรู้เพิ่มเติมเกี่ยวกับ RBAC
  • ทรัพยากร API: บริการ backend หรือ endpoint ใด ๆ ที่คุณต้องการปกป้อง (ระดับโกลบอลหรือเฉพาะองค์กร)
  • บทบาท (Role): กลุ่มของสิทธิ์ (เช่น admin, viewer, editor)
  • สิทธิ์ (Permission; ขอบเขต): การกระทำที่อนุญาตเฉพาะ (เช่น read:report, invite:member)
  • องค์กร (Organization): แทนผู้เช่า, เวิร์กสเปซ หรือ ลูกค้าในแอปของคุณ แตกต่างจาก Logto tenant ซึ่งหมายถึงโปรเจกต์หรืออินสแตนซ์ Logto โดยรวมของคุณ
  • เทมเพลตองค์กร (Organization template): สำหรับแอปหลายผู้เช่า กำหนดชุดบทบาทและสิทธิ์ที่นำกลับมาใช้ซ้ำได้ในทุกองค์กร ดูวิธีการทำงานของเทมเพลตองค์กร
  • โทเค็นการเข้าถึง / โทเค็นองค์กร: โทเค็นที่มีการอ้างสิทธิ์ (claims) สำหรับสิทธิ์ระดับโกลบอลหรือระดับองค์กร

รูปแบบการอนุญาต

มีรูปแบบการอนุญาตหลัก 3 แบบใน Logto เลือกสถานการณ์ที่ตรงกับความต้องการของคุณ:

สถานการณ์ใช้เมื่อใดประเภทโทเค็นการตั้งค่าบทบาทเรียนรู้เพิ่มเติม
สิทธิ์ทรัพยากร API ระดับโกลบอลปกป้องทรัพยากร API ที่ใช้ร่วมกันใน Logto tenant ทั้งหมด (ไม่เฉพาะองค์กร)โทเค็นการเข้าถึงกำหนดบทบาท/สิทธิ์ระดับโกลบอลปกป้องทรัพยากร API ระดับโกลบอล
สิทธิ์องค์กร (ไม่ใช่ API)ควบคุมการกระทำเฉพาะองค์กร, ฟีเจอร์ UI หรือ business logic (ไม่ใช่ API)โทเค็นองค์กรกำหนดบทบาท/สิทธิ์องค์กรสำหรับควบคุมแอปปกป้องสิทธิ์องค์กร (ไม่ใช่ API)
สิทธิ์ทรัพยากร API ระดับองค์กรปกป้องทรัพยากร API ที่เข้าถึงได้ในองค์กรเฉพาะโทเค็นองค์กรกำหนดบทบาท/สิทธิ์องค์กรสำหรับ API ขององค์กรปกป้องทรัพยากร API ระดับองค์กร

Logto สร้างโมเดลทรัพยากร API ตาม RFC 8707 โดยใช้พารามิเตอร์ resource ใน OAuth 2.0 authorization flows ทำให้การปกป้องหลาย API หรือ microservices เป็นเรื่องง่าย และรับรองความเข้ากันได้กับระบบมาตรฐานอื่น ๆ

รูปแบบเหล่านี้ควบคุมสิ่งที่ผู้ใช้สามารถทำได้ หลัง ลงชื่อเข้าใช้แอปพลิเคชัน หากต้องการควบคุมว่าผู้ใช้จะสามารถลงชื่อเข้าใช้แอปใดได้หรือไม่ ให้ใช้ การควบคุมการเข้าถึงระดับแอป ซึ่งจำกัดการเข้าถึงแอปด้วยกฎ allow ตามผู้ใช้, บทบาท, องค์กร หรือบทบาทองค์กร และทำงานแยกจากรูปแบบที่ใช้โทเค็นข้างต้น

เคล็ดลับ:

ต้องการการอ้างสิทธิ์ (claims) แบบกำหนดเองหรือการควบคุมการเข้าถึงขั้นสูง? ดู Custom token claims

การทำงานของการอนุญาตใน Logto

  • ใช้โทเค็นเป็นหลัก: ทุกการเข้าถึงจะได้รับอนุญาตผ่านโทเค็นการเข้าถึงที่ปลอดภัยและลงลายเซ็นต์ ฝั่ง backend ของคุณจะตรวจสอบโทเค็นและบังคับใช้สิทธิ์ (ขอบเขต)

  • สิทธิ์ (ขอบเขต) ระดับโกลบอล vs. องค์กร:

    • สิทธิ์ (ขอบเขต) ระดับโกลบอล: ควบคุมการเข้าถึงทรัพยากร API ทั่วทั้ง Logto tenant ของคุณ
    • สิทธิ์ (ขอบเขต) ระดับองค์กร: ควบคุมทั้ง business logic (ฟีเจอร์แอป) และทรัพยากร API ในบริบทขององค์กร สิทธิ์องค์กรสามารถใช้กับฟีเจอร์ที่ไม่ใช่ API (เช่น UI หรือ workflow) และ/หรือ endpoint API ที่อยู่ในขอบเขตองค์กร
  • บทบาทและสิทธิ์ (ขอบเขต): บทบาทคือชุดของสิทธิ์ (ขอบเขต) กำหนดบทบาทให้กับผู้ใช้หรือไคลเอนต์ในระดับโกลบอลหรือในองค์กร ขึ้นอยู่กับสถานการณ์ของคุณ

ขั้นตอนถัดไป

พร้อมไปต่อหรือยัง? เริ่มลงมือจริง สำรวจคู่มือสถานการณ์จริง หรือเจาะลึกความเข้าใจของคุณ:

กรณีการใช้งาน

มองหาตัวอย่างจริงและสถานการณ์ในโลกจริงใช่ไหม? ดูคู่มือเหล่านี้:

อ่านเพิ่มเติม

RBAC และ ABAC: โมเดลควบคุมการเข้าถึงที่คุณควรรู้

ควรใช้ JWTs เมื่อใด? วิธีการอนุญาต API