๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
TIL

02/02(๊ธˆ) ๋‚ด์ผ๋ฐฐ์›€์บ ํ”„ Java 30์ผ์ฐจ TIL - ์ธ์ฆ๊ณผ ์ธ๊ฐ€

by ๊ฐ์ž๊ฐœ๋ฐœ๊พผ 2024. 2. 2.

 

๐Ÿ“–  ์˜ค๋Š˜์˜ ํ•™์Šต ํ‚ค์›Œ๋“œ

  • ์ธ์ฆ(Authentication)
  • ์ธ๊ฐ€(Authorization)

 

๐Ÿฅ”  ์ธ์ฆ๊ณผ ์ธ๊ฐ€

  • ์ธ์ฆ
  • ์ธ์ฆ์€ ํ•ด๋‹น ์œ ์ €๊ฐ€ ์‹ค์ œ ์œ ์ €์ธ์ง€ ์ธ์ฆํ•˜๋Š” ๊ฐœ๋…์ž…๋‹ˆ๋‹ค.
  • ์Šค๋งˆํŠธํฐ์˜ ์ง€๋ฌธ์ธ์‹, ์ด์šฉํ•˜๋Š” ์‚ฌ์ดํŠธ์— ๋กœ๊ทธ์ธ ๋“ฑ๊ณผ ๊ฐ™์ด, ์‹ค์ œ ์œ ์ €๊ฐ€ ๋งž๋Š”์ง€๋ฅผ ํ™•์ธํ•˜๋Š” ์ ˆ์ฐจ์ž…๋‹ˆ๋‹ค.

 

  • ์ธ๊ฐ€
  • ์ธ๊ฐ€๋Š” ํ•ด๋‹น ์œ ์ €๊ฐ€ ํŠน์ • ๋ฆฌ์†Œ์Šค์— ์ ‘๊ทผ์ด ๊ฐ€๋Šฅํ•œ์ง€ ํ—ˆ๊ฐ€๋ฅผ ํ™•์ธํ•˜๋Š” ๊ฐœ๋…์ž…๋‹ˆ๋‹ค.
  • ์˜ˆ์‹œ๋กœ, ๊ด€๋ฆฌ์ž ํŽ˜์ด์ง€ - ๊ด€๋ฆฌ์ž ๊ถŒํ•œ ๊ฐ™์€ ๊ฒƒ๋“ค์„ ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

 

๐Ÿฅ”  ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ธ์ฆ

1. ์ผ๋ฐ˜์ ์œผ๋กœ ์„œ๋ฒ„-ํด๋ผ์ด์–ธํŠธ ๊ตฌ์กฐ๋กœ ๋˜์–ด์žˆ๊ณ , ์‹ค์ œ๋กœ ์ด ๋‘ ์š”์†Œ๋Š” ์•„์ฃผ ๋ฉ€๋ฆฌ ๋–จ์–ด์ ธ์žˆ์Šต๋‹ˆ๋‹ค.

2. Http ๋ผ๋Š” ํ”„๋กœํ† ์ฝœ์„ ์ด์šฉํ•˜์—ฌ ํ†ต์‹ ํ•˜๋Š”๋ฐ, ๊ทธ ํ†ต์‹ ์€ ๋น„์—ฐ๊ฒฐ์„ฑ(Connectionless) ๋ฌด์ƒํƒœ(Stateless)๋กœ ์ด๋ฃจ์–ด์ง‘๋‹ˆ๋‹ค.

 

๐Ÿ“ ๋น„์—ฐ๊ฒฐ์„ฑ

