Web Basic · Auth

인증과 권한의 분리 모델

인증은 사용자가 누구인지 확인하는 단계이고, 권한은 그 사용자가 특정 리소스에 무엇을 할 수 있는지 판단하는 별도 단계다.

01

신원 확인

비밀번호, OAuth, 패스키 등으로 사용자의 신원을 검증한다.

02

세션 발급

서버는 세션 id 또는 토큰을 발급하고 만료 정책을 둔다.

03

요청 인증

매 요청마다 credential을 확인해 사용자 컨텍스트를 만든다.

04

권한 판정

리소스 소유자, 역할, 조직 범위를 기준으로 행동 가능 여부를 결정한다.

Session
서버 저장 상태 쿠키에는 식별자만 두고 서버가 상태를 관리
로그아웃·강제 만료가 쉬움
JWT
서명된 claim 서버 저장 없이 claim을 검증할 수 있음
탈취와 만료 관리 점검
RBAC
역할 기반 권한 admin, editor, viewer처럼 역할로 행동을 묶음
예외가 많으면 복잡해짐
Ownership
리소스 소유권 내 글만 수정, 내 주문만 조회 같은 판정
role 체크만으로 부족

서버 검증 · 만료 · 민감 작업 점검

서버 검증 버튼을 숨기는 것과 별개로 API에서 권한을 다시 확인한다.
만료 세션과 refresh token의 수명, 회전, 폐기 규칙이 있다.
민감 작업 비밀번호 변경, 결제, 관리자 작업은 추가 확인을 둔다.
감사 로그 권한 변경과 로그인 실패가 추적된다.