JWT ๊ณต๋ถ ์ ์ ์ฌ์ ์ง์์ผ๋ก ํ ํฐ๊ธฐ๋ฐ ์ธ์ฆ์ ์์์ผํจ
์๋ฒ ๊ธฐ๋ฐ ์ธ์ฆ & ํ ํฐ ๊ธฐ๋ฐ ์ธ์ฆ
์ฌ์ฉ์๊ฐ ์๋ฒ์ ์ ๊ทผํ ๋,
์ธ์ฆ๋ ์ฌ๋์ธ์ง ์๋์ง ํ์ธํ๋ ๋ฐฉ๋ฒ๋ค ์ค ํ๋
โ
์คํ๋ง ์ํ๋ฆฌํฐ์์๋ ๊ธฐ๋ณธ์ ์ผ๋ก ์ธ์ ๊ธฐ๋ฐ ์ธ์ฆ ์ ๊ณต.
โ
๋๋ ์ง๋ ์ฑํฐ์์
๊ธฐ๋ณธ์ ์ผ๋ก ์ ๊ณตํด์ฃผ๋ ์ธ์ ๊ธฐ๋ฐ ์ธ์ฆ ์จ์
์ฌ์ฉ์ ์ ๋ณด ๋ด์ ์ธ์ ์์ฑ & ์ ์ฅํด์ ์ธ์ฆํ์
(= ์ธ์ ๊ธฐ๋ฐ ์ธ์ฆ)
(๋ฐ๋ก ์ง์ ์ ์ผ๋ก ๋ช ์ ์ํด๋ ์์์ ์คํ๋ง ์ํ๋ฆฌํฐ์์ ํด์ค)
โ
ํ ํฐ ๊ธฐ๋ฐ ์ธ์ฆ์, ํ ํฐ์ ์ฌ์ฉํ๋๊ฒ์
โ
ํ ํฐ์ uniqueํ ๊ฐ์ผ๋ก, ์๋ฒ์์ ํด๋ผ์ด์ธํธ๋ฅผ ๊ตฌ๋ถํ๊ธฐ ์ํด ์
์๋ฒ๊ฐ ํ ํฐ ๋ง๋ค์ด์ ํด๋ผ์ด์ธํธํํ ์ฃผ๊ณ ,
ํด๋ผ์ด์ธํธ๋ ์ด ํ ํฐ ๊ฐ๊ณ ์๋ค๊ฐ
์๋ฒํํ ์์ฒญํ ์ผ ์์ ๋ ํ ํฐ์ด๋ ๊ฐ์ด ์ ์ฒญํจ.
-> ์๋ฒ๋ ํ ํฐ๋ง ๋ณด๊ณ ์ ํจํ ์ฌ๋์ธ์ง ์๋์ง ํ๋จํจ
ํ ํฐ ์ ๋ฌ, ์ธ์ฆ๋ฐ๋ ๊ณผ์
1. ํด๋ผ์ด์ธํธ -> ์๋ฒ : ๋ก๊ทธ์ธ ์์ฒญ
(์์ด๋, ๋น๋ฒ์ ์ ๋ฌํ๋ฉด์ ์์ฒญ)
โ
2. ์๋ฒ๋ ํ ํฐ์ ์์ฑ
(ํด๋น ์์ด๋, ๋น๋ฒ ๋ณด๊ณ ์ ํจํ ์ฌ์ฉ์์ธ์ง ๊ฒ์ฆ ํ ์์ฑ)
โ
3. ๋ง๋ ํ ํฐ์ ํด๋ผ์ด์ธํธํํ ์๋ต์ผ๋ก ์ค
โ
4. ํด๋ผ์ด์ธํธ๋ ํ ํฐ์ ์ ์ฅ
โ
5. ์ถํ ๋ค๋ฅธ ์์ฒญ์ ๋ณด๋ผ ๋, ํด๋น ํ ํฐ ์ ๋ณด๋ ๊ฐ์ด ์์ฒญ ๋ณด๋
(์ธ์ฆ์ด ํ์ํ API ์ฌ์ฉํ ๋)
โ
6. ์๋ฒ๋ ํด๋น ํ ํฐ ๊ฒ์ฆ
โ
7. ์๋ฒ -> ํด๋ผ์ด์ธํธ : ๊ทธ์ ๋ง๋ ์๋ต
ํ ํฐ ๊ธฐ๋ฐ ์ธ์ฆ์ ํน์ง
๋ฌด์ํ์ฑ, ํ์ฅ์ฑ, ๋ฌด๊ฒฐ์ฑ
1. ๋ฌด์ํ์ฑ
์ฌ์ฉ์ ์ธ์ฆ ์ ๋ณด๊ฐ ๋ด๊ธด ํ ํฐ์, ํด๋ผ์ด์ธํธ์ ์์.
= ์๋ฒ๋ ์ ์ฅํ ํ์X
โ
ํด๋ผ์ด์ธํธ์์๋ ์ฌ์ฉ์ ์ธ์ฆ ์ํ ์ ์งํ๋ฉด์
์ดํ ์์ฒญ๋ค์ ์ฒ๋ฆฌํด์ผ๋๋๋ฐ
์ด๊ฒ ์ํ๊ด๋ฆฌ์.
โ
์๋ฒ ์ ์ฅ์์๋ ์๋ฌด๊ฒ๋ ๊ธฐ์ตํ์ง ์๊ณ ,
์ค๋ก์ง ๋ฐ์ ํ ํฐ ๊ฒ์ฆ๋ง!!ํจ
โ
= ์์ ํ ๋ฌด์ํ๋ก, ํจ์จ์ ์ธ ๊ฒ์ฆ ๊ฐ๋ฅ
โ
2. ํ์ฅ์ฑ
1๋ฒ ๋ฌด์ํ์ฑ์์, ์ํ ๊ด๋ฆฌ๋ ํด๋ผ์ด์ธํธ๊ฐ ํ๋ค๊ณ ํ์.
์๋ฒ๋ ์ ๊ฒฝ์ธ๊ฒ ์์ผ๋๊น ์๋ฒ ํ์ฅ์ ์ฉ์ดํจ.
โ
ex. ๋ฌผ๊ฑด ํ๋ ์๋น์ค์์
๊ฒฐ์ ๋ฅผ ์ํ ์๋ฒ, ์ฃผ๋ฌธ์ ์ํ ์๋ฒ
์ด๋ ๊ฒ ์๋ค๊ณ ๊ฐ์ .
โ
์ธ์ ๊ธฐ๋ฐ ์ธ์ฆ์ ๊ฐ๊ฐ API์์ ์ธ์ฆ
but ํ ํฐ ๊ธฐ๋ฐ ์ธ์ฆ์์๋ ํ ํฐ ๊ฐ๋ ์ฃผ์ฒด๊ฐ ํด๋ผ์ด์ธํธ๋ผ์
ํ๋์ ํ ํฐ์ผ๋ก ๋๊ฐ์ ์๋ฒ์ ์์ฒญ ๋ณด๋ด๊ธฐ ๊ฐ๋ฅํจ
โ
+ ํ์ด์ค๋ถ, ๊ตฌ๊ธ ๋ก๊ทธ์ธ ๊ฐ์ด ํ ํฐ ๊ธฐ๋ฐ ์ธ์ฆ ์ฐ๋
๋ค๋ฅธ ์์คํ ์๋ ์ ๊ทผํด์ ๋ก๊ทธ์ธ ๋ฐฉ์ ํ์ฅ ๊ฐ๋ฅํจ.
โ
3. ๋ฌด๊ฒฐ์ฑ
ํ ํฐ ๋ฐฉ์์ HMAC(hash-based message authentication)๊ธฐ๋ฒ์ด๋ผ๊ณ ๋ ๋ถ๋ฆ
ํ ํฐ ๋ฐ๊ธ ์ดํ์, ํ ํฐ ์ ๋ณด ๋ณ๊ฒฝ ๋ชปํจ.
= ํ ํฐ์ ๋ฌด๊ฒฐ์ฑ์ด ๋ณด์ฅ๋๋๊ฒ
โ
๋๊ฐ ํ ํฐ ํ๊ธ์๋ผ๋ ๋ฐ๊พธ๋ฉด ์๋ฒ์์ ์ธ์ฆ ์ํด์ค