Oauth.md
Last updated
Last updated
์ต๊ทผ ์ธํฐ๋ท ์๋น์ค๋ค์ ๊ทธ ์์ฒด๊ฐ SaaS(Software as a Service)์ ํํ์ ๋๋ค. ์๋น์ค ์ค์์ ์ฌ์ฉ์๊ฐ ์ผ๋ถ ํ์ํ ๊ฒ๋ง ์ฌ์ฉํ ์ ์๊ฒ ํ๋ค๋ ๊ฒ์ ๋๋ค. ์ด๊ฒ์ ๋ณ๋์ ์ธ์ฆ์ ์ฐจ๋ฅผ ๊ฑฐ์น๋ฉด ๋ค๋ฅธ ์๋น์ค์์ ํด๋น ์๋น์ค์ ๊ธฐ๋ฅ์ ์ผ๋ถ ์ด์ฉํ ์ ์๊ฒ ๋๋ ๊ฒ์ผ๋ก ๋ฐ์ ํ์์ต๋๋ค. ์ด๋ ์ฌ์ฉํ๋ ์ธ์ฆ ์ ์ฐจ๊ฐ ๋ฐ๋ก OAuth์ ๋๋ค.
OAuth๋ ์ธํฐ๋ท ์ฌ์ฉ์๋ค์ด ๋น๋ฐ๋ฒํธ๋ฅผ ์ ๊ณตํ์ง ์๊ณ ๋ค๋ฅธ ์น์ฌ์ดํธ ์์ ์์ ๋ค์ ์ ๋ณด์ ๋ํด ์น์ฌ์ดํธ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ ๊ทผ ๊ถํ์ ๋ถ์ฌํ ์ ์๋ ๊ณตํต์ ์ธ ์๋จ์ผ๋ก์ ์ฌ์ฉ๋๋, ์ ๊ทผ ์์์ ์ํ ๊ฐ๋ฐฉํ ํ์ค์ ๋๋ค.
OAuth ์ด์ ์ API ์ ๊ทผ ์์(API Access Delegation)์ ์ํ ์๋๋ค
OAuth์ ํ์์ด์ ์๋ Google, Yahoo!, Amazon๋ฑ์ ๊ธฐ์ ๋ค์์๋ ๋ค๋ฅธ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ฌ์ฉ์์ ์์ด๋์ ์ํธ๊ฐ ๋ ธ์ถ๋์ง ์๋๋ก ํ๋ฉด์ API ์ ๊ทผ ์์(API Access Delegation)์ด ๊ฐ๋ฅํ ์ฌ๋ฌ ์ธ์ฆ๋ฐฉ๋ฒ์ ์์ฒด์ ์ผ๋ก ๊ฐ๋ฐํด ์ฌ์ฉ ์ค์ด์์ต๋๋ค.
2006๋ API์ ๊ทผ ์์์ ๋ํ ํ์ค์์ด ์๋ค๋ ๊ฒ์ ์ธ์งํ Twitter์ ๊ฐ๋ฐ์์ Gnolia์ ๊ฐ๋ฐ์๊ฐ ๋ง๋ ์ธ์ฆ๋ฐฉ์์ ๋ ผ์ํ๊ณ ์ง์งํ๋ ์ฌ๋๋ ์๊ธฐ๊ฒ ๋๋ฉด์ 2008๋ IETF(๊ตญ์ ์ธํฐ๋ท ํ์คํ ๊ธฐ๊ตฌ)์์ ๋ ผ์๊ฐ ์์๊ณ ์ดํ 2010๋ ์ OAuth 1.0ํ๋กํ ์ฝ ํ์ค์์ด ์ ์์ผ๋ก RFC5849๋ก ๋ฐํ๋์์ต๋๋ค.
ํ์ฌ ๋์์๋ OAuth2.0์ ๋๋ํํธ ๋จ๊ณ(์ด์)์ ์๋ ๊ฒ์ผ๋ก, OAuth 1.0๊ณผ ํธํ๋์ง๋ ์์ง๋ง ์ธ์ฆ ์ ์ฐจ๊ฐ ๊ฐ๋ตํ๋ค๋ ์ฅ์ ์ด ์์ด ์ต์ข ์์ด ๋์ค์ง ์์์์๋ ์ฌ๋ฌ ์๋น์ค์์ ์ฌ์ฉ์ค์ด์์ต๋ค.
์ฃผ์๊ธฐ์ ๋ค์ด ์ฌ์ฉ์ค์ธ OAuth ๋ฒ์
์์ ๊ธ์ OAuth์ ๋ฐ๊ธ ๊ณผ์ ๊ณผ ๊ถํ์ ์์๋ก ๋ ๊ฒ์ ์ด๋ค.
๋ฐฉ๋ฌธ์ฆ == OAuth, ์ฌ์์ฆ === ๋ก๊ทธ์ธ
์ฆ, ๋ฐฉ๋ฌธ์ฆ์ ๊ฐ์ง ์ฌ๋์ด ์ถ์ ํ ์ ์๋ ๊ณณ๊ณผ, ์ฌ์์ฆ์ ๊ฐ์ง ์ฌ๋์ด ์ถ์ ํ ์ ์๋ ๊ณต๊ฐ์ด ๋ค๋ฅด๋ฏ์ด OAuth๋ฅผ ํตํด ๊ถํ์ ์ธ์ฆ๋ฐ์ ์ฌ์ฉ์์ ๋ก๊ทธ์ธํ์ฌ ์ธ์ฆ๋ฐ์ ์ฌ์ฉ์๊ฐ ํ ์ ์๋ ์ผ์ ๋ค๋ฆ ๋๋ค.
๊ทธ๋ ๊ธฐ ๋๋ฌธ์ OAuth์ธ์ฆ์ ์งํํ ๋ ์๋น์ค ์ ๊ณต์๋ ๋ค์๊ณผ ๊ฐ์ด '์ 3์๊ฐ ์ด๋ค ์ ๋ณด๋ ์๋น์ค์ ์ฌ์ฉ์์ ๊ถํ์ผ๋ก ์ ๊ทผํ๋ ค ํ๋๋ฐ ํ์ฉ ํ๊ฒ ๋?'๋ผ๋ ์๋ด ๋ฉ์์ง์ ๋์ ํ์ด์ง๊ฐ ํ์ํฉ๋๋ค.
OpenID : ์ธ์ฆ์ ์ํ ํ๋กํ ์ฝ, HTTP์ฌ์ฉ
ํ์ง๋ง OpenID์ ๋ชฉ์ ์ ์ธ์ฆ์ด์ง๋ง, OAuth์ ์ฃผ์ ๋ชฉ์ ์ ํ๊ฐ์ ๋๋ค.
์ฆ, OpenID๋ ๋ก๊ทธ์ธํ๋ ํ๋๊ณผ ๋ ๋น์ทํฉ๋๋ค.
OAuth๋ฅผ ์ด์ฉํ์ฌ ์ธ์ฆ์ ํ๋ ๊ณผ์ ์ OAuth Dance๋ผ๊ณ ํฉ๋๋ค.
OAuth๋ฅผ ์ดํดํ๊ธฐ ์ํด ๋ช ๊ฐ์ง ์ฉ์ด๋ค์ด ์์ต๋๋ค.
๋ ๊ตฌ์ฒด์ ์ธ ๋ด์ฉ์ naverd2oauth ๋ฅผ ์ฐธ๊ณ ํ์ธ์
OAuth 1.0์ ์์์ ๋ดค๋ฏ์ด ๋ณต์กํ ์ ์ฐจ, ์ผ๋ฐ ์ ํ๋ฆฌ์ผ์ด์ ์์๋ ์ฌ์ฉํ๊ธฐ ๊ณค๋ํ๊ธฐ ๋๋ฌธ์ OAuth 2.0์ด ๋จ์ ์ ๊ฐ์ ์์ผ ๋์จ ๊ฒ์ ๋๋ค. OAuth 1.0๊ณผ๋ ํธํ์ฑ์ด ์๊ณ ์ต์ข ์์ด ์์ง ๋ฐํ๋์ง ์์์ง๋ง ์ฌ๋ฌ ์๋น์ค์์ ์ฌ์ฉ์ค์ ๋๋ค.
ํน์ง
์น ์ ํ๋ฆฌ์ผ์ด์ ์ด ์๋ ์ ํ๋ฆฌ์ผ์ด์ ์ง์ ๊ฐํ ์ํธํ๊ฐ ํ์ ์์ HTTPS๋ฅผ ์ฌ์ฉํ๊ณ HMAC์ ์ฌ์ฉํ์ง ์๋๋ค.
Siganature ๋จ์ํ ์ ๋ ฌ๊ณผ URL ์ธ์ฝ๋ฉ์ด ํ์ ์๋ค.
Access Token ๊ฐฑ์ : OAuth 1.0์์ Access Token์ ๋ฐ์ผ๋ฉด Access Token์ ๊ณ์ ์ฌ์ฉํ ์ ์์๋ค. ํธ์ํฐ์ ๊ฒฝ์ฐ์๋ Access Token์ ๋ง๋ฃ์ํค์ง ์๋๋ค. OAuth 2.0์์๋ ๋ณด์ ๊ฐํ๋ฅผ ์ํด Access Token์ Life-time์ ์ง์ ํ ์ ์๋๋ก ํ๋ค.
์ธ์ฆ ๊ณผ์
์ธ์ฆ ๊ณผ์ ์์