Role based access

사용자 역할과 라우트 요구 역할을 가드가 비교한다

RBAC는 권한을 사용자에게 직접 붙이지 않고 역할에 묶는다. 요청이 들어오면 NestJS는 먼저 사용자를 확인하고, 그 다음 라우트가 요구하는 역할과 맞는지 판단한다.

사용자

JWT payload나 DB에 현재 사용자의 역할 목록이 들어 있다.

user admin

라우트

컨트롤러 메서드는 접근에 필요한 역할을 메타데이터로 표시한다.

@Roles('admin')

가드

사용자 역할과 요구 역할의 교집합이 있으면 통과시키고, 없으면 403으로 막는다.

allow 403

핵심: 인증은 “누구인가”를 만들고, RBAC 인가는 “무엇을 할 수 있는가”를 비교한다.