[TIL] JWT 구조와 Access Token / Refresh Token 뜻,과정22/11/21 16일차

2022. 11. 28. 04:16스파르타코딩(22.8.29~22.12.31)/TIL(Today I Learned)

- Today I Learned

  JWT 구조 Access Token / Refresh Token 뜻,과정

 

 

- JWT 구조

JWT [ . ] 구분자로 나누어지는 세 가지 문자열의 조합이다.

[ . ] 을 기준으로 좌측부터 , Payload, Signature의미한다.

HeaderJWT 에서 사용할 타입과 해시 알고리즘의 종류가 담겨있으며,

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

Signature : Header, Payload Base64 URL-safe Encode 를 한 이후
                  Header 에 명시된 해시함수를 적용하고,
개인키(Private Key)로 서명한 전자서명이 담겨있다.

                  전자서명에는 비대칭 암호화 알고리즘을 사용하므로 암호화를 위한 키와 복호화를 위한 키가 다르다.
                  암호화(전자서명)에는 개인키를, 복호화(검증)에는 공개키를 사용한다.

(왼쪽)구조 / (오른쪽) JWT 인코더를 위한 메인페이지

페이로드의 종류 3가지 더보기 ↓

더보기
정해진 데이터 타입은 없지만 대표적인 3가지.

Registered claims

Public claims

Private claims

 

출처 : https://inpa.tistory.com/entry/WEB-%F0%9F%93%9A-JWTjson-web-token-%EB%9E%80-%F0%9F%92%AF-%EC%A0%95%EB%A6%AC

 

 


 

-  Access Token / Refresh Token 란?

 

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


  • Access Token : 클라이언트가 갖고있는 실제로 유저의 정보가 담긴 토큰
                               클라이언트에서
                               1.요청이 오면
                               2.서버에서 해당 토큰에 있는 정보를 활용하여
                               3.사용자 정보에 맞게 응답을 진행
                               *Access:입장,접근

 

 

-  Access Token / Refresh Token 인증 과정

      위에서도 보듯이 JWT 인증 방식을 만약 Access Token 만을 이용하면,

      Access Token은 발급된 이후 서버에 저장되지 않고 클라이언트에 저장되어 토큰 자체로 검증을 하며,
      사용자 권한 인증을 진행하기 때문에, Access Token이 탈취되면 토큰이 만료되기 전 까지,
      토큰을 획득한 사람은 누구나 권한 접근이 가능해지는 문제점이 있었다.

 

      그래서 토큰의 유효 시간을 부여하여 탈취 문제에 대해 대응을 하기도 하지만,
      만일 유효 기간이 짧을 경우 그만큼 사용자는 로그인을 자주해야 하는 번거로움이 있다.

      따라서 이러한 문제를 해결하기 위해 Refresh Token 이라는 추가적인 토큰을 활용하여
      토큰을 이중 장막을 쳐서 보다 보안을 강화하는 식으로 보면 된다.

      Refresh Token 이라는 추가적인 토큰을 활용하여 토큰을 이중 장막을 쳐서 보다 보안을 강화하는 식

 

 

 

 

 

 

 

 

 

 

 

참조 : 쉽게 알아보는 서버 인증 2편(Access Token + Refresh Token)

반응형