[Spring Security] #1 ์ธ์ฆ(Authentication) ๊ณผ ์ธ๊ฐ€(Authorization)์˜ ์ฐจ์ด

2025. 5. 13. 18:52ยท๐ŸŒฟSpring
๋ชฉ์ฐจ
  1. ์„œ๋ก 
  2. ๐Ÿ”“ ์ธ์ฆ(Authentication)
  3. ๐Ÿ‘Œ ์ธ๊ฐ€(Authorization)
  4. ์ฐธ๊ณ ์ž๋ฃŒ

์„œ๋ก 

์ฝ”๋“œ์ž‡ ์Šคํ”„๋ฆฐํŠธ ํŠธ๋ž™๋„ ์–ด๋А๋ง 5๊ฐœ์›” ์ฐจ์— ์ ‘์–ด๋“ค์—ˆ์Šต๋‹ˆ๋‹ค.

์Šคํ”„๋ฆฐํŠธ ๋ฏธ์…˜์ด๋‚˜ ํ”„๋กœ์ ํŠธ์—์„œ๋Š” ๋กœ๊ทธ์ธ ๋กœ์ง๊ณผ ๊ด€๋ จํ•ด ๋ณด์•ˆ์„ ํฌ๊ฒŒ ์‹ ๊ฒฝ ์“ฐ์ง€ ์•Š์•˜๋Š”๋ฐ

์ด๋ฒˆ์— Spring Security์— ๋Œ€ํ•ด ๋ฐฐ์šฐ๊ธฐ ์‹œ์ž‘ํ–ˆ์–ด์š”.

๊ฐ•์˜ ๋‚ด์šฉ๊ณผ ๋‚ด๊ฐ€ ์ด์ „์— ์•Œ๊ณ  ์žˆ๋˜ ๋‚ด์šฉ, ์ƒˆ๋กœ ์กฐ์‚ฌํ•œ ๋‚ด์šฉ์„ ํ•ฉ์ณ ๋ธ”๋กœ๊ทธ ํฌ์ŠคํŒ…์œผ๋กœ ์ •๋ฆฌํ•˜๋Š” ๊ฒƒ์ด ๋ชฉํ‘œ์ž…๋‹ˆ๋‹ค.

 

์ด์ „์—๋Š” ๋ˆ„๊ฐ€ ๋ณผ๊ฑฐ๋ผ ์ƒ๊ฐ ์•ˆ ํ•˜๊ณ  ๊ฐœ์ธ์ ์œผ๋กœ ๊ณต๋ถ€ํ•˜๋Š” ๊ฑฐ๋ผ '-์ด๋‹ค'๋ผ๋Š” ์–ด๋ฏธ๋ฅผ ๋งŽ์ด ์ผ๋Š”๋ฐ

์ถ”ํ›„ ๋ฉด์ ‘์„ ๋Œ€๋น„ํ•ด ๋ˆ„๊ตฌ์—๊ฒŒ ์•Œ๋ ค์ฃผ๋“ฏ์ด ๊ธ€์„ ์จ๋ณด๊ณ  ์‹ถ์–ด ์–ดํˆฌ๊ฐ€ ๋ฐ”๋€Œ์—ˆ์Šต๋‹ˆ๋‹ค.

 

๋๊นŒ์ง€ ํฌ์ŠคํŒ…์„ ์ž˜ ์จ ๋ˆ„๊ตฐ๊ฐ€์—๊ฒŒ ์‹ค์ œ๋กœ ๋„์›€์ด ๋˜๋ฉด ์ข‹๊ฒ ๋„ค์š”.

์•„์ž์•„์ž!

 


 

Spring Security๋ฅผ ์ดํ•ดํ•˜๊ธฐ ์œ„ํ•ด์„œ

์ด ๋‘ ๊ฐ€์ง€ ๊ฐœ๋…์€ ๊ตฌ๋ถ„ํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๐Ÿ”“ ์ธ์ฆ(Authentication)

์ธ์ฆ์ด๋ž€, ๋‚ด๊ฐ€ ๋ˆ„๊ตฌ์ธ์ง€, ์‚ฌ์šฉ์ž๊ฐ€ ์ž์‹ ์ด ๋ˆ„๊ตฌ์ธ์ง€๋ฅผ ์‹œ์Šคํ…œ์— ์ฆ๋ช…ํ•˜๋Š” ๊ณผ์ •์ž…๋‹ˆ๋‹ค.

์ฆ‰, ํด๋ผ์ด์–ธํŠธ์˜ ์‹ ์›์„ ํ™•์ธํ•˜๋Š” ์ ˆ์ฐจ์ž…๋‹ˆ๋‹ค.

 

