๐ HTTP Basic ์ธ์ฆ์ด๋?
HTTP Basic ์ธ์ฆ์ ์น ํ์ด์ง์ ์ ์ํ๊ฑฐ๋ API๋ฅผ ํธ์ถํ ๋, ๋ธ๋ผ์ฐ์ ๊ฐ ํ์
์ ๋์ ์์ด๋์ ๋น๋ฐ๋ฒํธ๋ฅผ ๋ฌป๋ ๋ฐฉ์์
๊ฐ์ฅ ๊ธฐ๋ณธ์ ์ด๊ณ ๊ฐ๋จํ ์ธ์ฆ ๋ฐฉ์์ผ๋ก, ๋ธ๋ผ์ฐ์ ๋ ํด๋ผ์ด์ธํธ๊ฐ ์์ฒญ์ ๋ณด๋ผ ๋ Authorization ํค๋์ ์์ด๋:๋น๋ฐ๋ฒํธ๋ฅผ Base64๋ก ์ธ์ฝ๋ฉํด์ ๋ณด๋ธ๋ค
๐ป HTTP Basic ์ธ์ฆ ํ๋ฆ
- ์ฌ์ฉ์๊ฐ API๋ฅผ ํธ์ถ
- ์๋ฒ๋ "์ธ์ฆ์ด ํ์ํ๋ค"๋ 401 Unauthorized ์๋ต์ ๋ณด๋
- ๋ธ๋ผ์ฐ์ ๊ฐ ํ์
์ ๋์ "์์ด๋์ ๋น๋ฐ๋ฒํธ๋ฅผ ์
๋ ฅํ์ธ์"๋ผ๊ณ ํจ
- ์ฌ์ฉ์๊ฐ ์
๋ ฅํ ์์ด๋์ ๋น๋ฐ๋ฒํธ๊ฐ Base64๋ก ์ธ์ฝ๋ฉ๋์ด ์์ฒญ์ ํฌํจ
- ์๋ฒ๋ ์ด๋ฅผ ๋์ฝ๋ฉํด ์ธ์ฆ์ ์ํํ๊ณ , ์ฑ๊ณตํ๋ฉด API ์๋ต์ ๋ฐํ
๐ ํ๋ฒ๊ฑฐ ๊ฐ๊ฒ ๋น์ ํด ๋ณด์๋ฉด..
- ์ํฉ:
- ๋น์ ์ ํ๋ฒ๊ฑฐ ๊ฐ๊ฒ์ ๋ค์ด๊ฐ๋ ค๊ณ ํจ
- ๊ฐ๊ฒ์ ๋ค์ด์๋ฉด ๋ฌธ ์์์ ์ง์์ด ๋ฌผ์ด๋ด
- "์์ด๋์ ๋น๋ฐ๋ฒํธ๋ฅผ ์
๋ ฅํด ์ฃผ์ธ์!"
- ๋น์ ์ด ์์ด๋์ ๋น๋ฐ๋ฒํธ๋ฅผ ์
๋ ฅํ๋ฉด, ์ง์์ด ํ์ธํ๊ณ ๊ฐ๊ฒ ์์ผ๋ก ๋ค์ฌ๋ณด๋ด์ง๋ค
๐ HTTP Basic ์ธ์ฆ ์์ฒญ ์์ (ํค๋):
GET /api/users HTTP/1.1
Host: example.com
Authorization: Basic dXNlcm5hbWU6cGFzc3dvcmQ=
dXNlcm5hbWU6cGFzc3dvcmQ=
- Base64๋ก ์ธ์ฝ๋ฉ๋ ๊ฐ
- ๋์ฝ๋ฉํ๋ฉด
username:password๊ฐ ๋จ
๐ HTTP Basic ์ธ์ฆ ํ์
ํ๋ฉด (๋ธ๋ผ์ฐ์ ์์ ๋ณด๋ ํ๋ฉด):
+-----------------------------+
| Authentication Required |
| |
| Username: [________] |
| Password: [________] |
| |
| [ OK ] |
+-----------------------------+
- API ์์ฒญ ์ ์์ ๊ฐ์ ๊ธฐ๋ณธ ํ์
์ด ๋จ๋ ๋ฐฉ์
- ์์ด๋์ ๋น๋ฐ๋ฒํธ๋ฅผ ์
๋ ฅํ๋ฉด, ํด๋น ์ ๋ณด๋ฅผ ์๋ฒ๋ก ์ ์กํด ์ธ์ฆ
๐ HTTP Basic ์ธ์ฆ์ ๋จ์ (์ ๋นํ์ฑํํ ๊น?)
- ๋ณด์์ ์ทจ์ฝํ๋ค
- ์์ด๋์ ๋น๋ฐ๋ฒํธ๊ฐ ๋งค ์์ฒญ๋ง๋ค ์ ์ก
- ๋น๋ก Base64๋ก ์ธ์ฝ๋ฉ๋์ง๋ง, ์ธ์ฝ๋ฉ์ ์ํธํ๊ฐ ์๋
- HTTP๊ฐ ์๋ HTTPS๊ฐ ์๋๋ฉด ์ฝ๊ฒ ํ์ทจ๋ ์ ์๋ค
- ์ฌ์ฉ์ ๊ฒฝํ(UX)์ด ๋์๋ค
- ํ์
๋ฐฉ์์ด๋ผ ์ฌ์ฉ์ ๊ฒฝํ์ด ์ข์ง ์๋ค
- ์ค๋ฌด์์๋ ํผ ๋ก๊ทธ์ธ, JWT, OAuth2 ๊ฐ์ ๋ ์์ ํ๊ณ ์ ์ฐํ ๋ฐฉ์์ ์ฌ์ฉ
- ๊ธฐ๋ณธ ์ธ์ฆ์ด๋ผ ๋๋ฌด ๋จ์ํ๋ค
- ์ธ์
๊ด๋ฆฌ๊ฐ ๋ถ๊ฐ๋ฅํ๊ณ ,
- ๋ค์ํ ์ธ์ฆ ํ๋ฆ์ ์ ์ฉํ๊ธฐ ์ด๋ ต๋ค
โ
HTTP Basic ์ธ์ฆ์ ๋์ฒดํ๋ ๋ฐฉ์
-
JWT (JSON Web Token)
- ํด๋ผ์ด์ธํธ๊ฐ ๋ก๊ทธ์ธ ์ JWT(ํ ํฐ)๋ฅผ ๋ฐ๊ธ๋ฐ์ ์์ฒญ์ ํฌํจ์ํด
- ์๋ฒ๋ JWT๋ฅผ ๊ฒ์ฆํ๊ณ , ํด๋ผ์ด์ธํธ์ ์ธ์ฆ ์ํ๋ฅผ ์ ์ง
-
OAuth2
- ์์
๋ก๊ทธ์ธ(Google, Naver, Kakao ๋ฑ)์ด๋ API ์ธ์ฆ์ ์ฌ์ฉ
- ์ก์ธ์ค ํ ํฐ์ ํตํด ์ธ์ฆํ๋ฉฐ, ์ธ์
๊ด๋ฆฌ๊ฐ ์ฉ์ด
-
ํผ ๊ธฐ๋ฐ ์ธ์ฆ (Form Login)
- ์น์ฌ์ดํธ์์ ์ฃผ๋ก ์ฌ์ฉ๋๋ ๋ก๊ทธ์ธ ๋ฐฉ์์ผ๋ก, ์ฌ์ฉ์์๊ฒ ์ง์ HTML ํผ์ ํตํด ๋ก๊ทธ์ธ ์ ๋ณด๋ฅผ ์
๋ ฅ๋ฐ๋ ๋ฐฉ์