Development knowledge/Web

[Web] JWT(JSON Web Token)λž€?

yuri lee 2023. 4. 7. 08:29
λ°˜μ‘ν˜•

Intro

μ•ˆλ…•ν•˜μ„Έμš”. 이번 μ‹œκ°„μ—λŠ” JWT(JSON Web Token) 에 λŒ€ν•΄ μ•Œμ•„λ³΄κ² μŠ΅λ‹ˆλ‹€. 

 

JWT(JSON Web Token)

JWTλž€ 인증 및 κΆŒν•œ λΆ€μ—¬λ₯Ό μœ„ν•΄ μ‚¬μš©λ˜λŠ” ν‘œμ€€ 기반의 데이터 ν˜•μ‹μž…λ‹ˆλ‹€. JWTλŠ” JSON ν˜•μ‹μœΌλ‘œ ν‘œν˜„λ˜λ©°, 데이터λ₯Ό μ•ˆμ „ν•˜κ²Œ μ „μ†‘ν•˜κ³  κ²€μ¦ν•˜κΈ° μœ„ν•œ 디지털 μ„œλͺ…이 ν¬ν•¨λ©λ‹ˆλ‹€. 

 

JWT ꡬ쑰

JWTλŠ” μ„Έ 가지 파트둜 κ΅¬μ„±λ©λ‹ˆλ‹€. 헀더, νŽ˜μ΄λ‘œλ“œ, μ„œλͺ…μž…λ‹ˆλ‹€. 

 

헀더 (Headder)

 

ν—€λ”λŠ” ν† ν°μ˜ νƒ€μž…κ³Ό μ‚¬μš©λ˜λŠ” ν•΄μ‹± μ•Œκ³ λ¦¬μ¦˜μ„ μ§€μ •ν•˜λŠ” 역할을 ν•©λ‹ˆλ‹€. 

 

 

νŽ˜μ΄λ‘œλ“œ (Payload)

 

νŽ˜μ΄λ‘œλ“œλŠ” 토큰에 포함될 데이터λ₯Ό μ •μ˜ν•©λ‹ˆλ‹€. 

 

 

μ„œλͺ… (Signature)

 

μ„œλͺ…은 헀더와 νŽ˜μ΄λ‘œλ“œλ₯Ό μ‚¬μš©ν•˜μ—¬ μƒμ„±λ˜λ©°, 이λ₯Ό μ΄μš©ν•΄ λ°μ΄ν„°μ˜ 무결성 (λ°μ΄ν„°μ˜ μ •ν™•μ„±, 일관성, μœ νš¨μ„±μ΄ μœ μ§€λ˜λŠ” 것)을 λ³΄ν˜Έν•©λ‹ˆλ‹€. 

 

JWT νŠΉμ§•

JWTλŠ” μΏ ν‚€λ‚˜ μ„Έμ…˜κ³Ό 같은 λ‹€λ₯Έ 인증 방식보닀 더 μ•ˆμ „ν•©λ‹ˆλ‹€. λ˜ν•œ λΆ„μ‚° μ•„ν‚€ν…μ³μ—μ„œ μ‚¬μš©ν•˜κΈ° μ ν•©ν•©λ‹ˆλ‹€. λ”°λΌμ„œ mobile application, RESTful API 와 같은 λΆ„μ‚° λ„€νŠΈμ›Œν¬μ—μ„œ 자주 쓰이고, 인기 μžˆλŠ” 인증 λ°©μ‹μž…λ‹ˆλ‹€. 

 

+) λΆ„μ‚° 아킀텍쳐

λΆ„μ‚° μ•„ν‚€ν…μ²˜λŠ” μ„œλΉ„μŠ€ 및 데이터λ₯Ό μ—¬λŸ¬ 개의 μ»΄ν“¨ν„°λ‚˜ μ„œλ²„μ— λΆ„μ‚°μ‹œμΌœ μ²˜λ¦¬ν•˜λŠ” μ•„ν‚€ν…μ²˜μž…λ‹ˆλ‹€. λΆ„μ‚° μ•„ν‚€ν…μ²˜λŠ” μ„œλΉ„μŠ€μ˜ κ°€μš©μ„±, ν™•μž₯μ„±, μ‹ λ’°μ„±, μ²˜λ¦¬λŸ‰ 등을 κ°œμ„ ν•˜κ³ , μ‹œμŠ€ν…œμ˜ μž₯μ• λ‚˜ λΆ€ν•˜ 증가 등에 λŒ€ν•œ λŒ€μ‘λ ₯을 ν–₯μƒμ‹œν‚΅λ‹ˆλ‹€.

λΆ„μ‚° μ•„ν‚€ν…μ²˜μ—μ„œλŠ” μ„œλΉ„μŠ€μ˜ κ° κΈ°λŠ₯을 λΆ„μ‚°λœ μ„œλ²„에 ν• λ‹Ήν•˜κ³ , μ„œλ²„ κ°„에 λ©”μ‹œμ§€λ₯Ό μ£Όκ³  λ°›μ•„μ„œ μ²˜λ¦¬ν•©λ‹ˆλ‹€. μ΄λ₯Ό μœ„ν•΄ μΌλ°˜μ μœΌλ‘œ λΆ„μ‚° μ»΄ν“¨νŒ…, λΆ„μ‚° λ°μ΄ν„°λ² μ΄μŠ€, λ©”μ‹œμ§•, μ›Ή μ„œλΉ„μŠ€ λ“±μ˜ κΈ°μˆ μ΄ μ‚¬μš©λ©λ‹ˆλ‹€.

λΆ„μ‚° μ•„ν‚€ν…μ²˜λŠ” ν΄λΌμš°λ“œ μ»΄ν“¨νŒ…, λ§ˆμ΄ν¬λ‘œμ„œλΉ„μŠ€ μ•„ν‚€ν…μ²˜, μ„œλΉ„μŠ€ μ§€ν–₯ μ•„ν‚€ν…μ²˜(SOA) λ“±μ˜ ν˜„λŒ€μ μΈ μ†Œν”„νŠΈμ›¨μ–΄ κ°œλ°œ λ° μš΄μ˜ λ°©μ‹μ—μ„œ λ§Žμ΄ μ‚¬μš©λ©λ‹ˆλ‹€. μ΄λŸ¬ν•œ μ•„ν‚€ν…μ²˜λ₯Ό μ‚¬μš©ν•˜λ©΄, μ—¬λŸ¬ μ„œλ²„에 λΆ„μ‚°λœ μ„œλΉ„μŠ€λ₯Ό ν†΅ν•΄ λ”μš± νš¨μœ¨μ μΈ μ²˜λ¦¬μ™€ λ”μš± λ†’은 κ°€μš©μ„±μ„ μ œκ³΅ν•  μˆ˜ μžˆμŠ΅λ‹ˆλ‹€.

 


https://jwt.io/

λ°˜μ‘ν˜•