๋Œ€ํ‘œ์ ์ธ ์˜ˆ๋กœ ๋กœ๊ทธ์ธ ๊ณผ์ •์ด ๋ฐ”๋กœ ์ธ์ฆ์— ํ•ด๋‹นํ•ฉ๋‹ˆ๋‹ค.

 

 

๋„ค์ด๋ฒ„์—์„œ ์œ ์ € ์ •๋ณด๊ฐ€ ํ•„์š”ํ•œ ๋ช‡๋ช‡ ๊ธฐ๋Šฅ์„ ์“ฐ๊ณ  ์‹ถ๋‹ค๋ฉด(ex ๋ฉ”์ผ ์ฝ๊ธฐ, ์‡ผํ•‘ํ•˜๊ธฐ..)

๋„ค์ด๋ฒ„์—์„œ๋Š” ๋‹น์—ฐํžˆ ํ˜„์žฌ ์ ‘์†ํ•œ ์‚ฌ์šฉ์ž๊ฐ€ ๋ˆ„๊ตฌ์ธ์ง€ ์•Œ์•„์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ๋„ค์ด๋ฒ„์—์„œ ๋ฉ”์ผ์„ ์ฝ๊ฑฐ๋‚˜ ์‡ผํ•‘์„ ํ•˜๋ ค๋ฉด ๋„ค์ด๋ฒ„๋Š” ํ˜„์žฌ ์ ‘์†ํ•œ ์‚ฌ์šฉ์ž๊ฐ€ ๋ˆ„๊ตฌ์ธ์ง€ ์•Œ์•„์•ผ ํ•ฉ๋‹ˆ๋‹ค.

 

์‚ฌ์šฉ์ž๊ฐ€ ๋„ค์ด๋ฒ„์—๊ฒŒ ์ž์‹ ์ด ๋ˆ„๊ตฌ์ธ์ง€ ์•Œ๋ ค์ฃผ๋Š” ๋ฐฉ๋ฒ•์€ ์•„์ด๋””์™€ ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ์ž…๋ ฅํ•˜๋Š” ๊ฒƒ์ด์ฃ .

์ด ์•„์ด๋””์™€ ๋น„๋ฐ€๋ฒˆํ˜ธ๋Š” ๋„ค์ด๋ฒ„์˜ ์ž…์žฅ์—์„œ๋Š” ์‚ฌ์šฉ์ž๋ฅผ ์‹๋ณ„ํ•˜๊ธฐ ์œ„ํ•œ ์ธ์ฆ ์š”์†Œ๊ฐ€ ๋ฉ๋‹ˆ๋‹ค.

 

๊ฐ€์ž…ํ•œ ์•„์ด๋””์™€ ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ์ž…๋ ฅํ•˜๋ฉด ๋„ค์ด๋ฒ„๋Š” ๋‚ด๊ฐ€ ๋ˆ„๊ตฌ์ธ์ง€ ์•Œ๊ฒŒ ๋˜๊ณ , ๋ช‡๋ช‡ ๊ธฐ๋Šฅ๋“ค์„ ์“ธ ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ค๋‹ˆ๋‹ค.

๐Ÿ‘Œ ์ธ๊ฐ€(Authorization)

์ธ์ฆ์„ ํ†ตํ•ด ์‚ฌ์šฉ์ž์˜ ์‹ ์›์ด ํ™•์ธ๋˜๋ฉด, ์„œ๋ฒ„๋Š” ๊ทธ ์‚ฌ์šฉ์ž์—๊ฒŒ ์–ด๋–ค ๋ฆฌ์†Œ์Šค์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋Š”์ง€ ํŒ๋‹จํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

 

๊ทธ๋ ‡๋‹ค๋ฉด ์šฐ๋ฆฌ ์„œ๋น„์Šค์˜ ์œ ์ €์ธ ๊ฒƒ์„ ์•Œ๊ณ  ์žˆ์œผ๋‹ˆ ๊ทธ์— ๋งž๋Š” ๋ฆฌ์†Œ์Šค์— ์ ‘๊ทผํ•˜๋„๋ก ํ—ˆ๋ฝํ•ด์ค๋‹ˆ๋‹ค.

์ฆ‰, ์ธ๊ฐ€๋ž€ ์‚ฌ์šฉ์ž์˜ ์ ‘๊ทผ ๊ถŒํ•œ์„ ํ™•์ธํ•˜๊ณ  ํ•„์š”ํ•œ ๊ถŒํ•œ์„ ๋ถ€์—ฌํ•˜๋Š” ๊ณผ์ •์ž…๋‹ˆ๋‹ค.

 

