[JWT] Json Web Token의 개념과 구성

sonnie
lucky-sonnie
Published in
Jan 18, 2021

JSON Web token 방식으로 암호화하여 json 데이터를 주고 받고 있습니다. jwt는 json 객체들이 안전하게 정보를 전송할 수 있도록 하는 컴팩트하고 자체 처리 로직이 있는 표준입니다. 권한을 줄 때, 정보를 교환할 때 사용합니다.

Header, payload, signature 로 구성되어 있으며 header는 일반적으로 2 부분으로 구성되어 있는데 어떤 토큰인지, 그리고 어떤 알고리즘이 사용되어있는지이다. 보통 SHA256, RSA를 사용한다. payload는 claim들을 포함한다. claim이란 엔티티(보통 사용자)나 부가적인 데이터에 대한 설명이다.

  • Registered claims: 상호 운용성을 위해, 필수는 아니지만 recommended하는 미리 정의된 정보들. 발급자, 토큰 만료 시간 etc
  • Public claims: JWT를 사용하는 사람들이 마음대로 정의할 수 있다. 하지만 충돌을 방지하기 위해 IANA JSON Web Token Registry 에 정의하거나 충돌 방지 네임스페이스를 URI로 지정해야 한다.
  • Private claims: registered, public claims으로 사용하지는 않지만, jwt로 통신하는 서버끼리 공유하는 custom information.

Signature: 데이터가 전송될 때 변경되지 않았는지, jwt 발송인이 보내기로 한 사람이 맞는지, private 키를 사용해 서명된 토큰이 맞는지 확인한다.

출처 : https://jwt.io/introduction

--

--