[Spring] 인증과 인가, Cookie, Session

Jiwoo·2024년 5월 28일
0

Spring

목록 보기
6/19

인증과 인가

📌 인증 (Authentication)

  • 해당 유저가 실제 유저인지 인증하는 개념
  • 스마트폰 지문 인식, 사이트 로그인 등

📌 인가 (Authorization)

  • 해당 유저가 특정 리소스에 접근 가능한지 허가를 확인하는 개념
  • 관리자 페이지 - 관리자 권한 등

인증 방식

📌 쿠키-세션

  • ‘특정 유저가 로그인 되었다’ 라는 상태를 저장하는 방식
  • 인증과 관련된 최소한의 정보는 저장해서 로그인을 유지시킨다는 개념

📌 JWT 기반

  • JWT(JSON Web Token): 인증에 필요한 정보들을 암호화시킨 토큰
  • 쿠키/세션 방식과 유사하게 JWT 토큰(Access Token)을 HTTP 헤더에 실어 서버가 클라이언트를 식별

쿠키와 세션

쿠키와 세션 모두 HTTP 에 상태 정보를 유지(Stateful)하기 위해 사용된다
쿠키와 세션을 통해 서버에서는 클라이언트 별로 인증 및 인가를 할 수 있게 된다

  • 클라이언트에 저장될 목적으로 생성한 작은 정보를 담은 파일
  • Application - Storage - Cookies 에 도메인 별로 저장
  • 구성요소
    • Name (이름): 쿠키를 구별하는 데 사용되는 키 (중복될 수 없음)
    • Value (값): 쿠키의 값
    • Domain (도메인): 쿠키가 저장된 도메인
    • Path (경로): 쿠키가 사용되는 경로
    • Expires (만료기한): 쿠키의 만료기한 (만료기한 지나면 삭제)

📌 Session

  • 서버에서 일정시간 동안 클라이언트 상태를 유지하기 위해 사용
  • 서버에서 클라이언트 별로 유일무이한 '세션 ID' 를 부여한 후 클라이언트 별 필요한 정보를 서버에 저장
  • 서버에서 생성한 '세션 ID' 는 클라이언트의 쿠키값('세션 쿠키' 라고 부름)으로 저장되어 클라이언트 식별에 사용
  • 쿠키에 비해 비교적 보안 안전 (서버에 저장되기 때문)
  • 세션 동작 방식

0개의 댓글