Authentication
HTTP์ ์ธ์ฆ ์๊ตฌ / ์๋ต ํ๋ ์์ํฌ
์น ์ํ๋ฆฌ์ผ์ด์ ์ด HTTP ์์ฒญ ๋ฉ์์ง๋ฅผ ๋ฐ์ผ๋ฉด, ์๋ฒ๋ ์์ฒญ์ ์ฒ๋ฆฌํ๋ ๋์ ์ ํ์ฌ ์ฌ์ฉ์๊ฐ ๋๊ตฌ์ธ์ง๋ฅผ ์ ์ ์๊ฒ ๋น๋ฐ๋ฒํธ ๊ฐ์ด ๊ฐ์ธ ์ ๋ณด๋ฅผ ์๊ตฌํ๋ '์ธ์ฆ ์๊ตฌ'๋ก ์๋ตํ ์ ์๋ค.
์ฌ์ฉ์๊ฐ ๋ค์ ์์ฒญ์ ๋ณด๋ผ ๋๋ ์ธ์ฆ ์ ๋ณด๋ฅผ ์ฒจ๋ถํด์ผํ๋ค. ์ธ์ฆ์ ๋ณด๊ฐ ๋ง์ง ์์ผ๋ฉด ์๋ฒ๋ ํด๋ผ์ด์ธํธ์ ๋ค์ ์ธ์ฆ์๊ตฌ๋ฅผ ๋ณด๋ด๊ฑฐ๋ ์๋ฌ๋ฅผ ๋ผ ์ ์๋ค.
๊ธฐ๋ณธ ์ธ์ฆ ์ ์ฐจ
์ฌ์ฉ์๊ฐ ์ธ์ฆ ์๊ตฌ๋ฅผ ๋ณด๋ด๋ฉด, ์๋ฒ๋ 401 Unauthorized ์๋ต๊ณผ ํจ๊ป WWW-Authenticate ํค๋๋ฅผ ๊ธฐ์ ํด์ ์ด๋์ ์ด๋ป๊ฒ ์ธ์ฆํ ์ง ์ค๋ช
ํ๋ค
ํด๋ผ์ด์ธํธ๊ฐ ์๋ฒ๋ก ์ธ์ฆํ๋ ค๋ฉด, ์ธ์ฝ๋ฉ๋ ๋น๋ฐ๋ฒํธ์ ๊ทธ ์ธ ์ธ์ฆ ํ๋ผ๋ฏธํฐ๋ค์ Authorization ํค๋์ ๋ด์์ ์์ฒญ์ ๋ค์ ๋ณด๋ธ๋ค
์ธ์ฆ์ด ์ฑ๊ณตํ๋ฉด ์๋ฒ๋ 200 OK๋ฅผ ๋ฐํํ๋ฉฐ, ์ถ๊ฐ์ ์ธ ์ ๋ณด๋ฅผ Authentication-Infoํค๋์ ๊ธฐ์ ํ ์ ์๋ค
๋ณด์ ์์ญ
์น ์๋ฒ๋ ๊ธฐ๋ฐ๋ฌธ์๋ฅผ ๋ณด์ ์์ญ(realm) ๊ทธ๋ฃน์ผ๋ก ๋๋๋ค. ๋ณด์ ์์ญ์ ์ ๋ง๋ค ๋ค๋ฅธ ์ฌ์ฉ์ ๊ถํ์ ์๊ตฌํ๋ค.
๊ธฐ๋ณธ ์ธ์ฆ
Base-64 ์ธ์ฝ๋ฉ
1. ์ฌ์ฉ์ ์ด๋ฆ๊ณผ ๋น๋ฐ๋ฒํธ๋ฅผ ์ ๋ ฅ๋ฐ๋๋ค
ID: brian-totty / PW: Ow!
2. ์ฌ์ฉ์ ์ด๋ฆ,๋น๋ฐ๋ฒํธ๋ฅผ ์ฝ๋ก ์ผ๋ก ์๋๋ค
brian-totty:Ow!
3. Base 64 ์ธ์ฝ๋ฉ
BASE64ENC(brian-totty:Ow!) -> YnJpYW4tdG90dHk6T3ch
4. ์ธ๊ฐ ์์ฒญ์ ๋ณด๋ธ๋ค
GET / family/jeff.jpg HTTP/1.0 Authorization: Basic YnJpYW4tdG90dHk6T3ch
์น ์๋ฒ ์ธ์ฆ vs ํ๋ฝ์ ์ธ์ฆ
๋น์ธ์ฆ ์ํ ์ฝ๋ : 401
๋น์ธ์ฆ ์ํ ์ฝ๋ : 407
WWW-Authenticate
Proxy-Authenticate
Authorization
Proxy-Authorization
Authentication-Info
Proxy-Authentication-Info
๊ธฐ๋ณธ ์ธ์ฆ์ ๋ณด์ ๊ฒฐํจ
๊ธฐ๋ณธ ์ธ์ฆ์ ์ธ์ฝ๋ฉ๋ ๋น๋ฐ๋ฒํธ๋ ์ฝ๊ฒ ๋์ฝ๋ฉ ํ ์ ์๊ธฐ ๋๋ฌธ์ HTTPํธ๋์ญ์
์ SSL์ํธํ ์ฑ๋์ ํตํด ๋ณด๋ด๊ฑฐ๋, ๋ณด์์ด ๋ ๊ฐํ๋ ๋ค์ด์ ์คํธ ์ธ์ฆ ๊ฐ์ ํ๋กํ ์ฝ์ ์ฌ์ฉํ๋ ๊ฒ์ด ์ข๋ค
์ธ์ฝ๋ฉ๋ ๋น๋ฐ๋ฒํธ๋ฅผ ์ ์๋ฒ์ ๋ณด๋ด์ ์ธ์ฆ์ ์ฑ๊ณตํ๊ณ ์๋ฒ์ ์ ๊ทผํ ์ ์๋ค
์ฌ์ฉ์๋ ๋ณดํต ์์ด๋,๋น๋ฐ๋ฒํธ๋ฅผ ์ฌ๋ฌ ์ฌ์ดํธ์ ์ฌ์ฉํ๋ฏ๋ก ๋ ๋ฌธ์ ๊ฐ ๋๋ค
๊ฐ์ง ์๋ฒ์ ์ฐ๊ฒฐ๋์ด ์์ ์ ์๋ค
Last updated