개념) JWT란?

dong.___.ju·2025년 7월 5일

개념

목록 보기
3/3

JWT(JSON Web Token)란?


JWT는 Json Web Token의 약자로, 웹에서 인증 및 정보 전달을 위해 널리 사용되는 토큰 기반 인증 방식이다.

주로 클라이언트와 서버 간의 인증에 사용되며, 토큰 자체에 필요한 정보를 담아 별도의 세션 저장소 없이 인증을 처리할 수 있다.

JWT의 구조

JWT는 아래와 같이 3개의 부분으로 구성된다.

구성 요소설명
Header토큰의 타입(JWT)과 서명에 사용된 알고리즘 정보가 담김
Payload실제로 전달하고자 하는 정보(클레임, 예: 사용자 ID, 권한 등)
Signature위변조 방지를 위한 서명. Header와 Payload를 비밀키로 암호화
  • 각 부분은 Base64Url로 인코딩되어 .(점)으로 구분된다.
  • 예시: xxxxx.yyyyy.zzzzz

JWT 동작 방식

  1. 로그인 요청: 사용자가 ID/PW로 로그인 요청한다
  2. 토큰 발급: 서버가 사용자 정보를 확인 후 JWT를 생성해 클라이언트에 전달한다.
  3. 토큰 저장: 클라이언트는 JWT를 저장한다.
  4. 인증 요청: 클라이언트가 서버에 요청 시 JWT를 HTTP 헤더(Authorization)에 포함한다.
  5. 검증 및 응답: 서버는 JWT의 유효성을 검증 후 요청 처리한다.

JWT의 장점

  • Stateless: 서버가 별도의 세션 저장소를 관리하지 않아도 된다.
  • 확장성: 마이크로서비스 등 분산 환경에서 인증 서버에 의존하지 않고 사용 가능하다.
  • 위변조 방지: 서명(Signature)으로 토큰의 변조 여부를 쉽게 확인할 수 있다.
  • 편리한 정보 전달: 인증에 필요한 정보를 토큰에 직접 담아 전송한다.

JWT의 단점

  • Payload 노출: Payload는 암호화되지 않아 민감한 정보는 담으면 안된다.
  • 토큰 탈취 위험: 토큰이 유출되면 만료 전까지 누구나 사용할 수 있다.
  • 토큰 폐기 어려움: 서버에서 토큰을 강제로 만료시키기 어렵다.
  • 토큰 크기: 세션 ID보다 크기가 커 네트워크 비용이 증가할 수 있다.

JWT 사용 시 주의할 점

  • 민감 정보는 Payload에 저장하지 않아야하고

  • HTTPS 사용으로 토큰 탈취 방지 주의

  • 적절한 만료 시간 설정

  • Refresh Token과 Access Token 분리 사용 권장등이 있다.

JWT의 실사용 분야

활용 분야설명장점 및 특징
사용자 인증 세션 관리로그인 후 JWT 발급, 요청 시 JWT로 인증 유지서버 세션 저장 불필요, 확장성 우수
API 권한 제어JWT에 권한 정보 포함, API 접근 시 권한 검증무상태(stateless), 빠른 인증 처리
단일 로그인(SSO)여러 서비스 간 JWT 공유로 통합 인증 제공사용자 편의성 증대, 신뢰성 있는 토큰
서버 간 정보 교환서명된 JWT로 안전한 데이터 전송 및 무결성 보장안전하고 신뢰성 높은 통신
로그아웃 처리클라이언트 토큰 삭제, 서버 블랙리스트 관리보안 강화, 탈취 토큰 차단 가능

마무리

JWT는 간편하고 확장성 있는 인증 방식으로,

최근 웹 서비스에서 많이 사용되고 있는 방식이다.
하지만 보안상의 단점도 존재하므로, 장단점을 잘 이해하고 적절히 사용하는 것이 중요하다.

0개의 댓글