토큰 기반 인증 시스템
토큰 기반 인증이란 사용자가 자신의 아이덴티티를 확인하고 고유한 액세스 토큰을 받을 수 있는 프로토콜을 말한다.
사용자는 토큰 유효 기간 동안 동일한 웹페이지나 앱, 혹은 그 밖에 해당 토큰으로 보호를 받는 리소스로 돌아갈 때마다 자격 증명을 다시 입력할 필요 없이 토큰이 발급된 웹사이트나 앱에 액세스할 수 있다.
토큰 기반 시스템 작동 원리
- 유저가 로그인
- 서버에서 계정정보 검증
- 계정 정보가 정확하다면 Signed 토큰을 발급
- 클라이언트측에서는 발급받은 토큰을 저장, 서버에서 요청을 할 때마다 토큰을 전달
- 서버는 토큰을 검증하고, 요청에 응답
- 웹서버에 토큰을 서버에 전달할땐, HTTP 요청의 헤더에 토큰값을 포함시켜 전달
토큰 기반 시스템의 장점
1. 무상태성 & 확장성
토큰은 클라이언트 측에 저장되기 때문에 서버는 완전히 stateless하며 클라이언트와 서버의 연결고리가 없기 때문에 확장하기에 매우 적합하다.
2. 보안성
토큰 기반 인증 시스템을 사용하면, 쿠키를 전달하지 않아도 되기 때문에 쿠키를 사용해서 발생하는 취약점이 사라진다.
따라서
3. 여러 플랫폼과 도메인에 적합
서버기반인증 시스템의 문제점 중 하나인 CORS를 해결할 수 있는데, 애플리케이션과 서비스의 규모가 커지면 여러 디바이스를 호환시키고 더 많은 종류의 서비스를 제공하게 된다.
Reference
'Computer Science' 카테고리의 다른 글
[ Frontend ] JWT 토큰을 저장하는 방법 (0) | 2023.01.13 |
---|---|
[NETWORK] 웹프로토콜 이란 (0) | 2023.01.10 |
[NETWORK] Base64 인코딩이란? (0) | 2023.01.10 |
[NETWORK] TCP 와 UDP 설명과 비교 (0) | 2023.01.10 |
[NETWORK] HTTP 의 State Code 설명 (0) | 2023.01.10 |