인증 토큰

From CS Wiki

Authentication Token

기존 세션 기반 인증 시스템의 문제점을 보완하기 위해 고안된, 인증을 위한 암호화된 긴 문자열

세션 기반 인증 시스템의 문제점[edit | edit source]

서버 기반 인증 시스템의 문제점

구분 문제점
세션
  • 유저가 인증할 때 기록을 서버에 저장
  • 유저의 수가 많으면 서버나 DB에 부하
확장성
  • 클러스터링 구성 시 세션 정보도 같이 공유해야 함
  • 서버 구성 및 구현이 복잡해짐
CORS
  • Cross-Origin Resource Sharing
  • 쿠키를 여러 도메인에서 관리하는 것이 번거로움
  • 토큰을 기반으로 할 경우 위에서 기술한 세션 기반 인증 시스템의 문제점을 쉽게 해결 가능

토큰 기반의 인증 시스템[edit | edit source]

동작 절차[edit | edit source]

  • 유저가 아이디와 비밀번호로 로그인 수행
  • 서버측에서 해당 정보 검증
  • 계정정보가 정확하다면 서버측에서 유저에서 signed 토큰을 발급
  • 클라이언트는 토큰을 저장해 두고 요청마다 토큰을 서버에 함꼐 전달
  • 서버에서 토큰을 검증하고 요청에 응답

토큰의 보안성[edit | edit source]

  • 토큰은 항상 노출될 가능성이 있음
  • 토큰은 노출 되더라도 해석하거나 위조되기 충분히 어려워야 함

토큰의 특징[edit | edit source]

  • Stateless이며, 확장성이 있음
  • 크로스 도메인 지원
  • RFC 7519의 표준화된 체계

같이 보기[edit | edit source]