[security] ์๋ฒ ๊ธฐ๋ฐ ์ธ์ฆ(์ฟ ํค, ์ธ์ )๊ณผ ํ ํฐ ๊ธฐ๋ฐ ์ธ์ฆ(JWT, oauth2)
์๋ฒ ๊ธฐ๋ฐ ์ธ์ฆ(์ฟ ํค, ์ธ์ )๊ณผ ํ ํฐ ๊ธฐ๋ฐ ์ธ์ฆ(JWT, oauth2)
๋ก๊ทธ์ธ์ ๊ตฌํ ํ๋ฉด์ ์ ๋ฆฌํ ๋ด์ฉ ์ ๋๋ค !
์ค๋ฅ๊ฐ ์๋ค๋ฉด ๋๊ธ๋ก ๋จ๊ฒจ์ฃผ์ธ์ :)
1. ์๋ฒ ๊ธฐ๋ฐ ์ธ์ฆ, ํ ํฐ ๊ธฐ๋ฐ ์ธ์ฆ
2. ์ฟ ํค
3. ์ธ์
4. JWT
5. oauth2
1. ์๋ฒ ๊ธฐ๋ฐ ์ธ์ฆ, ํ ํฐ ๊ธฐ๋ฐ ์ธ์ฆ
์ฌ์ฉ์๊ฐ ์๋ฒ์ ์ ๊ทผํ ๋, ์ฌ์ฉ์ ์ธ์ฆ ํ์ธ ๋ฐฉ๋ฒ์๋ ์๋ฒ ๊ธฐ๋ฐ ์ธ์ฆ๊ณผ ํ ํฐ ๊ธฐ๋ฐ ์ธ์ฆ์ด ์๋ค.
์๋ฒ ๊ธฐ๋ฐ ์ธ์ฆ์๋ ์ฟ ํค์ ์ธ์ ์ด ์๊ณ , ํ ํฐ ๊ธฐ๋ฐ ์ธ์ฆ์๋ JWT์ oauth2๊ฐ ์๋ค.
- ํ ํฐ ๊ธฐ๋ฐ ์ธ์ฆ ๋์ ๊ณผ์
ํ ํฐ์ ์๋ฒ์์ ํด๋ผ์ด์ธํธ๋ฅผ ๊ตฌ๋ถํ๊ธฐ ์ํ ์ ์ผํ ๊ฐ์ด๋ค.
ํ ํฐ ๊ธฐ๋ฐ ์ธ์ฆ์ ๋ฌด์ํ์ฑ, ํ์ฅ์ฑ, ๋ฌด๊ฒฐ์ฑ์ 3๊ฐ์ง ํน์ง์ด ์๋ค.
1. ํด๋ผ์ด์ธํธ๊ฐ ์๋ฒ์ ๋ก๊ทธ์ธ์ ์์ฒญํ๋ค.
2. ์๋ฒ๋ ํ ํฐ ์์ฑ ํ ์๋ตํ๋ค.
3. ํด๋ผ์ด์ธํธ์ ํ ํฐ์ ์ ์ฅํ๋ค.
4. ์ดํ ํ ํฐ ์ ๋ณด์ ํจ๊ป ์์ ์ ์์ฒญํ๋ค.
5. ์๋ฒ๋ ํ ํฐ์ด ์ ํจํ์ง ๊ฒ์ฆํ๋ค.
6. ํ ํฐ์ด ์ ํจํ๋ฉด ํด๋ผ์ด์ธํธ๊ฐ ์์ฒญํ ๋ด์ฉ์ ์ฒ๋ฆฌํ๋ค.
2. ์ฟ ํค
์ฌ์ฉ์๊ฐ ์ด๋ค ์ฌ์ดํธ์ ์ ์ํ์ ๋, ํด๋น ์ฌ์ดํธ์ ์๋ฒ์์ ์ฌ์ฉ์์ ๋ก์ปฌ ํ๊ฒฝ์ ์ ์ฅํ๋ ์์ ๋ฐ์ดํฐ์ด๋ค.
ํค-๊ฐ ์์ผ๋ก ์ด๋ฃจ์ด์ ธ์๊ณ , ํด๋ผ์ด์ธํธ์ ๊ฐ์ ์ ์ฅํ ์ ์๋ค.
๋ง๋ฃ ๋ ์ง/์๊ฐ์ ์ง์ ํ์ฌ ์ผ์์ ์ผ ์๋ ์๊ณ , ์๊ตฌ์ ์ผ ์๋ ์๋ค.
3. ์ธ์
์๋ฒ์ ์ ์ฅ๋๋ ๋ฐ์ดํฐ์ด๊ณ , ์ผ๋ฐ์ ์ผ๋ก ์ฌ์ฉ์๊ฐ ๋ก๊ทธ์์ํ๊ฑฐ๋ ๋ธ๋ผ์ฐ์ ๋ฅผ ์ข ๋ฃํ ๋๊น์ง ์ ์ง๋๋ค.
์ผ๋ฐ์ ์ผ๋ก ์ธ์ ์ ์ผ์์ ์ด๋ฉฐ, ์ฌ์ฉ์์ ํ๋์ด ์๋ ๊ฒฝ์ฐ ์๋ฒ์์ ์ญ์ ๋๋ค.
4. JWT
JWT๋ ํ ํฐ ๊ธฐ๋ฐ ์ธ์ฆ์์ ์ฌ์ฉํ๋ ํ ํฐ์ด๋ค.
ํค๋.๋ด์ฉ.์๋ช ์ ๊ตฌ์กฐ๋ก ์กด์ฌํ๋ค.
ํค๋์๋ ํ ํฐ์ ํ์ ๊ณผ ํด์ฑ ์๊ณ ๋ฆฌ์ฆ์ ์ง์ ํ๋ ์ ๋ณด๋ฅผ ๋ด๋๋ค.
๋ด์ฉ์๋ ํ ํฐ๊ณผ ๊ด๋ จ๋ ์ ๋ณด๋ฅผ ๋ด๋๋ค.
์๋ช ์ ํด๋น ํ ํฐ์ด ์กฐ์, ๋ณ๊ฒฝ๋์ง ์์์์ ํ์ธํ๋ ์ฉ๋๋ก ์ฌ์ฉ๋๋ค.
5. oauth2
์ฌ์ฉ์์ ๋น๋ฐ๋ฒํธ๋ฅผ ์ ๊ณตํ์ง ์๊ณ ๋ค๋ฅธ ์น ์ฌ์ดํธ์ ์ ์ฅ๋ ์์ ์ ์ ๋ณด์ ๋ํด ์ ๊ทผ ๊ถํ์ ๋ถ์ฌํ๋ ๋ฐฉ์์ด๋ค.
๊ถํ ๋ถ์ฌ ์ฝ๋ ์น์ธ ํ์ , ์์์ ์น์ธ ํ์ , ๋ฆฌ์์ค ์์ ์ ์ํธ ์๊ฒฉ์ฆ๋ช ์น์ธ ํ์ , ํด๋ผ์ด์ธํธ ์๊ฒฉ์ฆ๋ช ์น์ธ ํ์ ๋ฑ ๋ฆฌ์์ค ์ค๋์ ์ ๋ณด๋ฅผ ์ทจ๋ํ๋ ๋ฐฉ๋ฒ์ 4๊ฐ์ง๊ฐ ์๋ค.
oauth2๋ ๊ถํ ๋ถ์ฌ ์ฝ๋ ์น์ธ ํ์ ์ ์ฃผ๋ก ์ฌ์ฉํ๊ธฐ ๋๋ฌธ์ ์ฌ๊ธฐ์๋ ๊ถํ ๋ถ์ฌ ์ฝ๋ ์น์ธ ๋์ ๊ณผ์ ์ ์ดํด๋ณด๊ฒ ๋ค.
- ๋ฆฌ์์ค ์ค๋
์์ ์ ์ ๋ณด๋ฅผ ์ฌ์ฉํ๋๋ก ์ธ์ฆ ์๋ฒ์ ํ๊ฐํ๋ ์ฃผ์ฒด์ด๊ณ , ์๋น์ค๋ฅผ ์ด์ฉํ๋ ์ฌ์ฉ์์ด๋ค.
- ๋ฆฌ์์ค ์๋ฒ
๋ฆฌ์์ค ์ค๋์ ์ ๋ณด๋ฅผ ๊ฐ์ง ํ์ด์ค๋ถ์ด๋ ๊ตฌ๊ธ ์๋ฒ์ด๋ค.
- ์ธ์ฆ ์๋ฒ
ํ ํฐ์ ๋ฐ๊ธํ๋ ์ญํ ์ ํ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ด๋ค.
- ํด๋ผ์ด์ธํธ ์ ํ๋ฆฌ์ผ์ด์
๋ฆฌ์์ค ์ค๋์ ๋ฆฌ์์ค๋ฅผ ์ฌ์ฉํ๋ ์ฃผ์ฒด์ด๋ค.
- ๊ถํ ๋ถ์ฌ ์ฝ๋ ์น์ธ ํ์
๋์ ๊ณผ์
1. ๋ฆฌ์์ค ์ค๋๊ฐ ์ ํ๋ฆฌ์ผ์ด์
์ ๋ก๊ทธ์ธ ์์ฒญ์ ํ๋ค.
2. ์ ํ๋ฆฌ์ผ์ด์
์ ์ธ์ฆ ์๋ฒ์ ์ ์ํด์ ์ธ์ฆ์ ์์ฒญํ๋ค.
3. ์ธ์ฆ ์๋ฒ๋ ๋ฆฌ์์ค ์ค๋๊ฐ ์ ํ๋ฆฌ์ผ์ด์
์๊ฒ ๊ถํ ๋ถ์ฌ๋ฅผ ํ์ฉํ ํ, ๊ถํ ๋ถ์ฌ ์ฝ๋๋ฅผ ๋ฐ๊ธํ๋ค.
4. ์ฝ๋๋ฅผ ๋ฐ๊ธํด์ URL์ ํฌํจํ์ฌ redirectํ์ฌ ์ ํ๋ฆฌ์ผ์ด์
์ ์ ๋ฌ๋๋ค.
5. ์ ํ๋ฆฌ์ผ์ด์
์ ์ด ์ฝ๋๋ฅผ ์ฌ์ฉํ์ฌ ์ก์ธ์ค ํ ํฐ์ ์์ฒญํ๋ค.
6. ์ธ์ฆ ์๋ฒ๋ ์ ํ๋ฆฌ์ผ์ด์
์๊ฒ ์์ฒญ๋ ์ก์ธ์ค ํ ํฐ์ ๋ฐ๊ธํ๋ค.
1. ๋ง์ฝ ๋ฆฌ์์ค ์ค๋๊ฐ ์ ํ๋ฆฌ์ผ์ด์
์ ์ด๋ ํ ์์ฒญํ๋ฉด
2. ์ ํ๋ฆฌ์ผ์ด์
์ ์ก์ธ์ค ํ ํฐ์ ๊ฐ์ง๊ณ ๋ฆฌ์์ค ์๋ฒ์ ์์ฒญ์ ๋ณด๋ธ๋ค.
3. ๋ฆฌ์์ค ์๋ฒ๋ ์ด ์ก์ธ์ค ํ ํฐ์ ๊ฒ์ฆํ๊ณ , ์ ํจํ ๊ฒฝ์ฐ ํด๋น ๋ฆฌ์์ค์ ๋ํ ๊ถํ์ ํ์ธ ํ ์์ฒญ์ ์ฒ๋ฆฌํ๋ค.
4. ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ฆฌ์์ค ์ค๋์๊ฒ ์๋ตํ๋ค.
๋ค์ ํฌ์คํ ์์ ๋ง๋์ !