
์๋ก
์ฝ๋์ ์คํ๋ฆฐํธ ํธ๋๋ ์ด๋๋ง 5๊ฐ์ ์ฐจ์ ์ ์ด๋ค์์ต๋๋ค.
์คํ๋ฆฐํธ ๋ฏธ์ ์ด๋ ํ๋ก์ ํธ์์๋ ๋ก๊ทธ์ธ ๋ก์ง๊ณผ ๊ด๋ จํด ๋ณด์์ ํฌ๊ฒ ์ ๊ฒฝ ์ฐ์ง ์์๋๋ฐ
์ด๋ฒ์ Spring Security์ ๋ํด ๋ฐฐ์ฐ๊ธฐ ์์ํ์ด์.
๊ฐ์ ๋ด์ฉ๊ณผ ๋ด๊ฐ ์ด์ ์ ์๊ณ ์๋ ๋ด์ฉ, ์๋ก ์กฐ์ฌํ ๋ด์ฉ์ ํฉ์ณ ๋ธ๋ก๊ทธ ํฌ์คํ ์ผ๋ก ์ ๋ฆฌํ๋ ๊ฒ์ด ๋ชฉํ์ ๋๋ค.
์ด์ ์๋ ๋๊ฐ ๋ณผ๊ฑฐ๋ผ ์๊ฐ ์ ํ๊ณ ๊ฐ์ธ์ ์ผ๋ก ๊ณต๋ถํ๋ ๊ฑฐ๋ผ '-์ด๋ค'๋ผ๋ ์ด๋ฏธ๋ฅผ ๋ง์ด ์ผ๋๋ฐ
์ถํ ๋ฉด์ ์ ๋๋นํด ๋๊ตฌ์๊ฒ ์๋ ค์ฃผ๋ฏ์ด ๊ธ์ ์จ๋ณด๊ณ ์ถ์ด ์ดํฌ๊ฐ ๋ฐ๋์์ต๋๋ค.
๋๊น์ง ํฌ์คํ ์ ์ ์จ ๋๊ตฐ๊ฐ์๊ฒ ์ค์ ๋ก ๋์์ด ๋๋ฉด ์ข๊ฒ ๋ค์.
์์์์!
Spring Security๋ฅผ ์ดํดํ๊ธฐ ์ํด์
์ด ๋ ๊ฐ์ง ๊ฐ๋ ์ ๊ตฌ๋ถํ ์ ์์ด์ผ ํฉ๋๋ค.
๐ ์ธ์ฆ(Authentication)
์ธ์ฆ์ด๋, ๋ด๊ฐ ๋๊ตฌ์ธ์ง, ์ฌ์ฉ์๊ฐ ์์ ์ด ๋๊ตฌ์ธ์ง๋ฅผ ์์คํ ์ ์ฆ๋ช ํ๋ ๊ณผ์ ์ ๋๋ค.
์ฆ, ํด๋ผ์ด์ธํธ์ ์ ์์ ํ์ธํ๋ ์ ์ฐจ์ ๋๋ค.
๋ํ์ ์ธ ์๋ก ๋ก๊ทธ์ธ ๊ณผ์ ์ด ๋ฐ๋ก ์ธ์ฆ์ ํด๋นํฉ๋๋ค.

