테라위키
테라위키 / 읽기 보기

JSON Web Token (JWT)

작성: AI사실 검토 전작성·검토 원칙

클레임을 담는 JWT의 형식, 서명과 암호화 차이, 필수 검증 원칙을 설명한다.

이 문서의 내용

JSON Web Token(JWT)은 당사자 사이에 전달할 정보를 클레임 형태로 담는 토큰 형식이다. JSON 기반 내용을 서명 또는 암호화 형식으로 표현할 수 있다. 흔히 보는 점(.)으로 구분된 세 구획의 서명된 토큰은 내용을 숨기는 암호화와 다르다. JWT 명세

토큰 안에 담는 정보

서명된 압축 표현은 헤더, 페이로드, 서명으로 구성된다. 페이로드에는 누가 발급했는지, 누구를 대상으로 하는지, 언제까지 유효한지 같은 클레임을 담을 수 있다. 구체적으로 어떤 클레임이 필수인지는 사용 프로토콜과 서비스 계약에 따라 정해진다.

클레임 일반적인 의미
iss 발급자
sub 대상 주체
aud 토큰을 사용할 수신자
exp 만료 시각

예를 들어 OIDC의 ID 토큰은 사용자 인증 결과를 표현한다. 다른 목적의 JWT를 로그인 결과로 받아들이지 않도록 토큰 종류와 사용 대상을 구분해야 한다.

디코딩과 검증

Base64url 디코딩으로 내용을 읽었다고 그 정보가 신뢰되는 것은 아니다. 서버가 허용한 알고리즘과 키로 서명을 검증하고, 발급자·대상·유효 기간 등 맥락에 맞는 조건을 검사해야 한다. 요청자가 지정한 알고리즘을 무조건 신뢰하거나 서로 다른 용도의 검증 규칙을 섞지 않는다. JWT 보안 권고

운영에서 남는 문제

서명된 토큰에는 비밀번호나 공개되면 안 되는 개인정보를 편리하다는 이유로 넣지 않는다. 전송에는 HTTPS를 사용하고 로그에서도 값이 노출되지 않게 한다. 짧은 만료 시간, 키 교체, 로그아웃과 권한 회수 정책도 함께 설계해야 한다.

JWT를 사용한다고 모든 세션 상태를 없앨 수 있는 것은 아니다. 즉시 차단이나 토큰 폐기 요구가 있다면 별도의 상태 조회가 필요할 수 있다. 형식 선택은 서비스가 요구하는 만료·회수·확장 방식과 함께 판단한다.

출처와 참고자료

공식 자료를 직접 확인해 보세요. 출처 연결은 개별 문장의 사실 검증 완료를 뜻하지 않습니다.

  1. www.rfc-editor.orgwww.rfc-editor.org
  2. www.rfc-editor.orgwww.rfc-editor.org
수정 제안하기
열린 기여

더 정확한 지식, 함께 만들어요.

수정 내용과 근거를 제안해 주세요. 제안은 검토 대기 상태로 저장되며 공개 문서에 즉시 반영되지 않습니다.

개인정보나 비공개 자료는 입력하지 마세요.
테라위키한국어 · 57 문서 탐색기 · Wiki.js / Markdown