WEBBOOK CHAPTER

NestJS 11, 시작부터 런칭까지: 35장. OAuth와 업무 인가를 공격자 관점에서 시험한다

35장. OAuth와 업무 인가를 공격자 관점에서 시험한다

API Guard는 JWT signature, issuer, audience, expiry, not-before, 허용 algorithm을 검증한다. JWKS key가 없을 때 제한적으로 refresh하되 요청 폭주가 provider stampede를 만들지 않게 한다. token decode 결과나 email claim 하나를 신원 증명으로 쓰지 않는다. 로그에는 token과 Authorization header를 남기지 않는다.

scope dispatch.write는 기능 권한이고 resource ownership은 별 domain 검사다. 다른 tenant의 DH-1842 id를 바꿔 호출하는 IDOR test를 둔다. 운영자 override는 목적·승인·시간 제한·audit가 필요하다. 401과 403, 민감 resource의 404 정책을 일관되게 적용한다.

fixture issuer에서 old/new signing key overlap, 만료, 잘못된 audience, alg 변조, clock skew를 E2E한다. JWKS endpoint timeout 중 cached old key와 new key token의 behavior를 기록한다. 장애 대응으로 검증을 끄는 option은 만들지 않는다.