Attribute-Based Access Control
Định nghĩa
Attribute-Based Access Control là access control model dùng policy condition dựa trên attributes của actor, resource, action và environment để quyết định allow/deny.
Cách hiểu bằng lời của tôi
ABAC hữu ích khi role không đủ diễn đạt business rule. Ví dụ support chỉ được xem payment của khách ở vùng mình phụ trách, hoặc employee chỉ được xem hồ sơ của chính mình hay người mình quản lý. Quyền không còn là danh sách tĩnh; nó là biểu thức được evaluate với context runtime.
Cơ chế từ Uber Charter
request(actor, action, resource)
-> match policy cơ bản
-> nếu policy có condition, expression engine tìm attributes cần dùng
-> lấy attributes từ [[Policy Information Point]]
-> evaluate boolean expression
-> allow/denyLợi ích
- Một policy tổng quát có thể áp cho nhiều resource.
- Attribute thay đổi thì decision thay đổi mà không cần deploy code.
- Tách policy khỏi business logic giúp audit và governance dễ hơn.
- Có thể bảo vệ microservice endpoint, database query, Kafka topic và internal tools.