서버(세션) 기반 인증 vs 토큰 기반 인증

2022. 2. 22. 16:46· Backend/Server&Network&설계
목차
  1. 2. 토큰 기반 인증
반응형

1. 서버(세션) 기반 인증

 

서버 측에서 사용자, 즉 클라이언트의 정보를 세션에 저장하여 기억하는 방식으로 메모리, 디스크, 데이터베이스 등을 통해 관리를 하게된다. 예를 들어 로그인을 하게 되면 세션에 사용자 정보를 저장하고 사용자 정보가 필요한 서비시를 제공할 때 사용하곤 하는 방식이다. 이러한 서버를 Stateful 서버라 한다.

 

서버(세션) 기반 인증은 세션(session)과 쿠키(Cookie)가 사용되는데 아래와 같이 인증 절차가 진행된다.

 

서버(세션) 기반 인증 장점

  • 서버에서 세션정보가 관리되므로 상대적으로 안전
  •  서버에 세션정보가 있기 때문에 로그인 상태 여부를 확인하기 수월

 

 서버(세션) 기반 인증 단점

  • 서버 확장성의 어려움
  • 메모리/데이터베이스의 과부화로 성능에 영향
  • CORS(Cross-Origin Resource Sharing) : 여러 도메인에서 관리하는 것에 대해 번거로움
    (쿠키는 단일 도메인 및 서브 도메인에서만 동작)\

 

2. 토큰 기반 인증

 

서버는 인증받은 사용자에게 토큰을 발급, 클라이언트에서는 이 토큰을 저장하여 서버로 서비스 요청 시 헤더에 토큰을 실어 보내 유효성 검사를 하는 인증방식이다. 서버에 클라이언트 정볼르 저장하지 않으므로 Stateless 서버라 한다.

 

토큰생성 및 인증절차는 아래와 같다.

 

토큰 기반 인증 장점

  • 서버에 저장되지 않아 메모리/데이터베이스 성능에 영향이 적고 서버 확장에 대해 용이함.
  • 토큰을 이용하여 로그인 정보가 다른 분야로 확장하여 이용할 수 있도록 하는데 용이함.
    (Google, Facebook 등등의 로그인 계정으로 로그인 처리)
  • 여러 플랫폼 및 도메인에서 토큰일 용한 검증이 가능하므로 여러 디바이스, 도메인에서 인증이 가능하다.

토큰 기반 인증 단점

  • 토큰에 대한 길이가 길어지므로 네트워크 대역폭에 대한 낭비가 존재한다.
  • 토큰 발행 시 사용되는 Signature 정보만 맞으면 맞는 토큰으로 인식하기에 한번 발급된 토큰의 정보를 바꾸는 것이 불가하다.
  • 단순 Base64로만 인코딩되기 때문에 토큰이 불법적으로 취득되면 사용자 정보가 노출된 가능성이 있다.
    => 그러나 이를 보완하는 방법으로 토큰 자체를 암호화하는 JWE 방식도 존재한다
 
반응형
저작자표시

'Backend > Server&Network&설계' 카테고리의 다른 글

Rate Limiter란? 그리고 방식과 특징  (0) 2024.12.17
HA Proxy란?  (0) 2022.08.09
프록시 서버란?  (0) 2022.08.07
Stateful vs Stateless  (0) 2022.02.20
  1. 2. 토큰 기반 인증
'Backend/Server&Network&설계' 카테고리의 다른 글
  • Rate Limiter란? 그리고 방식과 특징
  • HA Proxy란?
  • 프록시 서버란?
  • Stateful vs Stateless
야뤼송
야뤼송
야뤼송
야뤼송
야뤼송
전체
오늘
어제
  • 분류 전체보기 (90)
    • Backend (30)
      • Java (7)
      • Spring (11)
      • Spring Cloud (7)
      • Server&Network&설계 (5)
    • 분산처리 (8)
      • Hadoop (4)
      • Spark (3)
      • Message Queue (1)
      • ElasticSearch (0)
    • ML (21)
      • 사이킷런 (8)
      • 평가(Evaluation) (4)
      • 분류(Classification) (9)
    • 알고리즘&코딩테스트 (16)
      • 알고리즘 (2)
      • 코딩테스트 (14)
    • Trouble Shooting (3)
    • DB (4)
    • CS 및 보안 (1)
    • 기타 (5)

블로그 메뉴

  • 홈
  • 태그
  • 미디어로그
  • 위치로그
  • 방명록

공지사항

인기 글

태그

  • 맵리듀스
  • AUC
  • 보팅
  • spring psa transaction
  • lis알고리즘
  • 이동윈도우카운터
  • lis 알고리즘 dp
  • 머신러닝
  • 배깅
  • 누출버킷
  • lis 알고리즘 동적계획법
  • 사이킷런
  • portable service abstration
  • leetcode
  • ML
  • JPA
  • Roc
  • lis 알고리즘 이분탐색
  • 고정윈도우카운터
  • 이동윈도우로깅

최근 댓글

최근 글

hELLO · Designed By 정상우.v4.2.2
야뤼송
서버(세션) 기반 인증 vs 토큰 기반 인증
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.