๐ก ์ธ์ฆ(Authentication) Vs ์ธ๊ฐ(๊ถํ ๋ถ์ฌ, Autorization)
๋น์ทํด ๋ณด์ด์ง๋ง ๋ค๋ฅธ ๋ ํ๋ก์ธ์ค์ ์ฐจ์ด์ ์ ์ ๋ฆฌํ์!
๋ ธ์ ์์ ๋ณด๊ธฐ
๐ ์์ฝ
- ์ธ์ฆ์ด๋,
- ์ฌ์ฉ์๊ฐ ๋๊ตฌ์ธ์ง ํ์ธํ๋ ์ ์ฐจ
- ์ธ๊ฐ๋,
- ์ฌ์ฉ์์ ๋ํ ๊ถํ์ ํ๋ฝํ๋ ๊ฒ
- ๋๊ฐ, ์ธ์ , ์ด๋ป๊ฒ ์ฐ๊ณ ์๋์ง๋ฅผ ํ์ ํ๊ธฐ ์ํด ์ธ์ฆ๊ณผ ์ธ๊ฐ๊ฐ ์กด์ฌํ๋ค. in anywhere
- Privateํ API & Publicํ API ๋ชจ๋ ๊ธฐ๋ณธ์ ์ธ ์ธ์ฆ๊ณผ ์ธ๊ฐ๋ฅผ ์๊ตฌํ๋ค.
๐๐ป ์ธ์ฆ
์ธ์ฆ์ ๊ฐ๋
- ์ฌ์ฉ์(ํน์ ์ฅ์น)๊ฐ ๋๊ตฌ์ธ์ง๋ฅผ ํ์ธํ๋ ์ ์ฐจ
- ์์ : ํ์๊ฐ์ , ๋ก๊ทธ์ธ, ์ ๋ถ์ฆ ์ ์๋ฅผ ํตํ ์ ์ ํ์ธ
์ธ์ฆ์ ์ ์ฐจ
- ํ์๊ฐ์
๊ณผ์
- ์์ด๋, ๋น๋ฐ๋ฒํธ๋ฅผ ์์ฑํ๋ค.
- ๋น๋ฐ๋ฒํธ๋ฅผ ์ํธํํ์ฌ DB์ ์ ์ฅํ๋ค.
- ๋ก๊ทธ์ธ ๊ณผ์
- ๋ฑ๋ก๋ ์์ด๋์ ๋น๋ฐ๋ฒํธ๋ฅผ ์ ๋ ฅํ๋ค.
- ์ํธํ๋์ด DB์ ์ ์ฅ๋ ์ฌ์ฉ์์ ๋น๋ฐ๋ฒํธ์ ์ผ์นํ๋์ง ๋น๊ตํ๋ค.
- ์ผ์นํ๋ ๊ฒฝ์ฐ, ๋ก๊ทธ์ธ
- ์ผ์นํ์ง ์๋ ๊ฒฝ์ฐ, ๋ก๊ทธ์ธ ์คํจ
- ๋ก๊ทธ์ธ์ ์ฑ๊ณตํ๋ฉด, access token์ ํด๋ผ์ด์ธํธ์ ์ ์ก
- ์ต์ด ๋ก๊ทธ์ธ ์ฑ๊ณต ํ ์ดํ๋ถํฐ๋ access token์ ์ฒจ๋ถํ์ฌ ์๋ฒ์ ์์ฒญ์ ์ ์กํจ์ผ๋ก์จ, ๋งค๋ฒ ๋ก๊ทธ์ธํ๋ ๊ณผ์ ์ ์๋ตํ ์ ์๋ค.
์ ๋ณด๋ฅผ ์ฒจ๋ถํด ํต์ ์ ๋ณด๋ด๋ ๋ฐฉ๋ฒ
- ํ์๊ฐ์ ํ ๋ก๊ทธ์ธ ๊ณผ์ ์์ access token์ ์ฌ์ฉ์ ์ ๋ณด๋ฅผ ์ฒจ๋ถํ๋ค๊ณ ํ ๋, ์ด๋ค ๋ฐฉ์์ผ๋ก ์ ํจํ๊ณ + ๋ณด์์ฑ๊น์ง ๊ณ ๋ คํ ์ ๋ณด๋ฅผ ์ฒจ๋ถํด ํต์ ์ ๋ณด๋ผ ์ ์์๊น?
- ID, Password ๋ฅผ ํจ๊ป ๋ณด๋ด๊ธฐ
- ๊ฐ์ฅ ๋จ์ํ ๋ฐฉ๋ฒ
- ๋งค๋ฒ ์๋ฒ์์ ์ฌ์ฉ์ ์ ๋ณด ํ์ธ ํ์
- ์ฌ์ฉ์ ์ ๋ณด์ ๋ฐ๋ณต ์กฐํ ๊ด์ ์์ ๋ณด์ ์ทจ์ฝ
- ์ผ์ ์๊ฐ์ด ์ง๋๋ฉด ๋ง๋ฃ๋๋ ์์ ID ๋ณด๋ด๊ธฐ
- ์์ ID๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ, ์ด๋ค ์ฌ์ฉ์๊ฐ ์์ฒญ์ ํ๋์ง ํ์
ํ๊ธฐ ์ด๋ ค์
- ์ค์ ์ฌ์ฉ์ ์ ๋ณด์ - ์์ ์ ๋ณด๋ฅผ ์๋ก ๋งคํํด์ผ ํ๋ฏ๋ก ํจ์จ์ฑ ์ ํ
- ์ผ์ ์๊ฐ ๋์ ์ธ๊ฐ์ ์ ํจํ ์ ๋ณด๋ก ๋์ฒดํ๊ธฐ
- ์ฌ์ฉ์์ ์ ๋ณด๋ฅผ ๋ด์ JSON ๋ฐ์ดํฐ๋ฅผ ์ํธํํ์ฌ → ํด๋ผ์ด์ธํธ์ ์๋ฒ ๊ฐ์ ์ ๋ณด๋ฅผ ์ฃผ๊ณ ๋ฐ์ ์ ์๋ JWT ์ฌ์ฉ
๐๐ปโ๏ธ ์ธ๊ฐ(๊ถํ ๋ถ์ฌ)
์ธ๊ฐ(๊ถํ ๋ถ์ฌ)์ ๊ฐ๋
- ์ฌ์ฉ์๊ฐ ์์ฒญํ๋ ์์ฒญ(Request)์ ์คํํ ์ ์๋ ๊ถํ ์ฌ๋ถ๋ฅผ ํ์ธํ๋ ์ ์ฐจ
- ์์ : ๋ธ๋ก๊ทธ ํฌ์คํ ์ ๊ธ์ด์ด์ ์ฝ๋ ์ฌ์ฉ์์ ๋ํด, ๊ธ์ ๋ด์ฉ์ ์์ ํ ์ ์๋ ๊ถํ์ ๊ธ์ ์ง์ ๊ฒ์ํ ๊ธ์ด์ด๋ง ๊ฐ๋ฅํ๋ค.
- ์ด๋ค ๊ฐ์ฒด๊ฐ ‘์ด๋ค ๋ฆฌ์ค์์ ์ ๊ทผํ ์ ์๋์ง’ or ‘์ด๋ค ๋์์ ์ํํ ์ ์๋์ง'๋ฅผ ๊ฒ์ฆํ๋ ๊ฒ → ์ฆ, ‘์ ๊ทผ ๊ถํ'์ ์ป๋ ๊ฒ
์ธ๊ฐ(๊ถํ ๋ถ์ฌ)์ ์ ์ฐจ
- Authentication ์ ์ฐจ๋ฅผ ํตํด access token ์ ์์ฑํ๋ค.
- access token์๋ ์ฌ์ฉ์ ์ ๋ณด๋ฅผ ํ์ธํ ์ ์๋ ์ ๋ณด, Ex) user ID ๊ฐ ๋ค์ด ์์ด์ผ ํ๋ค.
- ์ฌ์ฉ์๊ฐ Request๋ฅผ ๋ณด๋ผ ๋ access token์ ํจ๊ป ์ฒจ๋ถํด์ ๋ณด๋ธ๋ค.
- ์๋ฒ์์๋, ์ ์ ๊ฐ ๋ณด๋ธ access token์ ๋ณตํธํํ๋ค.
- ๋ณตํธํ๋ ๋ฐ์ดํฐ๋ฅผ ํตํด user ID ๋ฅผ ์ป๋๋ค.
- user ID ๋ฅผ ํตํด DB์์ ํด๋น ์ ์ ์ ๊ถํ(permission)์ ํ์ธํ๋ค.
- ์ฌ์ฉ์๊ฐ ์ถฉ๋ถํ ๊ถํ์ ๊ฐ์ง๊ณ ์์ผ๋ฉด, ํด๋น ์์ฒญ์ ์ฒ๋ฆฌํ๋ค.
- ์ฌ์ฉ์๊ฐ ๊ถํ์ ๊ฐ์ง๊ณ ์์ง ์๋ ๊ฒฝ์ฐ, Unauthorized Response(401) ๊ณผ ๊ฐ์ ์๋ฌ ์ฝ๋๋ฅผ ๋ณด๋ธ๋ค.
์ธ์ฆ Vs. ์ธ๊ฐ
- Point) ์ธ์ฆ์ → ์ธ๊ฐ๋ก ์ด์ด์ง์ง๋ง, ์ธ๊ฐ๊ฐ → ์ธ๊ฐ๋ก ์ด์ด์ง์ง๋ ์๋๋ค!
- ์ ์ ์ฆ๋ช ์ด ์ ๊ทผ ๊ถํ์ ์น์ธํ๊ธฐ์๋ ์ถฉ๋ถํ๋ค๊ณ ํด๋, ์ฆ ๋ฌด์์ธ๊ฐ๋ฅผ ์ป๋๋ฐ ์ธ๊ฐ๋ฅผ ๋ฐ์ ์ ์๋ค๊ณ ํด๋
- ์ธ๊ฐ๊ฐ ํญ์ ๊ฐ์ฒด๋ฅผ ์๋ณํ๋ ๋ฐ ์ฌ์ฉํ ์ ์๋ ๊ฒ์ ์๋๋ค.
- ์๋ฅผ ๋ค์ด, ๋นํ๊ธฐ ํ์น๊ถ์ ์ ์ ํ์ธ/์ธ๊ฐ ์ ๋ณด๋ฅผ ํฌํจํ๊ณ ์์ง๋ง,
- ๊ณต์ฐ ํฐ์ผ์ ๊ฒฝ์ฐ ์ ์ ์ธ๋ถ ์ฌํญ์ ๋ด๊ณ ์์ง ์์ ๊ณต์ฐ์ฅ ์ ์ฅ์ ์ํ ๊ถํ์ ์ ์ํ ๋ฟ ์ฌ์ฉ์์ ์ ์ ํ์ธ์ ํ ์ ์๋ ๊ฒ์ ์๋๋ค.
๐ ์ฐธ๊ณ ์๋ฃ
'Web > Concept' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Web] JWT(JSON Web Token) (0) | 2022.05.22 |
---|---|
[Web] ์๋ฒ ๊ธฐ๋ฐ ์ธ์ฆ ์์คํ ๊ณผ ํ ํฐ ๊ธฐ๋ฐ ์ธ์ฆ ์์คํ (0) | 2022.05.22 |
[Web] ์ฟ ํค(Cookie) & ์ธ์ (Session) (0) | 2022.05.22 |
[Web] JWT(JSON Web Token) (0) | 2022.01.13 |