๋กœ๊ทธ์ธ์„ ํ–ˆ๋‹ค๊ณ , ์„œ๋น„์Šค์˜ ๋ชจ๋“  ๊ธฐ๋Šฅ์„ ์“ธ ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์€ ์•„๋‹™๋‹ˆ๋‹ค.

์„œ๋ฒ„๊ฐ€ ๋‚˜์—๊ฒŒ ์ ‘๊ทผํ•ด๋„ ๋œ๋‹ค๊ณ  ํ—ˆ๋ฝํ•œ ๊ธฐ๋Šฅ๋งŒ ์“ธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

์˜ˆ๋ฅผ ๋“ค์–ด, ๋งŽ์€ ์„œ๋น„์Šค๋“ค์€ ๊ด€๋ฆฌ์ž ๊ณ„์ •๊ณผ ์‚ฌ์šฉ์ž ๊ณ„์ •์ด ์žˆ์Šต๋‹ˆ๋‹ค.

์ด ๊ฒฝ์šฐ ์„œ๋ฒ„์—์„œ๋Š” ๋‘ ์œ ์ €๋ฅผ ๊ฐ๊ฐ ADMIN ROLE๊ณผ USER ROLE๋กœ ๊ตฌ๋ถ„ํ•ฉ๋‹ˆ๋‹ค.

 

์ธํ„ฐ๋„ท ์‡ผํ•‘๋ชฐ์—์„œ ๊ด€๋ฆฌ์ž(ํŒ๋งค์ž)๋Š” ์ƒํ’ˆ ํŒ๋งค ํŽ˜์ด์ง€๋ฅผ ์˜ฌ๋ฆฌ๊ฑฐ๋‚˜ ํŒ๋งค ์ƒํƒœ ๋ฐ์ดํ„ฐ ๋“ฑ์„ ํ™•์ธํ•˜๊ณ ,

์ผ๋ฐ˜ ์‚ฌ์šฉ์ž๋Š” ์ƒํ’ˆ์„ ๊ตฌ๋งคํ•˜๊ฑฐ๋‚˜ ์žฅ๋ฐ”๊ตฌ๋‹ˆ์— ๋‹ด์Šต๋‹ˆ๋‹ค.

์ผ๋ฐ˜ ์‚ฌ์šฉ์ž๋Š” ํŒ๋งค ์ƒํ’ˆ์„ ๋“ฑ๋กํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ์ด๋Š” ๊ฐ ๊ณ„์ •์— ๋ถ€์—ฌ๋œ ROLE์— ๋”ฐ๋ผ ์ ‘๊ทผ ๊ฐ€๋Šฅํ•œ ๋ฆฌ์†Œ์Šค๊ฐ€ ๋‹ฌ๋ผ์ง€๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

 

์ด์ฒ˜๋Ÿผ ROLE์— ๋งž์ถฐ ๊ฐ์ž ํ•  ์ˆ˜ ์žˆ๋Š” ํ–‰๋™์ด ๋‹ค๋ฅด๊ณ , ์„œ๋ฒ„์—์„œ๋Š” ์ธ์ฆ์„ ํ†ตํ•ด ์œ ์ €์˜ ์‹ ์›์„ ํ™•์ธํ•˜๊ณ , ๊ทธ์— ๋งž๋Š” ์ธ๊ฐ€๋ฅผ ๋‚ด๋ฆฝ๋‹ˆ๋‹ค.

 


 

์š”์•ฝํ•˜์ž๋ฉด, ์ธ์ฆ์€ ์‚ฌ์šฉ์ž์˜ ์‹ ์›์„ ํ™•์ธํ•˜๊ณ  ์ธ๊ฐ€๋Š” ์ธ์ฆ๋œ ์‚ฌ์šฉ์ž๊ฐ€ ์–ด๋–ค ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋Š”์ง€๋ฅผ ๊ฒฐ์ •ํ•˜๋Š” ํ”„๋กœ์„ธ์Šค์ž…๋‹ˆ๋‹ค.

