JWT

2023. 8. 21. 17:53브라우저&네트워크

JWT 란?

 

인증에 필요한 정보들을 암호화 시킨 JSON 토큰을 의미한다.

그리고 JWT 기반 인증은 JWT 토큰(Access Token)을 HTTP 헤더에 실어 서버가 클라이언트를 식별하는 방식이다.

 

JWT 는 JSON 데이터를 Base64 URL-safe Encode 를 통해 인코딩하여 직렬화한 것이며, 토큰 내부에는 위변조 방지를 위해 개인키를 통한 전자서명도 들어있다. 따라서 사용자가 JWT 를 서버로 전송하면 서버는 서명을 검증하는 과정을 거치게 되며 검증이 완료되면 요청한 응답을 돌려준다.

 


JWT 구조

 

JWT 는 . 을 기준으로 나누어지는 세가지 문자열의 조합이다.

 

Header.Payload.Signature 를 의미한다.

 

Header 에는 JWT 에서 사용할 타입과 해시 알고리즘의 종류가 담겨 있으다.

Payload 에는 서버에서 첨부한 사용자 권한 정보와 데이터가 담겨있다.

Signature 에는 Header, Payload 를 Base64 를 한 이후 Header 에 명시된 해시함수를 적용하고 개인키로 서명한 전자 서명이 담겨있다.

 


Access Token / Refresh Token

 

JWT 도 제 3자에게 토큰 탈취의 위험성이 있기 때문에, 그대로 사용하는 것이 아닌 Access Token, Refresh Token 으로 이중으로 나누어 인증을 하는 방식을 사용한다.

 

Access Token 과 Refresh Token 은 둘 다 똑같은 JWT 이다. 다만 토큰이 어디에 저장되고 관리되느냐에 따른 사용 차이일 뿐이다.

 


Access Token

 

클라이언트가 갖고 있는 실제로 유저의 정보가 담긴 토큰으로 클라이언트에서 요청이 오면 서버에서 해당 토큰에 있는 정보를 활용하여 사용자 정보에 맞게 응답을 진행

 


Refresh Token

 

새로운 Access Token 을 발급해주기 위해 사용하는 토큰으로 짧은 수명을 가지는 Access Token 에게 새로운 토큰을 발급해주기 위해 사용한다. 해당 토큰은 보통 데이터베이스에 유저 정보와 같이 기록한다.

 

AccessToken 은 접근에 관여하는 토큰, Refresh Token 은 재발급에 관여하는 토큰의 역할로 사용되는 JWT 라고 할 수 있다.

 


참고 링크

 

https://inpa.tistory.com/559

 

🌐 JWT 토큰 인증 이란? (쿠키 vs 세션 vs 토큰)

Cookie / Session / Token 인증 방식 종류 보통 서버가 클라이언트 인증을 확인하는 방식은 대표적으로 쿠키, 세션, 토큰 3가지 방식이 있다. JWT를 배우기 앞서 우선 쿠키와 세션의 통신 방식을 복습해

inpa.tistory.com

https://inpa.tistory.com/entry/WEB-%F0%9F%93%9A-Access-Token-Refresh-Token-%EC%9B%90%EB%A6%AC-feat-JWT

 

🌐 Access Token & Refresh Token 원리

Access Token & Refresh Token 이번 포스팅에서는 기본 JWT 방식의 인증(보안) 강화 방식인 Access Token & Refresh Token 인증 방식에 대해 알아보겠다. 먼저 JWT(Json Web Token) 에 대해 잘 모르는 독자들은 다음 포스

inpa.tistory.com

 

'브라우저&네트워크' 카테고리의 다른 글

https  (1) 2024.04.26
OAuth  (0) 2023.08.21
세션 기반 인증 & 토큰 기반 인증  (0) 2023.08.21
OSI 7 Layer  (0) 2023.08.21
HTTP 와 HTTPS 차이점  (0) 2023.08.10