Backend nền tảng
F7 · Authentication và Authorization
AuthN = Bạn là ai? (mật khẩu, sinh trắc học, OTP).
F7 · Junior
Authentication: bảo vệ kiểm tra CMND – bạn là ai. Authorization: thẻ nhân viên cho vào tầng nào – bạn được làm gì.
Cốt lõi
- AuthN = Bạn là ai? (mật khẩu, sinh trắc học, OTP).
- AuthZ = Bạn được làm gì? (quyền hạn, vai trò).
- Mô hình phân quyền: RBAC (theo vai trò), ABAC (theo thuộc tính).
Đánh đổi
AuthN luôn đi trước AuthZ. Lỗi 401 = chưa xác thực; 403 = không có quyền.
Trong thực tế
Admin được xóa, User chỉ được đọc.
Bug thường gặp
Chỉ kiểm tra đã đăng nhập mà không kiểm tra quyền sở hữu → đổi /orders/123 thành /orders/124 là xem được đơn của người khác (IDOR).
Tự hỏi lại
Khi nào RBAC không đủ và cần ABAC?