12. Basic Authentication
์ฌ์ฉ์๋ฅผ ํ์ธํ๋ ๊ธฐ์ด์ ์ธ ์ฒด๊ณ๋ฅผ ์ค์ ์ ์ผ๋ก ๋ค๋ฃฌ๋ค.
์ด๋ป๊ฒ HTTP ์ธ์ฆ์ด DB์ ๋์ํ๋์ง ์์๋ณธ๋ค.
01) ์ธ์ฆ
์ธ์ฆ์ด๋, ๋น์ ์ด ๋๊ตฌ์ธ์ง ์ฆ๋ช ํ๋ ๊ฒ์ด๋ค.
์๋ฒฝํ ์ธ์ฆ์ด๋ ์๋ค. ๋น๋ฐ๋ฒํธ๋ฅผ ๋๊ตฐ๊ฐ ์ถ์ธกํ๊ฑฐ๋, ์ฟ๋ค์์ ์๊ณ , ๋๋๋ง๊ฑฐ๋ ์์กฐ๋ ์ ์๋ค.
ํ์ง๋ง ์ฌ๋ฌ ๋ฐ์ดํฐ๋ ๋น์ ์ด ๋๊ตฌ์ธ์ง ํ๋จํ๋๋ฐ ๋์์ด ๋๋ค.
โ HTTP์ ์ธ์ฆ์๊ตฌ/์๋ต ํ๋ ์์ํฌ
HTTP๋ ์ฌ์ฉ์ ์ธ์ฆ์ ํ๋๋ฐ ์ฌ์ฉํ๋ ์์ฒด ์ธ์ฆ ์๊ตฌ/์๋ต ํ๋ ์์ํฌ๋ฅผ ์ ๊ณตํ๋ค.
์ ์ฐจ
์น ์ ํ์ด์ผ์ด์ ์ด HTTP ์์ฒญ์ ๋ฐ์ผ๋ฉด ์๋ฒ๋ '์ธ์ฆ ์๊ตฌ'๋ก ์๋ตํ๋ค.
[์ฌ์ฉ์๊ฐ ๋๊ตฌ์ธ์ง ์ ์ ์๊ฒ ๊ฐ์ธ์ ๋ณด ์๊ตฌ]
์ฌ์ฉ์๊ฐ ๋ค์ ์์ฒญ์ ๋ณด๋ผ๋ '์ธ์ฆ ์ ๋ณด'๋ฅผ ์ฒจ๋ถํด์ผํ๋ค.
์ธ์ฆ ์ ๋ณด๊ฐ ๋ง์ง ์์ผ๋ฉด ์๋ฒ๋ ํด๋ผ์ด์ธํธ์ ๋ค์ ์ธ์ฆ์๊ตฌ๋ฅผ ๋ณด๋ด๊ฑฐ๋ ์๋ฌ๋ฐํ
์ธ์ฆ ์ ๋ณด๊ฐ ๋ง์ผ๋ฉด ์์ฒญ์ ๋ฌธ์ ์์ด ์ฒ๋ฆฌ ์๋ฃ
โก ์ธ์ฆ ํ๋กํ ์ฝ๊ณผ ํค๋
HTTP๋ ํ์์ ๋ฐ๋ผ ๊ณ ์ณ ์ธ ์ ์๋ ์ ์ด ํค๋๋ฅผ ํตํด์ ๋ค๋ฅธ ์ธ์ฆ ํ๋กํ ์ฝ์ ๋ง์ถ์ด ํ์ฅํ ์ ์๋ ํ๋ ์์ํฌ๋ฅผ ์ ๊ณตํ๋ค. ์ธ์ฆํ๋กํ ์ฝ์ ๋ฐ๋ผ ํค๋์ ํ์๊ณผ ๋ด์ฉ์ด ๋ฌ๋ผ์ง ์ ์๋ค. ์ธ์ฆ ํ๋กํ ์ฝ์ HTTP ์ธ์ฆ ํค๋์ ๊ธฐ์ ๋์ด์๋ค.
[์ธ์ฆ ๋จ๊ณ ์์]
HTTP ์๋ ๊ธฐ๋ณธ ์ธ์ฆ๊ณผ ๋ค์ด์ ์คํธ ์ธ์ฆ 2๊ฐ์ง ๊ณต์์ ์ธ ์ธ์ฆ ํ๋กํ ์ฝ์ด ์๋ค.
๋ฏธ๋์๋ ์ฌ๋๋ค์ด HTTP ์ธ์ฆ์๊ตฌ/์๋ต ํ๋ ์์ํฌ๋ฅผ ์ฌ์ฉํด ์๋ก์ด ํ๋กํ ์ฝ์ ๊ณ ์ํ ์ ์์๊ฒ์ด๋ค.
โข ๋ณด์ ์์ญ
HTTP๊ฐ ๊ฐ ๋ฆฌ์์ค๋ง๋ค ๋ค๋ฅธ ์ ๊ทผ ์กฐ๊ฑด์ ์ด๋ป๊ฒ ๋ค๋ฃฐ๊น?
์น์๋ฒ๋ ๊ธฐ๋ฐ๋ฌธ์๋ฅผ ๋ณด์์์ญ realm
๊ทธ๋ฃน์ผ๋ก ๋๋๋ค. ๋ณด์์์ญ์ ์ ๋ง๋ค ๋ค๋ฅธ ์ฌ์ฉ์ ๊ถํ์ ์๊ตฌํ๋ค.
realm
ํ๋ผ๋ฏธํฐ๊ฐ ํจ๊ป ๊ธฐ์ ๋ ๊ธฐ๋ณธ ์ธ์ฆ ์
realm
์ ํ์ฌ ์ฌ๋ฌด ๊ฐ์ ํ์์ผ๋ก ํด์คํด์ ๊ถํ์ ๋ฒ์๋ฅผ ์ดํดํ๋๋ฐ ๋์๋์ด์ผํ๋ค.
[ํ์ฌ ์ฌ๋ฌด ์์ญ๋ง ์ ๊ทผ ๊ฐ๋ฅํ ๊ถํ์ ๋ถ์ฌํ๋ค.]
2) ๊ธฐ๋ณธ ์ธ์ฆ
๊ธฐ๋ณธ ์ธ์ฆ์ ๊ฐ์ฅ ์ ์๋ ค์ง HTTP ์ธ์ฆ ๊ท์ฝ์ผ๋ก, ๊ฑฐ์ ๋ชจ๋ ์ฃผ์ client-server์ ๊ตฌํ๋์ด์๋ค.
๊ธฐ๋ณธ ์ธ์ฆ์์ ์น ์๋ฒ๋ ํด๋ผ์ด์ธํธ์ ์์ฒญ์ ๊ฑฐ๋ถํ๊ณ , ์ ํจํ ์ฌ์ฉ์์ด๋ฆ๊ณผ pw๋ฅผ ์๊ตฌํ ์์๋ค.(์์ ๋ด์ฉ)
โ ๊ธฐ๋ณธ์ธ์ฆ ์
๊ธฐ๋ณธ ์ธ์ฆ ํค๋
์ธ์ฆ ์๊ตฌ ํค๋(server โ client)
์๋ต (client โ server)
โก Base-64 ์ฌ์ฉ์ ์ด๋ฆ/๋น๋ฐ๋ฒํธ ์ธ์ฝ๋ฉ
Base-64 ์ธ์ฝ๋ฉ์ ๋ฐ์ด๋๋ฆฌ, ํ ์คํธ, ๊ตญ์ ๋ฌธ์ ๋ฐ์ดํฐ (์ด๋ค ์์คํ ์์๋ ๋ฌธ์ ๋ฅผ ์ผ์ผํฌ ์ ์๋) ๋ฌธ์์ด์ ๋ฐ์์ ์ ์กํ ์ ์๊ฒ, ๊ทธ ๋ฌธ์์ด์ ์ ์ก ๊ฐ๋ฅํ ๋ฌธ์์ธ ์ํ๋ฒณ์ผ๋ก ๋ณํํ๊ธฐ ์ํด ๋ฐ๋ช ๋ฌ๋ค. ์ ์ก ์ค ๋ฌธ์์ด์ด ๋ณ์ง๋ ๊ฑฑ์ ์์ด ์๊ฒฉ์์ ๋์ฝ๋ฉ ๊ฐ๋ฅํ๋ค.
Base-64 ์ธ์ฝ๋ฉ์ ๊ตญ์ ๋ฌธ์, HTTPํค๋์ ์ฌ์ฉํ ์ ์๋ ๋ฌธ์ (ํฐ๋ฐ์ดํ, ์ฝ๋ก , ์บ๋ฆฌ์ง๋ฆฌํด)๋ฅผ ํฌํจํ ์ฌ์ฉ์ ์ด๋ฆ๊ณผ ๋น๋ฐ๋ฒํธ๋ฅผ ๋ณด๋ด์ผํ ๋ ์ ์ฉํ ์ ์๋ค. ๋ํ ์๋ฒ๋ ๋คํธ์ํฌ๋ฅผ ๊ด๋ฆฌํ๋ฉด์ ๋ปํ์ง ์๊ฒ ์ฌ์ฉ์ ์ด๋ฆ๊ณผ ๋น๋ฐ๋ฒํธ๊ฐ ๋ ธ์ถ๋๋ ๋ฌธ์ ๋ฅผ ์๋ฐฉํ๋๋ฐ ํฐ ๋์์ด ๋๋ค.
โข ํ๋ฝ์ ์ธ์ฆ
ํ๋ฝ์ ์๋ฒ๋ฅผ ํตํด ์ธ์ฆํ ์๋ ์๋ค. ์ด๋ค ํ์ฌ๋ ์ฌ์ฉ์๋ค์ด ํ์ฌ์ ์๋ฒ๋ LAN, ๋ฌด์ ๋คํธ์ํฌ์ ์ ๊ทผํ๊ธฐ ์ ์ ํ๋ฝ์ ์๋ฒ๋ฅผ ๊ฑฐ์น๊ฒ ํ์ฌ ์ฌ์ฉ์๋ฅผ ์ธ์ฆํ๋ค.
ํ๋ฝ์ ์๋ฒ์์ ์ ๊ทผ ์ ์ฑ ์ ์ค์๊ด๋ฆฌํ ์ ์๊ธฐ ๋๋ฌธ์, ํ์ฌ ๋ฆฌ์์ค ์ ์ฒด์ ๋ํด ํตํฉ ์ ๊ทผ ์ ์ด๋ฅผ ํ๊ธฐ ์ํด์ ํ๋ฝ์ ์๋ฒ๋ฅผ ์ฌ์ฉํ๋ฉด ์ข๋ค. ํ๋ฝ์ ์ธ์ฆ์ ์น ์๋ฒ์ ์ธ์ฆ๊ณผ ํค๋์ ์ํ์ฝ๋๋ง ๋ค๋ฅด๊ณ ์ ์ฐจ๋ ๊ฐ๋ค.
3) ๊ธฐ๋ณธ ์ธ์ฆ์ ๋ณด์ ๊ฒฐํจ
๊ธฐ๋ณธ ์ธ์ฆ์ ๋จ์ํ๊ณ ํธ๋ฆฌํ์ง๋ง ์์ฌํ ์ ์๋ค.
๊ธฐ๋ณธ ์ธ์ฆ์ ์ ์์ ์ด์ง ์์ ๋๊ตฐ๊ฐ๊ฐ ์๋์น ์๊ฒ ๋ฆฌ์์ค์ ์ ๊ทผํ๋ ๊ฒ์ ๋ง๋๋ฐ ์ฌ์ฉํ๊ฑฐ๋, SSL๊ฐ์ ์ํธ๊ธฐ์ ๊ณผ ํผ์ฉํ๋ค.
๋ค์ ๋ณด์ ๊ฒฐํจ์ ์ดํด๋ณด์.
๊ธฐ๋ณธ์ธ์ฆ์ ์ฌ์ฉ์ ์ด๋ฆ๊ณผ ๋น๋ฐ๋ฒํธ๋ฅผ ์ฝ๊ฒ ๋์ฝ๋ฉํ ์ ์๋ ํ์์ผ๋ก ๋คํธ์ํฌ์ ์ ์กํ๋ค.
[์ด๊ฒ ๋ฌธ์ ๊ฐ ๋๋ค๋ฉด, ๋ชจ๋ HTTP ํธ๋์ญ์ ์ SSL์ํธํ ์ฑ๋์ ํตํด ๋ณด๋ด๊ฑฐ๋, ๋ณด์์ด ๋ ๊ฐํ๋ ๋ค์ด์ ์คํธ ์ธ์ฆ ๊ฐ์ ํ๋กํ ์ฝ์ ์ฌ์ฉํ๋๊ฒ ์ข๋ค.]
๊ธฐ๋ณธ์ธ์ฆ์ ์ฌ์ ์ก ๊ณต๊ฒฉ์ ์๋ฐฉํ๊ธฐ ์ํ ์ด๋ค ์ผ๋ ํ์ง ์๋๋ค.
์ ์๊ฐ ์๋ ๋๋ ํ ๋๊ตฐ๊ฐ๊ฐ ๋ฌด๋ฃ ์ธํฐ๋ท ์ด๋ฉ์ผ ๊ฐ์ ์ฌ์ดํธ์์ ์ฌ์ฉ์ ์ด๋ฆ, pw ๋ฅผ ๊ทธ๋๋ก ์บก์ณํด์ ์ค์ํ ์จ๋ผ์ธ ์ํ์ฌ์ดํธ์ ์ ๊ทผํ ์๋ ์๋ค.
๋ฉ์์ง ์ธ์ฆํค๋ ์ธ ๋ค๋ฅธ ๋ถ๋ถ์ ์์ ํด์ ํธ๋์ญ์ ์ ์๋ ์๋๋ฅต ๋ฐ๊ฟ๋ฒ๋ฆฌ๋ ์ค๊ฐ์(ํ๋ก์ ๋ฑ)๊ฐ ๊ฐ์ ํ๋ฉด ์ ์์ ์ธ ๋์์ ๋ณด์ฅํ์ง ์๋๋ค.
๊ฐ์ง ์๋ฒ ์์ฅ์ ์ทจ์ฝํ๋ค.
Last updated