IT Infra
JWT(JSON Web Token)
매료매료
2023. 3. 29. 18:51
유저를 인증하고 식별하기 위한 토큰 기반 인증
서버에 저장되는 세션(Session)과 달리 클라이언트에 저장
- 세션방식이 보안에서는 상대적으로 강하다.
- 서버의 자원이 많이 필요
- 매번 요청 시, 세션 저장소를 조회해야함.
토큰 자체에 사용자의 권한 정보나 서비스를 사용하기 위한 정보가 포함(self-contained)
RESTful과 같은 무상태(stateless)인 환경에서 사용자 데이터를 주고 받을 수 있음.
xxx.yyy.zzz의 형태를 띠는 JWT
// header
{
"alg": "서명 시 사용하는 알고리즘",
"kid": "서명 시 사용하는 키를 식별하는 값",
"typ": "타입"
}
// payload
{
"sub": "hyeonsu.jung",
"exp": 1623235123,
"iat": 1532341234
}
// signature
위의 헤더(header)와 페이로드(Paylaod)를 합친 문자열을 서명한 값
공개 키 암호 방식(PKC, Public Key Cryptograpyh)를 사용
JWT의 크기가 커질수록 거의 모든 요청에 대해 전송되므로 데이터 트래픽 크기에 영향