Fine-Grained Authorization
Định nghĩa
Fine-Grained Authorization là authorization kiểm quyền ở mức actor, action, resource và context cụ thể, thay vì chỉ hỏi user thuộc role chung nào.
Cách hiểu bằng lời của tôi
Khi hệ thống nhỏ, rule kiểu “admin được đọc mọi thứ” có thể đủ. Khi sản phẩm có nhiều resource, tenant, vùng địa lý, ownership và privacy rule, authorization phải trả lời câu chi tiết hơn: ai, làm gì, trên object nào, trong điều kiện nào, với dữ liệu mới tới mức nào.
Hai hướng phổ biến
- Attribute-Based Access Control: quyết định dựa trên thuộc tính của actor/resource/action/environment.
- Relationship-Based Access Control: quyết định dựa trên quan hệ giữa user, group, folder, document, channel hoặc object.
Trade-off
- Chính xác hơn RBAC thô, nhưng policy/model phức tạp hơn.
- Cần audit, test và observability cho decision path.
- Caching giúp latency nhưng phải cẩn thận với quyền vừa bị revoke.
- Policy nên tách khỏi application code để dễ thay đổi và review.