이전 글에서는 JWT 가 무엇인지, 어떤 구조와 특징을 가지고 있는지 알아보았다.
https://yubi5050.tistory.com/67
이번에는 JWT의 Access Token과 Refresh Token에 대해 좀더 알아보고 왜 필요한지에 대해 적어보았다.
Access Token, Refresh Token 이란?
Access Token : 클라이언트 본인을 서버에서 인증하는 역할 (expiration time 짧게)
Refresh Token : 유효 기간이 지나면 새로운 Access Token 생성 (expiration time 길게)
Access Token과 Refresh Token 필요 이유
기본적으로 사용자는 Access Token, Refresh Token을 둘다 서버에 전송하여 인증 받는 형태이고, 아래와 같은 상황에 대비할 수 있다.
Case 1) Access Token 만료시
- 만료 시간이 긴 refresh token으로 유효시간 연장하거나 access token 재발급
Case 2) Access Token을 탈취시
- 공격자가 Access Token을 탈취하더라도 Access Token의 설정해둔 짧은 유효기간이 지나면 사용 불가능
Case 3) Refresh Token을 탈취시
- refresh token을 탈취시 서버의 refresh token 검증에 대한 로직 필요
- 일반적으로 서버측에서 { Access Token : Refresh Token }으로 관리
- refresh token 탈취시, db(nosql)에 access token : refresh token에 대해 저장해두고 체크하여 다름을 확인후 둘다 만료
참고 문헌
'기술 정리 & CS > 인증, 인가' 카테고리의 다른 글
[Authentication] Session/Cookie vs Token 차이 (0) | 2022.09.05 |
---|---|
[Authentication] JWT Token , CSRF Token (0) | 2022.06.09 |
[Authentication] Token 기반 시스템이란? (0) | 2022.06.09 |