Token 토큰

Dora·2024년 5월 16일

Token

클라이언트에서 인증 정보를 보관하는 방법
계정에 관련해서 서버를 프로그래밍할 때 권한을 주는 것
클라이언트가 서버에 접속하면 서버에서 해당 클라이언트에게 인증되었다는 의미로 토큰을 부여함

Token의 종류

접근 토큰(access token)

  • 가장 많이 이용되는 토큰 형식
  • 시스템이나 소프트웨어에서 어떤 특정한 기능이나 데이터에 접근하는 대상에게 권한을 부여하는 데 사용
  • 난수 형태의 문자열로 구성
    ex) 웹 서비스 제공자는 사용자의 아이디, 패스워드, 신용카드 등의 정보를 사용해 만든 접근 허가 토큰을 사용자에게 발행하고 접속 시 사용하게 함

보안 토큰(security token)

  • 하드웨어 저장 장치로 특정 전자기기의 제한된 자원(리소스)의 사용 권한 제어
    ex) USB 보안 토큰

세션 토큰(session token)

  • 통신망에서 서버와 클라이언트 간 세션 후 사용

협력하여 일하는 행위자들 간에 공유자원 접근에 대한 동기화를 보장하기 위해 전달되는 추상적인 개념
토큰은 절대로 복사될 수도 손상될 수도 없으며, 토큰을 가진 사람이면 누구라도 특정 자원의 배타적 접근이 허용되며, 그것을 통제할 수 있는 권한을 가지게 된다.

⭐토큰의 가장 큰 특징⭐

  1. 상태 유지를 하지 않는다
  2. 유저의 인증 정보를 서버나 세션에 담아두지 않음
  3. 세션이 존재하지 않으니, 유저들이 로그인되어있는지 안되어있는지 신경쓰지 않으면서 서버 손쉽게 확장 가능

기존 세션 기반 인증은 서버가 파일이나 데이터베이스에 세션 정보를 가지고 있어야 하고 이를 조회하는 과정이 필요하기 때문에 많은 오버 헤드가 발생한다.
그러나, 토큰은 세션과 달리 클라이언트에 저장되기 때문에 서버의 부담을 덜 수 있다.

단점

쿠키/세션과 달리 토큰 자체의 데이터가 길어 인증 요청이 많아질수록 네트워크 부하가 심해질 수 다

profile
보안을 하고 싶은 감자

0개의 댓글