🛡️

ระบบสิทธิ์และ Role (RBAC)

ควบคุมว่าใครเข้าถึงอะไรได้ ระบบ RBAC สำหรับเว็บและแอป พร้อมตัวอย่างจริง

🔄 โฟลการทำงาน RBAC

👤ผู้ใช้ส่ง Request🔐AuthMiddlewareตรวจ JWT Tokenดึง Role🛡️PermissionGuardเทียบ Role vs Resourceเช็ค Action อนุญาต?✅ อนุญาตเข้าถึง Resource ได้❌ ปฏิเสธ403 Forbidden🗄️Role & PermissionDB / ConfigRole → สิทธิ์ → ทรัพยากร → การกระทำ (CRUD)

📋 ขั้นตอนการทำงาน RBAC

1
👤ผู้ใช้
ส่ง HTTP request ไปยัง Endpoint ที่ Protected (เช่น GET /api/orders)
2
🔐Auth Middleware
ดึง JWT จาก Authorization header → ตรวจสอบ Signature → Decode payload
3
🎫Auth Middleware
ดึง user_id + role จาก JWT payload → แนบเข้า Request context
4
🛡️Permission Guard
เช็ค: Role นี้มีสิทธิ์เข้าถึง Resource + Action นี้ไหม?
5
🗄️Permission Guard
ค้นหา Role → สิทธิ์ใน DB/config (Cache ใน Redis เพื่อความเร็ว)
6
⚖️Permission Guard
ถ้า ALLOWED → ส่งต่อ Request ไป Controller ถ้า DENIED → คืน 403 Forbidden
7
🔒Controller
Filter ระดับข้อมูลเพิ่มเติม: WHERE owner_id = user.id (Row-level security)
8
🗄️Database
คืนเฉพาะข้อมูลที่ได้รับอนุญาต (ไม่คืนข้อมูลทั้งหมดโดยไม่กรอง)
9
Response
ส่ง Response ที่กรองแล้ว → Frontend ซ่อน UI ตาม Role ด้วย

📋 ตัวอย่าง Permission Matrix

Roleproductsordersusersreportssettings
Super AdminCRUDCRUDCRUDCRUDCRUD
Store ManagerCRUDCRUDอ่านอ่านอ่าน
พนักงานอ่าน/แก้ไขอ่าน/แก้ไข
ลูกค้าอ่านของตัวเองโปรไฟล์ตัวเอง

🧠 แนวคิดสำคัญในระบบสิทธิ์

🏷️

RBAC

Role-Based Access Control กำหนดสิทธิ์ให้ Role กำหนด Role ให้ User ง่าย Scale ได้ ตรวจสอบง่าย

🎯

ABAC

Attribute-Based Access Control ละเอียดกว่า RBAC ควบคุมตาม เวลา สถานที่ แผนก คุณสมบัติของ Resource

🔒

Row-Level Security

กรองข้อมูลระดับ Database ลูกค้าเห็นแค่ Order ของตัวเองแม้จะเรียก API เดียวกัน

📋

Permission Matrix

ตารางแมป Role → Resource → Action (CRUD) ตรวจสอบและอัปเดตได้ง่ายว่าใครทำอะไรได้

⚖️

Least Privilege

ให้สิทธิ์ผู้ใช้เท่าที่จำเป็นสำหรับงานของตัวเอง ลดความเสี่ยงจากข้อมูลรั่วไหล

📜

Audit Logging

บันทึกทุกการกระทำที่สำคัญ: ใครทำอะไร เมื่อไหร่ จากที่ไหน จำเป็นสำหรับ Compliance

ต้องการระบบสิทธิ์ที่ปลอดภัย? 🛡️

เราออกแบบระบบ RBAC พร้อม Role hierarchy, Row-level security และ Audit logging

← กลับหน้าเรียนติดต่อเรา