JWT-Token-왜-사용하는가
본문 바로가기
CS/JWT

JWT-Token-왜-사용하는가

by IYK2h 2022. 3. 29.
728x90

왜 사용하는가

사용자 인증을 위해 사용된다.

Session vs JWT

일단 세션과 JWT토큰(이하 토큰)을 비교했을 때 토큰을 사용했을 때 오는 이점은 서버가 stateless 상태가 된다.

stateless 의 장점은 서버와 클라이언트의 연결된 부분이 없어서 서버의 확장이 수월해진다.

stateful 같은 경우 세션을 따로 저장해야 하기 때문이다.

장점

유효한 사용자라는 자체 인증 권한을 가진다.

액세스키 사용 시 DB조회 없이 인증 정보 사용할 수 있다.

유효한 권한을 가진다는 부분은 payload 에 넣을 수 있다.(단, 헤더 크기가 증가한다.)

단점

인증은 쉽지만, 인가 부분을 자체 인증을 구현하기엔 어려워 보인다.

인증정보만으로 서비스가 어려운 경우(작업에서 어떤 권한을 가지고 있나가 중요한 경우)

사용자 권한이 수시로 바뀔 경우 문제 발생한다.

토큰 탈취 시 강제로 revoke 하지 못하는 문제가 있다.( https 를 사용해 보안 )

금융권 같이 민감한 서비스 경우 사용하지 않는게 좋아보인다.

사용하기 적합한 곳

api 서버

웹 보다는 앱 (하지만, 웹도 https 를 사용해 민감한 서비스가 아닐경우 사용해도 괜찮다고 생각 )

사용자수가 많은 경우 (하지만, 사용자의 권한 범위가 간단하며 권한 병경이 잦지 않아야 한다.)

JWT Token 을 사용해야 하는 이유

JSON은 XML보다 덜 장황하기 때문에 인코딩될 때 크기도 작아져 JWT가 SAML보다 더 간결해집니다. 따라서 JWT는 HTML 및 HTTP 환경에서 전달하기에 좋은 선택입니다.이는 여러 플랫폼, 특히 모바일에서 JSON 웹 토큰의 클라이언트 측 처리 용이성을 강조합니다.

https://jwt.io/introduction

결론 : JWT Token 은 토큰중 하나의 선택지일 뿐이다.

728x90

댓글