JWT

텅텅텅·2022년 6월 21일
0

Spring TIL

목록 보기
11/13

JWT(JSON Web Token)
-an open stand that defines a compact and self-contained way for securely transmitting information between parties as a JSON object.
-JWTs can be signed using a secret (with the "HMAC" algorithm) or a public/privaate key pair using RSA or ECDSA.

HMAC: Hash-based Message Authentication Code

JWT는 점으로 구분된 3개의 Base64URL 문자열로 구성됨.
xxxxx.yyyyy.zzzzz
header.payload.signature

--Token 구성요소---

Header
는 일반적으로 토큰 유형(JWT)과 사용 중인 서명 알고리즘 (HMAC SHA256)을 나타내는 정보를 포함

{
"alg": "HS256",
"typ": "JWT"
}

Payload
Token의 두 번째 부분은 Claim을 포함. Claim은 entity(일반적으로 사용자) 및 추가 정보에 대한 설명을 말함.
Claim은 세 종류가 있음
-registered claim: iss(issuer), exp(expiration time), sub(subject), aud(audience) 같은 클레임 집합.

{
"sub": "12345",
"name": "Tung",
"admin": true
}

Signature
는 헤더의 인코딩 값과 정보의 인코딩 값을 합쳐서 주어진 비밀키로 해싱하여 생성되는 서명 값. 보통 사용자의 비밀번호를 비밀키로 사용하기도 함.

HMACSHA256(base64UrlEncode(header) + "." + base64UrlEncode(payload), secret)
profile
아무것도모르오

0개의 댓글