การอนุญาต (Authorization)
การอนุญาต (Authorization) ใน Logto กำหนดว่า ผู้ใช้และแอปสามารถทำอะไรได้บ้างหลังการยืนยันตัวตน: API, ทรัพยากร หรือการกระทำใดที่อนุญาตสำหรับแต่ละอัตลักษณ์
Logto มอบการอนุญาตแบบยืดหยุ่นโดยใช้โทเค็น สำหรับแอป SaaS และ AI สมัยใหม่ คุณสามารถปกป้องทรัพยากร API ได้ทั้งในระดับโกลบอล หรือในบริบทของแต่ละองค์กร การจัดการสิทธิ์ทั้งหมดทำผ่าน การควบคุมการเข้าถึงตามบทบาท (RBAC) พร้อมรองรับแอปหลายผู้เช่า (multi-tenant) ขั้นสูงด้วย เทมเพลตองค์กร
แนวคิดหลัก
- การควบคุมการเข้าถึงตามบทบาท (RBAC): Logto ใช้ RBAC เป็นรากฐานในการกำหนดสิทธิ์ให้กับผู้ใช้ ไคลเอนต์ และบริการ เรียนรู้เพิ่มเติมเกี่ยวกับ RBAC
- ทรัพยากร API: บริการ backend หรือ endpoint ใด ๆ ที่คุณต้องการปกป้อง (ทั้งแบบโกลบอลหรือเฉพาะองค์กร)
- บทบาท (Role): กลุ่มของสิทธิ์ (เช่น ผู้ดูแลระบบ, ผู้ชม, ผู้แก้ไข)
- สิทธิ์ (Permission; ขอบเขต): การกระทำที่อนุญาตเฉพาะเจาะจง (เช่น
read:report
,invite:member
) - องค์กร (Organization): แทนผู้เช่า, พื้นที่ทำงาน หรือ ลูกค้าในแอปของคุณ แตกต่างจาก Logto tenant ซึ่งหมายถึงโปรเจกต์หรืออินสแตนซ์ Logto โดยรวมของคุณ
- เทมเพลตองค์กร (Organization template): สำหรับแอปหลายผู้เช่า กำหนดชุดบทบาทและสิทธิ์ที่นำกลับมาใช้ซ้ำได้ในทุกองค์กร ดูวิธีการทำงานของเทมเพลตองค์กร
- โทเค็นการเข้าถึง / โทเค็นองค์กร (Access token / organization token): โทเค็นที่มีการอ้างสิทธิ์ (claims) สำหรับสิทธิ์ระดับโกลบอลหรือในขอบเขตองค์กร
รูปแบบการอนุญาต
ใน Logto มีรูปแบบการอนุญาตหลัก 3 แบบ เลือกตามความต้องการของคุณ:
รูปแบบ | ใช้เมื่อไร | ประเภทโทเค็น | การตั้งค่าบทบาท | เรียนรู้เพิ่มเติม |
---|---|---|---|---|
สิทธิ์ทรัพยากร API ระดับโกลบอล | ปกป้องทรัพยากร API ที่ใช้ร่วมกันใน Logto tenant ทั้งหมด (ไม่เฉพาะองค์กร) | โทเค็นการเข้าถึง | กำหนดบทบาท/สิทธิ์ระดับโกลบอล | ปกป้องทรัพยากร API ระดับโกลบอล |
สิทธิ์องค์กร (ไม่ใช่ API) | ควบคุมการกระทำเฉพาะองค์กร, ฟีเจอร์ UI หรือ business logic (ไม่ใช่ API) | โทเค็นองค์กร | กำหนดบทบาท/สิทธิ์องค์กรสำหรับการควบคุมแอป | ปกป้องสิทธิ์องค์กร (ไม่ใช่ API) |
สิทธิ์ทรัพยากร API ระดับองค์กร | ปกป้องทรัพยากร API ที่เข้าถึงได้ในแต่ละองค์กร | โทเค็นองค์กร | กำหนดบทบาท/สิทธิ์องค์กรสำหรับ API ขององค์กร | ปกป้องทรัพยากร API ระดับองค์กร |
Logto สร้างโมเดลทรัพยากร API ตาม RFC 8707 โดยใช้พารามิเตอร์ resource
ใน OAuth 2.0 authorization flow ช่วยให้ปกป้องหลาย API หรือ microservices ได้ง่าย และรองรับมาตรฐานอื่น ๆ
ต้องการการอ้างสิทธิ์แบบกำหนดเองหรือการควบคุมการเข้าถึงขั้นสูง? ดู Custom token claims
การทำงานของการอนุญาตใน Logto
-
ใช้โทเค็นเป็นหลัก: ทุกการเข้าถึงได้รับอนุญาตผ่านโทเค็นการเข้าถึงที่ปลอดภัยและลงลายเซ็นต์ Backend ของคุณจะตรวจสอบโทเค็นและบังคับใช้สิทธิ์ (ขอบเขต)
-
สิทธิ์ (ขอบเขต) ระดับโกลบอล vs. องค์กร:
- สิทธิ์ (ขอบเขต) ระดับโกลบอล: ควบคุมการเข้าถึงทรัพยากร API ทั่วทั้ง Logto tenant ของคุณ
- สิทธิ์ (ขอบเขต) ระดับองค์กร: ควบคุมทั้ง business logic (ฟีเจอร์แอป) และทรัพยากร API ในบริบทขององค์กร สิทธิ์องค์กรสามารถใช้กับฟีเจอร์ที่ไม่ใช่ API (เช่น UI หรือ workflow) และ/หรือ endpoint API ที่อยู่ในขอบเขตองค์กร
-
บทบาทและสิทธิ์ (ขอบเขต): บทบาทคือกลุ่มของสิทธิ์ (ขอบเขต) กำหนดบทบาทให้ผู้ใช้หรือไคลเอนต์ในระดับโกลบอลหรือในองค์กร ขึ้นอยู่กับรูปแบบการใช้งานของคุณ
ขั้นตอนถัดไป
พร้อมไปต่อหรือยัง? เริ่มลงมือจริง สำรวจคู่มือสถานการณ์จริง หรือเจาะลึกความเข้าใจ:
เชี่ยวชาญการจัดการบทบาทและสิทธิ์เพื่อควบคุมการเข้าถึงอย่างละเอียด
เรียนรู้วิธีตั้งค่าบทบาทและสิทธิ์ที่นำกลับมาใช้ซ้ำสำหรับแอปหลายผู้เช่า
รักษาความปลอดภัย API ที่ใช้ร่วมกันใน Logto tenant ด้วยบทบาทและสิทธิ์ระดับโกลบอล
ควบคุมการกระทำและฟีเจอร์ UI เฉพาะองค์กรด้วยบทบาทองค์กร
รักษาความปลอดภัย API ที่เข้าถึงได้ในแต่ละองค์กรด้วยบทบาทองค์กร
เรียนรู้วิธีตรวจสอบโทเค็น Logto ใน backend ของคุณเพื่อรักษาความปลอดภัย API
เรียนรู้วิธีเพิ่มการอ้างสิทธิ์แบบกำหนดเองสำหรับสถานการณ์ควบคุมการเข้าถึงขั้นสูง
กรณีการใช้งาน
มองหาตัวอย่างจริงและสถานการณ์ในโลกจริง? ดูคู่มือต่อไปนี้:
ดูตัวอย่างจริงทีละขั้นตอนของการอนุญาตที่ปลอดภัยด้วย RBAC
ติดตามคู่มือสถาปัตยกรรมและการใช้งานแอป SaaS หลายผู้เช่าแบบครบวงจร
อ่านเพิ่มเติม
RBAC และ ABAC: โมเดลการควบคุมการเข้าถึงที่คุณควรรู้
ควรใช้ JWTs เมื่อไร? วิธีการอนุญาต API