피드로 돌아가기
Dev.toSecurity
원문 읽기
Stateless HTTP 한계 극복을 위한 Session 기반에서 Token 기반 인증 구조로의 전환
Cookie, Session và Token-based authentication
AI 요약
Context
HTTP 프로토콜의 Stateless 특성으로 인해 개별 Request 간 상태 유지가 불가능한 제약 발생. 단순 Cookie 기반 저장 방식은 보안 취약점으로 인해 서버 측 상태 관리를 위한 Session 도입이 필요했으나, 서버 확장 시 데이터 동기화 비용이 발생하는 한계 노출.
Technical Solution
- Client-Server 간 식별자 공유를 통한 Session ID 기반의 상태 유지 구조 설계
- Session ID를 Cookie에 저장하여 Request마다 자동 전송함으로써 서버 내 메모리/DB 매핑을 통한 사용자 식별
- 서버 메모리 의존성을 제거하기 위해 사용자 정보를 암호화한 JWT(JSON Web Token) 도입
- Token 내 Role 및 ID를 포함하고 Secret Key로 서명하여 서버 저장소 조회 없이 자체 검증하는 Stateless 구조 구현
- Authorization Header의 Bearer Token 방식을 통한 Web API 및 Mobile 환경의 인증 최적화
실천 포인트
- 단일 서버 환경이며 보안이 최우선인 경우 서버 제어가 가능한 Session 방식 검토 - Microservices Architecture(MSA) 또는 다중 서버 Scale-out 환경인 경우 JWT 기반 Token 인증 채택 - Token 사용 시 클라이언트의 Local Storage 또는 Cookie 저장소 선택에 따른 보안 위협 분석 - 인증(Authentication)과 인가(Authorization) 프로세스의 명확한 분리 설계