type
status
date
slug
summary
tags
category
icon
password

인증

식별 가능한 정보로 사용자가 누구인지 확인하는 절차
 

인가

인증된 사용자가 특정 자원에 접근할 수 있는지 권한을 확인하는 절차
 
 
웹 앱에서 인증과 인가를 http 통신을 통해 주고받음
여기서 http 통신을 하되, Stateless(무상태성)으로 진행됨
 

stateless

HTTP로 통신되는 클라이언트의 요청이 서버에 독립적으로 처리되며, 서버가 클라이언트에 대한 정보를 유지하거나 기억하지 않는다는 것
 
인증 유지하는 방법
 

세션(Session)

서버가 클라이언트와 상호작용을 유지하기 위해 서버 내 클라이언트의 상태 정보를 저장하는 방식
notion image
notion image

토큰

사용자 인증에 대한 정보가 담긴 징표
 

Json Web Token

notion image
 

구성

 
Header
  • 토큰의 유형과 서명에 사용된 암호화 알고리즘에 대한 정보를 포함
  • Base64Url로 인코딩됨
 
Payload
  • 사용자 정보 혹은 토큰 정보 등을 나타내는 클레임(Claim)을 포함
  • 예를 들어, 대상(sub) , 발행시간(iat), 만료시간(exp) 등을 적을 수 있음
  • Base64Url로 인코딩됨
 
Signature
  • 토큰의 무결성을 보장하고 변조를 방지하기 위해 사용
  • 헤더와 페이로드를 Base64Url로 인코딩한 값을, 비밀 키와 함께 암호화해서 생성
  • 토큰의 변조 여부를 확인하려면 헤더와 페이로드를 비밀 키로 암호화한 값과 Signature가 같은지 확인
 

동작

notion image
 
 

비교

 
확장성
세션 불리함, 토큰이 유리함
보안
세션 유리함, 토큰 불리함
 
OAuth 2.0Index
Loading...