I’m trying to clarify the difference between Role-based Access Control, Policy-based Access Control, and Access Control List when designing an authorization system.
I have two scenarios:
Scenario A
I have a permission table:
| endpoint | user |
|---|---|
| /create | A |
- When user A calls
/create, it works (HTTP 200). - When user B calls
/create, it fails (HTTP 403).
The permission is directly tied to the user. Does this count as Policy-based Access Control or is it actually ACL?
If it is Policy-based, then what would be the definition of an ACL scenario? If it is ACL, how would Policy-based differ in practice?
Scenario B
I have two tables:
user-role
| user | role |
|---|---|
| A | creator |
| B | reader |
role-endpoint
| role | endpoint |
|---|---|
| creator | /create |
| reader | /info |
- When A calls
/create, look up user-role (A → creator), then role-endpoint (creator →/create), so A is allowed (200). - When B calls
/create, B only has role reader, so gets denied (403).
Is this considered the classic RBAC?