JWT를 왜 사용했으며 JWT가 어떻게 동작하는지 설명하세요

권성현·2023년 2월 28일
0

면접 준비

목록 보기
14/30
post-custom-banner

JWT란?

JWT(JSON Web Token)은 당사자 간 정보를 안전하게 전송할 수 있는 방법을 JSON 객체로 정의한 개방형 표준(RFC 7519)입니다.
이 정보는 디지털 서명을 사용하기 때문에 데이터 위/변조를 검증할 수 있으며, 신뢰할 수 있습니다.
JWT는 (HMAC 알고리즘으로) 비밀 또는 RSA 또는 ECDSA를 사용하는 공용키/비밀키 쌍을 사용하여 서명할 수 있습니다.
서명된 토큰은 그 안에 포함된 클레임의 무결성을 검증할 수 있는 반면,
암호화된 토큰은 그러한 클레임을 다른 당사자로부터 숨길 수 있습니다.
토큰이 공용/비밀 키 쌍을 사용하여 서명될 때, 서명은 또한 개인 키를 가진 당사자만이 서명한 당사자임을 인증할 수 있습니다.

JWT를 사용하는 이유

  • 권한 부여: JWT를 사용하기 위한 가장 일반적인 사용처입니다.
    사용자가 로그인하면 이후의 각 요청에는 JWT가 포함되어 사용자가 해당 토큰으로 허용된 경로,
    서비스 및 리소스에 액세스할 수 있습니다.
  • 정보 교환: JSON 웹 토큰은 당사자 간에 정보를 안전하게 전송하는 좋은 방법입니다.
    JWT는 예를 들어 공용/개인 키 쌍을 사용하여 서명할 수 있기 때문에 보낸 사람이 자신이 누구인지 확인할 수 있습니다.
    또한 헤더와 페이로드를 사용하여 서명을 계산하므로 내용이 조작되지 않았는지 확인할 수도 있습니다.

JWT 동작방식

JWT를 이용한 인증 동작방식 예제를 통해 JWT 동작 원리를 알아보겠습니다.

  1. 클라이언트에서 id, pw 정보를 서버로 보냄
  2. 서버에서 id, pw 정보를 이용하여 JWT token 을 생성함
  3. 서버에서 클라이언트로 JWT token 을 보냄
  4. 클라이언트에서 서버로 서비스 요청시, JWT token 을 같이 보냄.
  5. 서버에서 서비스 처리시, JWT token 을 검증, 일치하면 서비스를 동작시켜 클라이언트로 응답
profile
개발일지
post-custom-banner

0개의 댓글