본문 바로가기
General

토큰 기반 인증 시스템과 JWT (JSON WEB TOKEN)

by Awesome-SH 2021. 4. 5.

토큰 기반 인증 시스템이란

서버 측에서 유저의 정보를 유지하지 않고, 유저가 회원인증을 할 때 식별할 수 있는 토큰(Token)을 발급해주고 유저 자기 자신임을 인증할 수 있도록 해주는 것을 말한다. 이 토큰은 유효기간과 정보를 담고 있고, 해싱 알고리즘을 통해 암호화 되어 있어 처음 서버로 부터 발급해준 토큰 정보가 변조되지 않음을 보장 해 줄 수 있다.

 

토큰 기반 인증 시스템을 도입하게 되었을 때의 장점

 

- 서버 확장 시 용이함

분산 서버로 확장하게 되어도 유저는 동일한 토큰으로

서버에 요청하면 되고 서버는 데이터베이스 조회로 필요없고

토큰이 위조되지 않았는지만 검증한 후 유저의 신뢰를 처리하면 되기 때문

 

- 플랫폼간 권한 공유

페이스북, 구글계정, 카카오로그인 등을 통한 소셜 로그인 구현 시에도

해당 API를 제공하는 회사에서도 토큰 기반 인증 시스템을 사용하기 때문

해당 플랫폼이 발급해준 토큰을 이용해 우리 백엔드 서버에 이를 통하여

회원정보를 가져오고 서비스 할 수 있도록 도와 줌

 

- 모바일 어플리케이션

세션기반을 사용한다면 쿠키를 사용하기 때문에 쿠키를 따로 관리해줘야 함

하지만 토큰을 사용한다면 웹 API 에 헤더에 토큰을 던져서 사용하면 되기 때문

 

 


 

 

JWT ( JSON WEB TOKEN )

전자 서명 된 URL-safe의 JSON이며 전자 서명은 JSON의 변조를 체크할 수 있다. JWT는 속성정보를 JSON 데이터 구조로 표현한 토큰이며, 서버와 클라이언트 간 정보를 주고 받을 때 HTTP Request Header에 JSON 토큰을 넣고 서버에 요청하는 형식으로 사용하여 인증을 진행한다. JWT는 HMAC 알고리즘을 사용하여 비밀 키 또는 RSA를 이용한 공개키/비밀키 쌍으로 서명할 수 있다.

 

JWT 장점

- URL 파라미터와 Header 사용

- 디버깅 및 관리 용이

- 트래픽에 대한 부담이 낮음

- REST 서비스 제공 가능

- 토큰 안에 내장된 만료

 

JWT 사용하기 좋은 서비스

- 마이크로서비스의 인증/인가

- 회원인증

- 데이터 교류

 

 

 

 


 

 

 

 

레퍼런스

backend-intro.vlpt.us/4/

 

4장. JWT 이해 및 적용 · GitBook

4장. JWT 이해 및 적용 사용자의 인증정보를 관리하기 위해서, 우리는 토큰 기반 인증 시스템을 사용 할 것 입니다. 사용자의 인증정보를 관리하는 방식은 크게 두가지로 나뉘는데요, 첫째는 세션

backend-intro.vlpt.us

www.opennaru.com/opennaru-blog/jwt-json-web-token/

 

JWT (JSON Web Token) 이해하기와 활용 방안 - Opennaru, Inc.

JWT 는 JSON Web Token의 약자로 전자 서명 된 URL-safe (URL로 이용할 수있는 문자 만 구성된)의 JSON입니다.JWT는 속성 정보 (Claim)를 JSON 데이터 구조로 표현한 토큰으로 RFC7519 표준 입니다.

www.opennaru.com

 

댓글