์„œ๋ฒ„์™€ ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์—ฐ๊ฒฐ๋˜์–ด ์žˆ์ง€ ์•Š๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.
์ฑ„ํŒ…์ด๋‚˜ ๊ฒŒ์ž„๊ณผ ๊ฐ™์€ ๊ฒƒ๋“ค์„ ํ•˜์ง€ ์•Š๋Š” ํ•œ, ์„œ๋ฒ„์™€ ํด๋ผ์ด์–ธํŠธ๋Š” ์—ฐ๊ฒฐ๋˜์–ด ์žˆ์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
์ด์œ ๋Š” ๋ฆฌ์†Œ์Šค๋ฅผ ์ ˆ์•ฝํ•˜๊ธฐ ์œ„ํ•ด์„œ์ž…๋‹ˆ๋‹ค.
๋งŒ์•ฝ, ๊ณ„์† ์—ฐ๊ฒฐ๋˜์–ด ์žˆ๋‹ค๋ฉด ์„œ๋ฒ„๋Š” ๋น„์šฉ์ด ๊ธฐํ•˜๊ธ‰์ˆ˜์ ์œผ๋กœ ๋Š˜์–ด๋‚˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.
๊ทธ๋ž˜์„œ ์„œ๋ฒ„๋Š” ํ•˜๋‚˜์˜ ์š”์ฒญ์— ํ•˜๋‚˜์˜ ์‘๋‹ต์„ ๋‚ด๊ณ , ์—ฐ๊ฒฐ์„ ๋Š๋Š”๋‹ค๊ณ  ์ƒ๊ฐํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.

 

๐Ÿ“ ๋ฌด์ƒํƒœ

์„œ๋ฒ„๊ฐ€ ํด๋ผ์ด์–ธํŠธ์˜ ์ƒํƒœ๋ฅผ ์ €์žฅํ•˜์ง€ ์•Š๋Š”๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.
๊ธฐ์กด์˜ ์ƒํƒœ๋ฅผ ์ €์žฅํ•˜๋Š” ๊ฒƒ๋“ค๋„ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ์„œ๋ฒ„์˜ ๋น„์šฉ๊ณผ ๋ถ€๋‹ด์„ ์ฆ๊ฐ€์‹œํ‚ค๋Š” ๊ฒƒ์ด๊ธฐ ๋•Œ๋ฌธ์—
๊ธฐ์กด์˜ ์ƒํƒœ๊ฐ€ ์—†๋‹ค๊ณ  ๊ฐ€์ •ํ•˜๋Š” ํ”„๋กœํ† ์ฝœ์„ ์ด์šฉํ•˜์—ฌ ๊ตฌํ˜„๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.
์‹ค์ œ๋กœ, ์„œ๋ฒ„๋Š” ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์ง์ „์— ์–ด๋– ํ•œ ์š”์ฒญ์„ ๋ณด๋ƒˆ๋Š”์ง€ ๊ด€์‹ฌ๋„ ์—†๊ณ  ์•Œ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

 

 

๐Ÿฅ”  ์ธ์ฆ์˜ ๋ฐฉ์‹

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

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

 

 

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

์ธ์ฆ์— ํ•„์š”ํ•œ ์ •๋ณด๋“ค์„ ์•”ํ˜ธํ™”์‹œํ‚จ ํ† ํฐ์ž…๋‹ˆ๋‹ค.
JWT ๊ธฐ๋ฐ˜ ์ธ์ฆ์€ ์ฟ ํ‚ค-์„ธ์…˜ ๋ฐฉ์‹๊ณผ ์œ ์‚ฌํ•˜๊ฒŒ JWT ํ† ํฐ์„ HTTP ํ—ค๋”์— ์‹ค์–ด
์„œ๋ฒ„๊ฐ€ ํด๋ผ์ด์–ธํŠธ๋ฅผ ์‹๋ณ„ํ•ฉ๋‹ˆ๋‹ค.

 

 

 

๐Ÿ“š  ์˜ค๋Š˜์˜ ํšŒ๊ณ 

๊ธฐ๋ณธ์— ์ถฉ์‹คํ•˜์—ฌ ์—ด์‹ฌํžˆ ํ•ด๋ณด๋„๋ก ๋‹ค์‹œ ํ•œ๋ฒˆ ๋‹ค์งํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

์ฒ˜์Œ์œผ๋กœ ๋Œ์•„๊ฐ€ ๊ธฐ๋ณธ๋ถ€ํ„ฐ ์ถฉ์‹คํžˆ..