๋‚ด์ผ๋ฐฐ์›€์บ ํ”„

์Šคํ”„๋ง ์ˆ™๋ จ 3์ฃผ์ฐจ : ์ธ์ฆ๊ณผ ์ธ๊ฐ€

KIMHYEYUN 2023. 11. 9. 20:14
๋ฐ˜์‘ํ˜•

์ธ์ฆ๊ณผ ์ธ๊ฐ€

์ธ์ฆ(Authentication)

  • ํ•ด๋‹น ์œ ์ €๊ฐ€ ์‹ค์ œ ์œ ์ €์ธ์ง€ ์ธ์ฆ(ํ™•์ธ) ๊ฐœ๋…
  • ex. ์Šค๋งˆํŠธํฐ ์ง€๋ฌธ์ธ์‹, ๋กœ๊ทธ์ธ ๋“ฑ

์ธ๊ฐ€(Authorization)

  • ํ•ด๋‹น ์œ ์ €๊ฐ€ ํŠน์ • ๋ฆฌ์†Œ์Šค์— ์ ‘๊ทผ ๊ฐ€๋Šฅ ์—ฌ๋ถ€ ํ—ˆ๊ฐ€ ํ™•์ธ ๊ฐœ๋…
  • ex. ๊ด€๋ฆฌ์ž ํŽ˜์ด์ง€ - ๊ด€๋ฆฌ์ž ๊ถŒํ™˜

์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…” ์ธ์ฆ์˜ ํŠน์ˆ˜์„ฑ

  1. ์ผ๋ฐ˜์ ์œผ๋กœ ์„œ๋ฒ„ - ํด๋ผ์ด์–ธํŠธ ๊ตฌ์กฐ, ๋ฌผ๋ฆฌ์  ๊ฑฐ๋ฆฌ ์กด์žฌ
  2. HTTP ํ”„๋กœํ† ์ฝœ์„ ์ด์šฉํ•˜์—ฌ ํ†ต์‹  -> ๋น„์—ฐ๊ฒฐ์„ฑ(Connectionless) ๋ฌด์ƒํƒœ(Stateless)

    ๐Ÿ‘‰ ๋น„์—ฐ๊ฒฐ์„ฑ(Connectionless) : ์„œ๋ฒ„์™€ ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์—ฐ๊ฒฐ๋˜์ง€ ์•Š์Œ์„ ์˜๋ฏธ

    ์ฑ„ํŒ…์ด๋‚˜ ๊ฒŒ์ž„๊ฐ™์€ ๊ฒƒ์„ ํ•˜์ง€ ์•Š๋Š” ์ด์ƒ ์„œ๋ฒ„์™€ ํด๋ผ์ด์–ธํŠธ๋Š” ์‹ค์ œ๋กœ ์—ฐ๊ฒฐ โŽ -> ๋ฆฌ์†Œ์Šค ์ ˆ์•ฝ์„ ์œ„ํ•ด
    ์„œ๋ฒ„๋Š” ํ•˜๋‚˜์˜ ์š”์ฒญ์— ํ•˜๋‚˜์˜ ์‘๋‹ต์„ ์ฃผ๊ณ  ์—ฐ๊ฒฐ ๋Š์Œ

    ๐Ÿ‘‰ ๋ฌด์ƒํƒœ(Stateless) : ์„œ๋ฒ„๊ฐ€ ํด๋ผ์ด์–ธํŠธ์˜ ์ƒํƒœ๋ฅผ ์ €์žฅํ•˜์ง€ ์•Š์Œ์„ ์˜๋ฏธ

    ์ƒํƒœ ์ €์žฅ -> ์„œ๋ฒ„ ๋น„์šฉ, ๋ถ€๋‹ด โฌ†๏ธ
    ์„œ๋ฒ„๋Š” ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์ด์ „์— ์–ด๋– ํ•œ ์š”์ฒญ์„ ๋ณด๋ƒˆ๋Š”์ง€ ๋ชจ๋ฆ„

์ธ์ฆ์˜ ๋ฐฉ์‹

1. ์ฟ ํ‚ค - ์„ธ์…˜ ๋ฐฉ์‹

  • ์„œ๋ฒ„๊ฐ€ 'ํŠน์ • ์œ ์ €๊ฐ€ ๋กœ๊ทธ์ธ๋˜์—ˆ๋‹ค'๋Š” ์ƒํƒœ๋ฅผ ์ €์žฅํ•˜๋Š” ๋ฐฉ์‹
  • ์ธ์ฆ๊ณผ ๊ด€๋ จ๋œ ์•„์ฃผ ์•ฝ๊ฐ„์˜ ์ •๋ณด๋งŒ ์„œ๋ฒ„๊ฐ€ ๋ณด์œ 
  • ์œ ์ €์˜ ์ด์ „ ์ƒํƒœ์˜ ์ „๋ถ€๋Š” ์•„๋‹ˆ๋”๋ผ๋„ ์ธ์ฆ๊ณผ ๊ด€๋ จ๋œ ์ตœ์†Œํ•œ์˜ ์ •๋ณด๋ฅผ ์ €์žฅํ•ด์„œ ๋กœ๊ทธ์ธ ์œ ์ง€ํ•˜๋Š” ๊ฐœ๋…

2. JWT ๊ธฐ๋ฐ˜ ์ธ์ฆ

JWT(JSON Web Token) : ์ธ์ฆ์— ํ•„์š”ํ•œ ์ •๋ณด๋“ค์„ ์•”ํ˜ธํ™”์‹œํ‚จ ํ† ํฐ

์ฟ ํ‚ค/์„ธ์…˜ ๋ฐฉ์‹๊ณผ ์œ ์‚ฌํ•˜๊ฒŒ JWT ํ† ํฐ(Access Token)์„ HTTP ํ—ค๋”์— ์‹ค์–ด ์„œ๋ฒ„๊ฐ€ ํด๋ผ์ด์–ธํŠธ๋ฅผ ์‹๋ณ„

728x90
๋ฐ˜์‘ํ˜•