본문 바로가기
스프링부트

액세스 및 리프레쉬 토큰을 사용한 JWT 전략 구현

by 플라퉁 2024. 2. 17.
728x90
반응형

 

 

 

안녕하세요 오늘은 jwt 토큰을 사용하여 보안 전략을 구현 해보겠습니다.

 

1. jwt 란?

 

json web token의 줄임말로 json 개체로 인코딩된 두개체간의

 

인증 메시지 코드로써 암호화되어 디지털 서명이나 무결성을 보호 합니다.

 

jwt 토큰을 사용한 웹 어플리케이션 보안 인증은 기존 세션을 이용한 보안 인증보다 상태를 비저장하고

 

정보 저장의 간편성이라는 장점이 있습니다.

 

 

2. 액세스 토큰

 

웹 어플리케이션 기능의 인증을 위해 액세스토큰을 사용합니다.

 

해당 토큰은 10분이라는 짧은 만료시간을 가집니다.

 

 

3. 리프레쉬 토큰

 

리프레쉬 토큰은 액세스 토큰을 얻기 위해서만 사용됩니다.

 

해당 토큰은 1일이라는 긴 만료시간을 가집니다.

 

 

4. 구현

 

userService(login) -> jwtProvider(액세스, 리프레쉬 토큰 생성)

securityConfig(fillterChain) -> jwtAuth(토큰 검증)

userService(updateToken) -> jwtProvider(리프레쉬 토큰 검증 후 액세스 토큰 재발급)

 

 

5. 보안 고려사항 및 느낀점

 

추가적으로 리프레쉬 토큰을 db,레디스 등에 저장 , 쿠키로 전송(HTTPS 사용) 등 여러가지 조치사항으로

보안을 강화할 수 있다. 하지만 결국 토큰을 사용하는 의미가 퇴색되거나 리소스가 추가적으로 사용되는 방법으로써

한계점이 명확하다고 볼 수 있다.

 

결론 : 클라이언트가 토큰을 탈취 당하면 답이없다.

 

완벽한 보안이란 없지만 구멍은 명확하고 기왕 있는거 정확히 알고 대응하자

 

감사합니다.

 

 

 

 

 

728x90
반응형

댓글