[Loadmap] 8. ์ธ์ฆ - JWT

HyeonJeongยท2023๋…„ 1์›” 31์ผ
0

loadmap์„ ๋”ฐ๋ผ๊ฐ€๋ณด์ž

๋ชฉ๋ก ๋ณด๊ธฐ
2/8

๐Ÿ“Œ JWT

json ์›น ํ† ํฐ : json ๊ฐ์ฒด๋กœ ์•ˆ์ „ํ•˜๊ฒŒ ์ •๋ณด ์ „์†ก

  • ๋””์ง€ํ„ธ ์„œ๋ช…์ด ์žˆ์–ด์„œ ์‹ ๋ขฐ ๊ฐ€๋Šฅ
  • ์„œ๋ช…๋œ ํ† ํฐ ๋‚ด ์ •๋ณด์˜ ๋ฌด๊ฒฐ์„ฑ ํ™•์ธ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•จ

ํ˜•ํƒœ

xxxxx.yyyy.zzzz (ํ—ค๋”.์œ ํšจ ํƒ‘์žฌ๋Ÿ‰.์„œ๋ช…)

  • ํ—ค๋” : ์•Œ๊ณ ๋ฆฌ์ฆ˜, type = ์–ด๋–ค ์•Œ๊ณ ๋ฆฌ์ฆ˜์œผ๋กœ ์„œ๋ช…ํ–ˆ๋Š”์ง€ ์ž‘์„ฑ
    • Base6Url : ์•”ํ˜ธํ™”, ๋ณตํ˜ธํ™” ๊ฐ€๋Šฅ โ†” hash๋Š” ๋ณตํ˜ธํ™” ๋ถˆ๊ฐ€๋Šฅ์œผ๋กœ ๋น„๋ฐ€๋ฒˆํ˜ธ ์ดˆ๊ธฐํ™”๋ฅผ ์ง„ํ–‰ํ•˜๊ฒŒ ๋จ
  • ํŽ˜์ด๋กœ๋“œ
    • ๋“ฑ๋ก๋œ ํด๋ž˜์ž„ : ํ•„์ˆ˜x, ๊ถŒ์žฅ(๋ฐœํ–‰์ž, ๋งŒ๋ฃŒ์‹œ๊ฐ„, ์ฃผ์ œ)
    • ๊ฐœ์ธ ํด๋ž˜์ž„ : ๊ณต๊ฐœ๋˜๋„ ๋˜์ง€๋งŒ ์œ ์ €๋ฅผ ํŠน์ •ํ•˜๋Š” ํ‚ค ๋„ฃ์Œ
  • ์„œ๋ช… : ํ—ค๋”, ํŽ˜์ด๋กœ๋“œ, ๋‚˜๋งŒ ์•„๋Š” ํ‚ค๋ฅผ ์•Œ๊ณ ๋ฆฌ์ฆ˜์— ๋”ฐ๋ผ ์•”ํ˜ธํ™” ํ•จ

์ฒ˜๋ฆฌ ๊ณผ์ •

๋กœ๊ทธ์ธ - HS256 ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ

  1. ํด๋ผ์ด์–ธํŠธ๊ฐ€ id์™€ pw ์ „์†ก
  2. ์„œ๋ฒ„๊ฐ€ ๋ฐ›์•„์„œ ๋กœ๊ทธ์ธ ์‹œ๋„์— ๋Œ€ํ•œ ํ† ํฐ์„ ์ƒ์„ฑ(header : ์„œ๋ช…ํ•œ ์•Œ๊ณ ๋ฆฌ์ฆ˜, payload, signiture)
  3. ๊ฐ 3๊ฐ€์ง€ ๋‚ด์šฉ์„ base6Url๋กœ ์ธ์ฝ”๋”ฉ ์ง„ํ–‰ ํ›„ ํด๋ผ์ด์–ธํŠธ์— ๋Œ๋ ค์คŒ

๊ฐœ์ธ์ •๋ณด ์š”์ฒญ

  1. ํด๋ผ์ด์–ธํŠธ๊ฐ€ JWT๋ฅผ ๊ฐ€์ง€๊ณ  ์š”์ฒญ
  2. JWT ๊ฒ€์ฆ(์œ ํšจํ•œ ํ† ํฐ์ธ์ง€) : header+payload+์ž๊ธฐ ํ‚ค โ‡’ ์•”ํ˜ธํ™”๋ฅผ ํ†ตํ•ด ์ผ์น˜ํ•œ์ง€

๋กœ๊ทธ์ธ - RSA ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ

  1. signiture์—์„œ scret ์—†์ด header์™€ payload ๋งŒ ๊ฐ€์ง€๊ณ  ๊ฐœ์ธ ํ‚ค๋กœ 2๊ฐœ๋ฅผ ์ž ๊ฐ€์„œ ๋Œ๋ ค์คŒ

    โ‡’ ๊ฒ€์ฆ์‹œ, ๊ณต๊ฐœํ‚ค๋กœ ์„œ๋ช…์„ ๊ฒ€์ฆํ•˜๋ฉด ๋จ

0๊ฐœ์˜ ๋Œ“๊ธ€