์ด ๋‘ ๊ฐ€์ง€ ์š”์†Œ๋Š” ํ•จ๊ป˜ ์‚ฌ์šฉ๋˜์–ด ์ •๋ณด ์‹œ์Šคํ…œ๊ณผ ๋ฐ์ดํ„ฐ์˜ ๋ณด์•ˆ์„ ์œ ์ง€ํ•˜๋ฉฐ ์ ‘๊ทผ ์ œ์–ด๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ๋ฐ ์ค‘์š”ํ•œ ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค.

 

 

  • ์ธ์ฆ(Authentication): ์‚ฌ์šฉ์ž๊ฐ€ ๋ˆ„๊ตฌ์ธ์ง€ ํ™•์ธํ•˜๋Š” ๊ณผ์ • (ex. ๋กœ๊ทธ์ธ)
  • ์ธ๊ฐ€(Authorization): ํ™•์ธ๋œ ์‚ฌ์šฉ์ž์—๊ฒŒ ์–ด๋–ค ๊ถŒํ•œ์ด ์žˆ๋Š”์ง€ ๊ฒฐ์ •ํ•˜๋Š” ๊ณผ์ • (ex. ๊ด€๋ฆฌ์ž/์‚ฌ์šฉ์ž ๊ธฐ๋Šฅ ์ฐจ์ด)

 

์ฐธ๊ณ ์ž๋ฃŒ

https://velog.io/@qjqdn1568/%EC%9D%B8%EC%A6%9D%EA%B3%BC-%EC%9D%B8%EA%B0%80%EC%9D%98-%EC%B0%A8%EC%9D%B4-%EC%9E%90%EC%84%B8%ED%9E%88-%EC%95%8C%EC%95%84%EB%B3%B4%EC%9E%90

 

๋ฐ˜์‘ํ˜•

'๐ŸŒฟSpring' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[Spring Security] SecurityFilterChain ํ•„ํ„ฐ ๋ชฉ๋ก ํ™•์ธํ•˜๊ธฐ (๋””๋ฒ„๊น…/๋กœ๊ทธ)  (0) 2025.05.19
[Spring Security] #2 ์ธ์ฆ ๋ฐฉ์‹: ์ฟ ํ‚ค vs ์„ธ์…˜ vs JWT  (1) 2025.05.14
[ํŠธ๋Ÿฌ๋ธ”์ŠˆํŒ…] ํ™˜๊ฒฝ๋ณ€์ˆ˜ .env ์ ์šฉ ์ค‘: ์—ฐ๊ฒฐ์— ๋Œ€ํ•œ ์„ค์ •์ด pg_hba.conf ํŒŒ์ผ์— ์—†์Šต๋‹ˆ๋‹ค.  (1) 2025.04.09
Spring Data JPA ์—”ํ‹ฐํ‹ฐ ๊ฐ„ ์—ฐ๊ด€๊ด€๊ณ„ ๋งคํ•‘ ๋ฐฉ๋ฒ• ์ •๋ฆฌ with ์˜ˆ์‹œ  (1) 2025.03.07
Spring BOOT์˜ @RestController: HTTP ์š”์ฒญ์— ๋Œ€ํ•œ ์‘๋‹ต ์ฒ˜๋ฆฌ ๊ณผ์ •  (2) 2025.03.04
  1. ์„œ๋ก 
  2. ๐Ÿ”“ ์ธ์ฆ(Authentication)
  3. ๐Ÿ‘Œ ์ธ๊ฐ€(Authorization)
  4. ์ฐธ๊ณ ์ž๋ฃŒ
'๐ŸŒฟSpring' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
  • [Spring Security] SecurityFilterChain ํ•„ํ„ฐ ๋ชฉ๋ก ํ™•์ธํ•˜๊ธฐ (๋””๋ฒ„๊น…/๋กœ๊ทธ)
  • [Spring Security] #2 ์ธ์ฆ ๋ฐฉ์‹: ์ฟ ํ‚ค vs ์„ธ์…˜ vs JWT
  • [ํŠธ๋Ÿฌ๋ธ”์ŠˆํŒ…] ํ™˜๊ฒฝ๋ณ€์ˆ˜ .env ์ ์šฉ ์ค‘: ์—ฐ๊ฒฐ์— ๋Œ€ํ•œ ์„ค์ •์ด pg_hba.conf ํŒŒ์ผ์— ์—†์Šต๋‹ˆ๋‹ค.
  • Spring Data JPA ์—”ํ‹ฐํ‹ฐ ๊ฐ„ ์—ฐ๊ด€๊ด€๊ณ„ ๋งคํ•‘ ๋ฐฉ๋ฒ• ์ •๋ฆฌ with ์˜ˆ์‹œ
