[토큰 기반 인증] JWT (JSON Web Token)
1. JWT란?
: JSON 기반의 인증 토큰을 생성/관리하는 공개 웹 표준(RFC 7519) 기술이며, dot(.)을 구분자로 하여 Header / Payload / Signature의 3개의 영역으로 구성되어 있다. ※ JWT는 JWS(JSON Web Signature) 와 JWE(JSON Web Encryption)에 의존적이다.
2. JWT 구조
- JWT header
: JWT header는 서명할 해시 알고리즘과 토큰 타입을 나타내는 2가지 필드로 구성되어 있으며 하나의 속성값에 하나의 Value 값이 사용된다.
- JWT Payload
: jwt Payload는 JWT 토큰의 데이터 및 관련 정보를 다루는 영역으로 Claim이라는 Payload 내 정보를 나타내는 값을 사용하며 Name / Value 형태로 구성되어 있다.
- JWT Signature
: jwt Signature는 헤더와 페이로드의 인코드 된 값을 비밀키로 해쉬하여 생성된 값이며, 전달된 토큰이 중간에 변경되지 않았는지 보장해주는 값이다.
※ Header 및 Claim의 필드에 대한 상세 설명은 해당 URL 참조 (https://en.wikipedia.org/wiki/JSON_Web_Token#Standard_fields)
[그림 1] JWT 토큰 구조
3. JWT 사용 이유
- 사용자 인증
- 데이터 검증
- 서버 확장의 용이성
- 토큰 내 주요 정보 저장
- 토큰 안전성
- 토큰 Scope 설정
- 통신구간 안전성 (SSL/TLS) 적용
- 서명키 보관
5. Reference
: https://tools.ietf.org/html/rfc7519
: https://auth0.com/docs/jwt
: https://backend-intro.vlpt.us/4/01.html
'IT Knowledge' 카테고리의 다른 글
FrontEnd vs BackEnd vs FullStack 차이 (프론트엔드/백엔드/풀스택) (0) | 2023.09.21 |
---|---|
[토큰 기반 인증] OAuth 2.0 (0) | 2019.01.23 |
[IT 정보] Web Storage 사용의 보안적 위험요소 분석 (0) | 2018.12.30 |