기술 정리 & CS/인증, 인가

[Authentication] Token 기반 시스템이란?

yubi5050 2022. 6. 9. 00:42

👉 토큰 기반 시스템 이란?

토큰 기반 인증이란 유저에게 유저의 정보를 토대로, 고유한 Access Token을 받아 리소스 접근에 대해 보다 쉽게 통제할 수 있는 프로토콜사용자는 토큰 유효 기간 동안 동일한 웹페이지나 앱, 혹은 그 밖에 해당 토큰으로 보호를 받는 리소스로 재 접근시 자격 증명을 다시 입력할 필요 없게 됨

 

 

👉 토큰 기반 시스템 작동 원리

1) 유저가 아이디와 비밀번호로 로그인
2) 서버에서 해당 로그인 정보를 검증 및 유저에게 Token 발급

3) 해당 Token은 Signed Token으로 서버에서 정상적으로 발급된 것 이라는 Signature를 지니고 있음.

4) 클라이언트 측에서는 전달받은 토큰을 저장해두고, 서버에 접근시 활용

5) 서버는 접근시 마다 해당 Token을 확인하고 Response를 자동 반환

출처 : https://tristan91.tistory.com/499

 

👉 토큰 기반 시스템의 장점

1. 무상태(stateless)

 토큰을 클라이언트 사이드쪽에 저장하기 때문에, 사용자의 상태 유지(Session 등)에 신경쓰지 않아도 됨. (유저의 정보를 서버나 세션에 담아두지 않는 형태)

 

2. 보안성(Security)

클라이언트가 서버에 요청을 보낼 때 쿠키 (Cookies)를 전달하지 않아, 쿠키로 인해 발생하는 취약점이 사라짐

 

3. 확장성 (Scalability)

토큰에 대한 검증만 되면 어떤 서버에서든지 인증을 허가 하고 접근이 가능해, 서버 확장이 자유로움. 또한 토큰에 선택적인 권한 부여가 가능한 것도 장점.