๋ค์ด๋ฒ์์ ์ ์ ์ ๋ณด๊ฐ ํ์ํ ๋ช๋ช ๊ธฐ๋ฅ์ ์ฐ๊ณ ์ถ๋ค๋ฉด(ex ๋ฉ์ผ ์ฝ๊ธฐ, ์ผํํ๊ธฐ..)
๋ค์ด๋ฒ์์๋ ๋น์ฐํ ํ์ฌ ์ ์ํ ์ฌ์ฉ์๊ฐ ๋๊ตฌ์ธ์ง ์์์ผ ํฉ๋๋ค. ์๋ฅผ ๋ค์ด, ๋ค์ด๋ฒ์์ ๋ฉ์ผ์ ์ฝ๊ฑฐ๋ ์ผํ์ ํ๋ ค๋ฉด ๋ค์ด๋ฒ๋ ํ์ฌ ์ ์ํ ์ฌ์ฉ์๊ฐ ๋๊ตฌ์ธ์ง ์์์ผ ํฉ๋๋ค.
์ฌ์ฉ์๊ฐ ๋ค์ด๋ฒ์๊ฒ ์์ ์ด ๋๊ตฌ์ธ์ง ์๋ ค์ฃผ๋ ๋ฐฉ๋ฒ์ ์์ด๋์ ๋น๋ฐ๋ฒํธ๋ฅผ ์ ๋ ฅํ๋ ๊ฒ์ด์ฃ .
์ด ์์ด๋์ ๋น๋ฐ๋ฒํธ๋ ๋ค์ด๋ฒ์ ์ ์ฅ์์๋ ์ฌ์ฉ์๋ฅผ ์๋ณํ๊ธฐ ์ํ ์ธ์ฆ ์์๊ฐ ๋ฉ๋๋ค.
๊ฐ์ ํ ์์ด๋์ ๋น๋ฐ๋ฒํธ๋ฅผ ์ ๋ ฅํ๋ฉด ๋ค์ด๋ฒ๋ ๋ด๊ฐ ๋๊ตฌ์ธ์ง ์๊ฒ ๋๊ณ , ๋ช๋ช ๊ธฐ๋ฅ๋ค์ ์ธ ์ ์๊ฒ ํด์ค๋๋ค.
๐ ์ธ๊ฐ(Authorization)
์ธ์ฆ์ ํตํด ์ฌ์ฉ์์ ์ ์์ด ํ์ธ๋๋ฉด, ์๋ฒ๋ ๊ทธ ์ฌ์ฉ์์๊ฒ ์ด๋ค ๋ฆฌ์์ค์ ์ ๊ทผํ ์ ์๋์ง ํ๋จํ๊ฒ ๋ฉ๋๋ค.
๊ทธ๋ ๋ค๋ฉด ์ฐ๋ฆฌ ์๋น์ค์ ์ ์ ์ธ ๊ฒ์ ์๊ณ ์์ผ๋ ๊ทธ์ ๋ง๋ ๋ฆฌ์์ค์ ์ ๊ทผํ๋๋ก ํ๋ฝํด์ค๋๋ค.
์ฆ, ์ธ๊ฐ๋ ์ฌ์ฉ์์ ์ ๊ทผ ๊ถํ์ ํ์ธํ๊ณ ํ์ํ ๊ถํ์ ๋ถ์ฌํ๋ ๊ณผ์ ์ ๋๋ค.
๋ก๊ทธ์ธ์ ํ๋ค๊ณ , ์๋น์ค์ ๋ชจ๋ ๊ธฐ๋ฅ์ ์ธ ์ ์๋ ๊ฒ์ ์๋๋๋ค.
์๋ฒ๊ฐ ๋์๊ฒ ์ ๊ทผํด๋ ๋๋ค๊ณ ํ๋ฝํ ๊ธฐ๋ฅ๋ง ์ธ ์ ์์ต๋๋ค.
์๋ฅผ ๋ค์ด, ๋ง์ ์๋น์ค๋ค์ ๊ด๋ฆฌ์ ๊ณ์ ๊ณผ ์ฌ์ฉ์ ๊ณ์ ์ด ์์ต๋๋ค.
์ด ๊ฒฝ์ฐ ์๋ฒ์์๋ ๋ ์ ์ ๋ฅผ ๊ฐ๊ฐ ADMIN ROLE๊ณผ USER ROLE๋ก ๊ตฌ๋ถํฉ๋๋ค.
์ธํฐ๋ท ์ผํ๋ชฐ์์ ๊ด๋ฆฌ์(ํ๋งค์)๋ ์ํ ํ๋งค ํ์ด์ง๋ฅผ ์ฌ๋ฆฌ๊ฑฐ๋ ํ๋งค ์ํ ๋ฐ์ดํฐ ๋ฑ์ ํ์ธํ๊ณ ,
์ผ๋ฐ ์ฌ์ฉ์๋ ์ํ์ ๊ตฌ๋งคํ๊ฑฐ๋ ์ฅ๋ฐ๊ตฌ๋์ ๋ด์ต๋๋ค.
์ผ๋ฐ ์ฌ์ฉ์๋ ํ๋งค ์ํ์ ๋ฑ๋กํ ์ ์์ต๋๋ค. ์ด๋ ๊ฐ ๊ณ์ ์ ๋ถ์ฌ๋ ROLE์ ๋ฐ๋ผ ์ ๊ทผ ๊ฐ๋ฅํ ๋ฆฌ์์ค๊ฐ ๋ฌ๋ผ์ง๊ธฐ ๋๋ฌธ์ ๋๋ค.
์ด์ฒ๋ผ ROLE์ ๋ง์ถฐ ๊ฐ์ ํ ์ ์๋ ํ๋์ด ๋ค๋ฅด๊ณ , ์๋ฒ์์๋ ์ธ์ฆ์ ํตํด ์ ์ ์ ์ ์์ ํ์ธํ๊ณ , ๊ทธ์ ๋ง๋ ์ธ๊ฐ๋ฅผ ๋ด๋ฆฝ๋๋ค.
์์ฝํ์๋ฉด, ์ธ์ฆ์ ์ฌ์ฉ์์ ์ ์์ ํ์ธํ๊ณ ์ธ๊ฐ๋ ์ธ์ฆ๋ ์ฌ์ฉ์๊ฐ ์ด๋ค ์์ ์ ์ํํ ์ ์๋์ง๋ฅผ ๊ฒฐ์ ํ๋ ํ๋ก์ธ์ค์ ๋๋ค.
์ด ๋ ๊ฐ์ง ์์๋ ํจ๊ป ์ฌ์ฉ๋์ด ์ ๋ณด ์์คํ ๊ณผ ๋ฐ์ดํฐ์ ๋ณด์์ ์ ์งํ๋ฉฐ ์ ๊ทผ ์ ์ด๋ฅผ ๊ด๋ฆฌํ๋ ๋ฐ ์ค์ํ ์ญํ ์ ํฉ๋๋ค.
- ์ธ์ฆ(Authentication): ์ฌ์ฉ์๊ฐ ๋๊ตฌ์ธ์ง ํ์ธํ๋ ๊ณผ์ (ex. ๋ก๊ทธ์ธ)
- ์ธ๊ฐ(Authorization): ํ์ธ๋ ์ฌ์ฉ์์๊ฒ ์ด๋ค ๊ถํ์ด ์๋์ง ๊ฒฐ์ ํ๋ ๊ณผ์ (ex. ๊ด๋ฆฌ์/์ฌ์ฉ์ ๊ธฐ๋ฅ ์ฐจ์ด)
์ฐธ๊ณ ์๋ฃ