Access Token

Security

개요

액세스 토큰은 클라이언트가 보호된 리소스(API)에 접근할 권한이 있음을 증명하기 위해 요청에 제시하는 자격증명입니다.

보통 OAuth 2.0 흐름에서 발급되며, `Authorization: Bearer <token>` 헤더에 실어 보냅니다.

자세히

'Bearer 토큰'이라는 이름처럼, 이 토큰을 '소지한 자'는 누구든 그 권한을 행사할 수 있습니다 — 그래서 토큰 유출은 곧 계정 탈취를 뜻하므로 HTTPS 전송, 짧은 수명, 안전한 저장이 필수입니다. 액세스 토큰은 형식상 두 종류입니다. (1) 불투명(opaque) 토큰: 무작위 문자열이며 서버가 저장소를 조회해 유효성을 확인(introspection), 즉시 무효화가 쉽습니다. (2) 자체 포함(self-contained) 토큰: 주로 JWT로, 서명 검증만으로 유효성과 권한을 알 수 있어 저장소 조회 없이 빠르지만 즉시 무효화가 어렵습니다.

수명 관리 패턴이 중요합니다. 액세스 토큰은 짧게(수분~1시간) 두어 유출 피해를 줄이고, 만료되면 오래 사는 리프레시 토큰으로 새 액세스 토큰을 받습니다. 리프레시 토큰은 더 민감하므로 서버 측 저장·회전(rotation)·기기 바인딩으로 보호합니다. 저장 위치도 보안에 직결됩니다 — 자바스크립트가 읽는 localStorage는 XSS에 취약하고, HttpOnly 쿠키는 XSS에는 강하나 CSRF 방어(SameSite)가 필요합니다. API 게이트웨이에서 토큰을 선검증하면 각 백엔드가 인증 로직을 중복하지 않아도 됩니다.

관련 타입