JWT(JSON Web Token)란?
JSON 형식의 정보(클레임)를 서명을 붙여 주고받기 위한 형식. '헤더.페이로드.서명'의 세 부분을 각각 Base64URL로 인코딩하여 '.'으로 연결한다. 서명으로 변조 여부와 발행자를 확인할 수 있지만, 일반적인 서명된 JWT에서는 페이로드가 암호화되어 있지 않으므로 비밀 정보는 넣지 않는다. API 인증에 사용하는 액세스 토큰이나 OpenID Connect의 ID 토큰 등에 사용되며, 유효 기간(exp)을 짧게 하여 사용하는 경우가 많다.
일본어 명칭: JWT(JSON Web Token)
JWT(JSON Web Token)은(는) 웹 기술 기초 등 1개 분야의 연습 문제 2개에 나와요.
분야: 웹 기술 기초
자주 묻는 질문
JWT와 세션 ID 중 어느 쪽을 사용해야 하나요?
세션 ID는 서버에 저장한 정보를 찾는 단서에 지나지 않으므로, 로그아웃이나 무효화를 서버 쪽에서 즉시 반영할 수 있습니다. JWT는 서버에 정보를 저장하지 않아도 내용을 확인할 수 있어 여러 서비스 사이에서 주고받는 데 적합하지만, 취소하기 어렵다는 약점이 있습니다. 하나의 웹사이트 로그인에서는 세션 ID 쪽이 다루기 쉬운 경우도 많습니다.
Base64URL과 Base64는 무엇이 다른가요?
Base64URL은 URL 안에서 특별한 의미를 가진 '+'와 '/'를 '-'와 '_'로 바꾸고, 끝의 '='를 생략하는 경우가 많은 Base64의 변형입니다. JWT는 URL이나 HTTP 헤더에 그대로 넣을 수 있도록 이 형식을 사용합니다. 둘 다 암호가 아니며, 누구나 원래대로 되돌릴 수 있습니다.