RBAC는 사용자, 역할, 권한, 자원을 분리해 검사한다
로그인한 사용자라도 어떤 역할을 가지고 어떤 자원에 어떤 동작을 할 수 있는지 별도로 확인해야 한다.
| 구성 | 역할 | 예시 | 실패 신호 |
|---|---|---|---|
| User | 로그인한 주체 | alice, manager | 인증만 하고 권한은 검사하지 않음 |
| Role | 권한 묶음 | admin, editor, viewer | 역할 이름이 실제 권한과 맞지 않음 |
| Permission | 허용 동작 | user:read, post:delete | 코드 곳곳에 조건문이 흩어짐 |
| Resource | 보호 대상 | post, order, admin page | 자원 소유자 조건 누락 |
| Policy | 역할과 권한 매핑 | role-permission table | 변경 이력이 추적되지 않음 |
인증은 누구인지 확인하는 일이고, 인가는 그 사용자가 무엇을 할 수 있는지 결정하는 일이다.