์†Œ์˜ ๐Ÿ€
์†Œ์˜ ๐Ÿ€
Hello World โœจ
  • ์†Œ์˜ ๐Ÿ€
    Soyoung's Dev Lab
    ์†Œ์˜ ๐Ÿ€
  • ์ „์ฒด
    ์˜ค๋Š˜
    ์–ด์ œ
  • ๊ธ€์“ฐ๊ธฐ ๊ด€๋ฆฌ
    • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ (47)
      • ๐Ÿ“ข ๊ฒŒ์‹œํŒ (0)
      • ๐Ÿ“š ์ž๋ฃŒ๊ตฌ์กฐ & ์•Œ๊ณ ๋ฆฌ์ฆ˜ (1)
      • ๐ŸŒฟSpring (15)
      • โ˜•Java (8)
      • ๐Ÿ“Š ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค (3)
      • ๐Ÿ“ค ๋ฐฐํฌ (4)
        • Docker (4)
        • AWS (0)
      • โš™๏ธ CS & ๊ธฐํƒ€ ๊ฐœ๋ฐœ ์ž๋ฃŒ (14)
      • ๐Ÿ–ฅ๏ธ ํ”„๋กœ์ ํŠธ (0)
      • ๐Ÿ‘ฉโ€๐Ÿ’ป ํ™œ๋™ & ํ›„๊ธฐ (0)
      • ๐Ÿต ์ด์•ผ๊ธฐ (2)
  • ๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

    • ํƒœ๊ทธ
  • ๋งํฌ

    • github
    • velog
  • ๊ณต์ง€์‚ฌํ•ญ

  • ์ธ๊ธฐ ๊ธ€

  • ํƒœ๊ทธ

    ์ฝ”๋“œ์ž‡ ์Šคํ”„๋ฆฐํŠธ
    ์ฝ”๋”ฉํ…Œ์ŠคํŠธ
    ๊ฐœ๋ฐœ
    ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค
    ๊ฐ์ฒด์ง€ํ–ฅํ”„๋กœ๊ทธ๋ž˜๋ฐ
    ์•Œ๊ณ ๋ฆฌ์ฆ˜
    ๋ฐฐํฌ
    ์œ„ํด๋ฆฌ ํŽ˜์ดํผ
    Java
    Spring
    Spring Security
    ์„œ๋ฒ„
    docker
    ์ž๋ฃŒ๊ตฌ์กฐ
    GIT
  • ์ตœ๊ทผ ๋Œ“๊ธ€

  • hELLOยท Designed By์ •์ƒ์šฐ.v4.10.3
์†Œ์˜ ๐Ÿ€
[Spring Security] #1 ์ธ์ฆ(Authentication) ๊ณผ ์ธ๊ฐ€(Authorization)์˜ ์ฐจ์ด

๊ฐœ์ธ์ •๋ณด

  • ํ‹ฐ์Šคํ† ๋ฆฌ ํ™ˆ
  • ํฌ๋Ÿผ
  • ๋กœ๊ทธ์ธ
์ƒ๋‹จ์œผ๋กœ

ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”

๋‹จ์ถ•ํ‚ค

๋‚ด ๋ธ”๋กœ๊ทธ

๋‚ด ๋ธ”๋กœ๊ทธ - ๊ด€๋ฆฌ์ž ํ™ˆ ์ „ํ™˜
Q
Q
์ƒˆ ๊ธ€ ์“ฐ๊ธฐ
W
W

๋ธ”๋กœ๊ทธ ๊ฒŒ์‹œ๊ธ€

๊ธ€ ์ˆ˜์ • (๊ถŒํ•œ ์žˆ๋Š” ๊ฒฝ์šฐ)
E
E
๋Œ“๊ธ€ ์˜์—ญ์œผ๋กœ ์ด๋™
C
C

๋ชจ๋“  ์˜์—ญ

์ด ํŽ˜์ด์ง€์˜ URL ๋ณต์‚ฌ
S
S
๋งจ ์œ„๋กœ ์ด๋™
T
T
ํ‹ฐ์Šคํ† ๋ฆฌ ํ™ˆ ์ด๋™
H
H
๋‹จ์ถ•ํ‚ค ์•ˆ๋‚ด
Shift + /
โ‡ง + /

* ๋‹จ์ถ•ํ‚ค๋Š” ํ•œ๊ธ€/์˜๋ฌธ ๋Œ€์†Œ๋ฌธ์ž๋กœ ์ด์šฉ ๊ฐ€๋Šฅํ•˜๋ฉฐ, ํ‹ฐ์Šคํ† ๋ฆฌ ๊ธฐ๋ณธ ๋„๋ฉ”์ธ์—์„œ๋งŒ ๋™์ž‘ํ•ฉ๋‹ˆ๋‹ค.