OAuth๋
OAuth๋ Open Authorization์ ์ค์๋ง๋ก, ์ก์ธ์ค ์์์ ์ํ ๊ฐ๋ฐฉํ ํ์ค ์ธ๊ฐ ํ๋กํ ์ฝ์ด๋ค. ํด๋น ์ธ์ฆ ๋ฐ์์์ ์๋น์ค ์ ๊ณต ์ ์ฒด(๋ค์ด๋ฒ, ๊นํ๋ธ ๋ฑ)์ ์ ๋ณด๋ฅผ ๋น๋ฐ๋ฒํธ ์์ด ์ ๋ณด์ ๋ํ ์ก์ธ์ค ๊ถํ์ ๋ถ์ฌํ ์ ์๋ ์์ ํ ๋ฐฉ์์ผ๋ก, ํ์ฌ ๋ง์ด ์ฌ์ฉํ๋ ๋ก๊ทธ์ธ ๋ฐฉ์์ด๋ค.
์์ ์ฌ์ง์ฒ๋ผ ์์ฆ ํํ๊ฒ ๋ณผ ์ ์๋ ๋ก๊ทธ์ธ ๋ฐฉ์์ด๋ค.
์ด๋ ํ ์ ํ๋ฆฌ์ผ์ด์
์ ์ด์ฉํ๊ณ ์ ํ ๋, ๊ตฌ๊ธ, ์นด์นด์ค์ ๊ฐ์ ์ 3์ ์๋น์ค์์ ์ฌ์ฉ์๊ฐ ๊ฐ์ง๊ณ ์๋ ๊ณ์ ์ ์ ๋ณด๋ฅผ ์ฌ์ฉ์๊ฐ ํ์ฉํ๋ ๋ฒ์์ ํํด์ ๊ฐ์ ธ์ฌ ์ ์๋ค.
Authorization๊ณผ Authentication
Authentication(์ธ์ฆ)๊ณผ Authorization(์ธ๊ฐ)์ ๊ฐ๋ ์ ๋ํด์ ์ ๋ชจ๋ฅด๊ณ ์๋ ๊ฒฝ์ฐ๊ฐ ๋ง๋ค. ํฌ๊ฒ ๋ณด๋ฉด ๋ ๋ค ๊ฐ์ ๋จ์ด ๊ฐ์ง๋ง, ๋ ๊ฐ๋ ์ ์ธ๋ถ์ ์ผ๋ก ์๊ฒ ๋๋ฉด ํฐ ์ฐจ์ด๊ฐ ์๊ธฐ ๋๋ฌธ์ ์ด ์ ๋ถํฐ ์ง๊ณ ๋์ด๊ฐ์ผ ํ ํ์์ฑ์ด ์๋ค.
Authentication(์ธ์ฆ) : ํด๋น ์ฌ์ฉ์๊ฐ ์์ ์ด ์ฃผ์ฅํ๋ ๊ทธ ์ฌ๋์ธ์ง ํ์ธ์ ํ๋ ๊ฒ Authorization(์ธ๊ฐ) : ํด๋น ์ฌ์ฉ์๊ฐ ๋ฆฌ์์ค์ ์ ๊ทผํ ์ ์๋ ๊ถํ์ ๋ถ์ฌํ๋ ๊ฒ
์๋ฅผ ๋ค์ด ํธ์์ ์ ์ ์ ์ฌ๋ฌ ๊ฐ๋ค๊ณ ์๊ฐํด๋ณด์. ํธ์์ ์๋ ์ ์ ์ฌ๊ธฐ ์ํด์๋ ์ฑ์ธ์ด ๋์ด์ผ ํ๋ค. ๊ทธ๋ ๊ธฐ์ ํธ์์ ์๋ฐ๋ ์๋์๊ฒ โ๋ฏผ์ฆ ๊ฒ์ฌโ๋ฅผ ์๊ตฌํ๋ค. ๋ฏผ์ฆ์ ํตํด ํด๋น ์๋์ด ์์ ์ด ์ฃผ์ฅํ๋ โ์ฑ์ธโ์ด ๋ง๋์ง ๋ฏผ์ฆ์ ํตํด โ์ธ์ฆโํ๊ณ ์๋ฐ์์ ์ด๋ฅผ ํ์ธํ๋ค. ์ด ๊ณผ์ ์ด ์ธ์ฆ์ด๋ค. ๋ฏผ์ฆ์ ํตํด ์ฑ์ธ์์ด ํ์ธ ๋๋ฉด, ํด๋น ์๋์๊ฒ๋ ์ ์ ์ด ์ ์๋ ๊ถํ ์ด ์ฃผ์ด์ง๋ค. ์ด๊ฒ์ด ์ธ๊ฐ์ด๋ค.
๋ฐ๋ผ์ ๋ค์๊ธ OAuth์ ํ ๋ค์์ ์ง์ญํด๋ณด์์ ๋, ๊ฐ๋ฐฉ๋ ์ธ๊ฐ๋ผ๊ณ ์๊ฐํ ์ ์๋ค. ํน์ ์ 3์ ์๋น์ค๋ค์ ์ธ์ฆ์ด ์๋ฃ๋๋ฉด, ํด๋น ์๋น์ค์๊ฒ ์ ์ ์ ๋ํ ์ ๋ณด๋ฅผ ๋๊ฒจ์ฃผ๋ OAuth์ ์๋ฏธ๋ฅผ ์๊ฐํด๋ณผ ์ ์๋ค.
OAuth์ ํต์ฌ ์ฃผ์ฒด
OAuth์์์ ์ฃผ์ฒด๋ ํฌ๊ฒ ์ธ๊ฐ์ง, ์๊ฒ ๋๋๋ฉด ๋ค ๊ฐ์ง ์ ๋๋ก ๋๋๋ค.
- Resource Owner(or User)
- ๋ฆฌ์์ค๋ฅผ ์์ ํ ์ฌ์ฉ์๋ก, ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ฆฌ์์ค ๊ณต์ ์์ฒญ์ ํ๊ฐ
- ์๋น์ค๋ฅผ ์ด์ฉํ๋ ค๋ ์ฌ์ฉ์
- Client(or Consumer)
- ์ฌ์ฉ์์ ํ๊ฐ๋ฅผ ๋ฐ์ ์ฌ์ฉ์์ ๋ฆฌ์์ค์ ์ ๊ทผํ ์ ์๋๋ก ์์ฒญํ๋ ์์ฉ ์ ํ๋ฆฌ์ผ์ด์
- ์ ๊ณตํ๋ ค๋ ์๋น์ค
- Server(or Provider)
- ์ฌ์ฉ์์ ํ๊ฐ๋ฅผ ๊ฒ์ฆํ๊ณ , ํด๋ผ์ด์ธํธ์ ์์ฉ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ณด์ ํ ์ฌ์ฉ์์ ๋ฆฌ์์ค๋ฅผ ๊ณต์ ํ๋ ์๋ฒ
- ์ผ๋ฐ์ ์ผ๋ก ํ๊ฐ๋ฅผ ๋ด๋นํ๋ ๊ฒ์ฆ ์๋ฒ(Authorization Server)์ ์ค์ ์ฌ์ฉ์ ๋ฆฌ์์ค๋ฅผ ๋ณด์ ํ ๋ฆฌ์์ค ์๋ฒ(Resource Server, or API Server)๋ก ๋ถ๋ฆฌ๋์ด ์์
- ์ 3์ ์๋น์ค(๋ค์ด๋ฒ, ์นด์นด์ค, ๊ตฌ๊ธ ๋ฑ)
์๋ ๋ฐฉ์
+--------+ +---------------+
| |--(A)- Authorization Request ->| Resource |
| | | Owner |
| |<-(B)-- Authorization Grant ---| |
| | +---------------+
| |
| | +---------------+
| |--(C)-- Authorization Grant -->| Authorization |
| Client | | Server |
| |<-(D)----- Access Token -------| |
| | +---------------+
| |
| | +---------------+
| |--(E)----- Access Token ------>| Resource |
| | | Server |
| |<-(F)--- Protected Resource ---| |
+--------+ +---------------+
ํ๋กํ ์ฝ ์์ฒด์ ํ๋ก์ฐ๋ ์ด์ ๊ฐ์ด ๊ตฌ์ฑ๋๋ค. ํด๋ผ์ด์ธํธ๋ ์ธ์ฆ ์์ฒญ์ ๋ณด๋ด๊ณ , ์ ์ ๊ฐ ์ธ์ฆ์ ์๋ฃํ๋ฉด ํด๋ผ์ด์ธํธ์ธก์ ์ธ์ฆ์ด ์ ๋๋ก ์๋ฃ๋์์์ ์๋ฆฐ๋ค. ์ธ์ฆ์ด ์ ๋๋ก ์๋ฃ๋๋ฉด ํด๋ผ์ด์ธํธ๋ ์ธ์ฆ ์๋ฒ์ ์ธ์ฆ์ด ํ์ธ๋์์์ ์๋ฆฌ๊ณ , ์์ธ์ค ํ ํฐ์ ์ป๋๋ค. ์์ธ์ค ํ ํฐ์ ์ป๊ฒ ๋๋ฉด ํด๋ผ์ด์ธํธ๋ ๋ฆฌ์์ค, ์ฆ ์ ์ ์ ์ ๋ณด๋ฅผ ๊ฐ์ง๊ณ ์๋ ์๋ฒ์ ์์ธ์ค ํ ํฐ์ ๋ณด๋ด ์ ์ ๊ฐ ๋ช ์ํ ์ ํ๋ ๋ฆฌ์์ค๋ฅผ ๊ฐ์ ธ์ฌ ์ ์๋ค.

- ๋ฆฌ์์ค ์์ ์(์ดํ ์ ์ )๊ฐ ํด๋ผ์ด์ธํธ ์๋น์ค๋ฅผ ์ด์ฉํ๊ณ ์ ์ด์ฉ ์์ฒญ์ ๋ณด๋
- ํด๋ผ์ด์ธํธ๋ ๊ฒ์ฆ(Authorization) ์๋ฒ์ ์ก์ธ์ค ํ ํฐ์ ์์ฒญ
- ๊ฒ์ฆ ์๋ฒ๋ ์ ์ ์๊ฒ ์ธ๊ฐ(Authentication) ๋์๋ฅผ ์์ฒญ
- ์ฌ๊ธฐ์์ ์ ์ ๋ ์ด๋ ์ ๋์ ๋ฒ์๋ฅผ ํด๋น ์๋น์ค(client)์๊ฒ ์ ๊ณตํ ์ง ์ง์ ์ ํํ ์ ์๋ค.
- ์ ์ ๋ ์ธ๊ฐ(Authentication) ๋์๋ฅผ ์๋ต
- ๊ฒ์ฆ ์๋ฒ๋ ๋ฆฌ์์ค์ ์ ๊ทผํ ์ ์๋ ์ก์ธ์ค ํ ํฐ์ ์์ฑํด ํด๋ผ์ด์ธํธ๋ก ์ ์ก
- ํด๋ผ์ด์ธํธ๋ ์ก์ธ์ค ํ ํฐ์ ์ ์ฅ
- ํด๋ผ์ด์ธํธ๋ ์ก์ธ์ค ํ ํฐ์ ๊ฐ์ง๊ณ ๋ฆฌ์์ค ์๋ฒ์ ์์ฒญ
- ๋ฆฌ์์ค ์๋ฒ๋ ์ก์ธ์ค ํ ํฐ์ ์ ํจ์ฑ์ ํ์ ํ๊ณ ๋์, ์์ฒญํ ๋ฆฌ์์ค๋ฅผ ํด๋ผ์ด์ธํธ์ ์๋ต
- ํด๋ผ์ด์ธํธ๋ ์ ์ ์ ์๋น์ค ์ด์ฉ์ ์๋ต
๊ณผ ๊ฐ์ด ์ด๋ฃจ์ด์ง๋ ๊ฒ์ด๋ค.
์์ธ์ค ํ ํฐ์ ๊ฐ์ ธ์ค๋ ๋ฐฉ์
์์ธ์คํ ํฐ์ ๊ฒฝ์ฐ ๋ค ๊ฐ์ง ๋ฐฉ์์ ํตํด ์ด๋ฃจ์ด์ง๋ค.
ํ์ฌ Implicit ๋ฐฉ์๊ณผ Password Grant(Resource Owner Credentials) ๋ฐฉ์์ ๊ฒฝ์ฐ Deprecated ์ํ์ด๋ฉฐ, ๊ฐ์ฅ ๋ง์ด ์ฐ์ด๋ ๋ฐฉ์์ Authorization Code ๋ฐฉ์์ด๋ค. ๋น๋ฐ๋ฒํธ๋ฅผ ์ง์ ๋๊ฒจ์ฃผ์ง ์์ผ๋ฉด์๋ ์์ธ์ค ํ ํฐ์ ๋ฐ๋ก ํด๋ผ์ด์ธํธ๋ก ๋ณด๋ด๋ ๋ฐฉ์์ด ์๋ Code๋ฅผ ๋ฐ์ ๋ค์ ์ธ์ฆ ์๋ฒ๋ก ๋ณด๋ธ ํ์ ์์ธ์ค ํ ํฐ์ ๋ฐ์์ค๋ ๋ฐฉ์์ด ํ ๋จ๊ณ๋ฅผ ๋ ๊ฑฐ์น๋ฉด์ ๋ณด์์์ผ๋ก ๋์ฑ ์ด์ ์ ๊ฐ์ง๊ธฐ ๋๋ฌธ์ด๋ค.
์์ธ์ค ํ ํฐ์ ๋ด๊ฒจ์๋ ์ ๋ณด
์ธ์ฆ ์๋ฒ๋ก๋ถํฐ ๋ฐ์์ค๋ ์์ธ์ค ํ ํฐ์ ์์ ๊ฐ์ ์ ๋ณด๋ค์ ๋ด๊ณ ์๋ค.
Authorization Code ๋ฐฉ์ ๋ ์์๋ณด๊ธฐ
๊ทธ๋ ๋ค๋ฉด ํ์ฌ ๋ง์ด ์ฌ์ฉ๋๊ณ ์๋ Authorization Code๋ฐฉ์์ ๋ํด ์์ธํ ์์๋ณด์.
+----------+
| Resource |
| Owner |
| |
+----------+
^
|
(B)
+----|-----+ Client Identifier +---------------+
| -+----(A)-- & Redirection URI ---->| |
| User- | | Authorization |
| Agent -+----(B)-- User authenticates --->| Server |
| | | |
| -+----(C)-- Authorization Code ---<| |
+-|----|---+ +---------------+
| | ^ v
(A) (C) | |
| | | |
^ v | |
+---------+ | |
| |>---(D)-- Authorization Code ---------' |
| Client | & Redirection URI |
| | |
| |<---(E)----- Access Token -------------------'
+---------+ (w/ Optional Refresh Token)
Note: The lines illustrating steps (A), (B), and (C) are broken into
two parts as they pass through the user-agent.
Figure 3: Authorization Code FlowAuthorization Code์ ๋ฐฉ์์ ํด๋ผ์ด์ธํธ๊ฐ ์ธ์ฆ ์๋ฒ์ ์์ ์ ์๋น์ค๋ฅผ ๋ฑ๋กํ ๋ค, ํด๋น ์๋น์ค์ ์ฝ๋์ redirect URI๋ฅผ ๋ณด๋ด๋ฉด์ ์์๋๋ค. ์ฌ๊ธฐ์ redirect URI๋ ์ธ์ฆ ์๋ฒ์์ ์์ฒด์ ์ธ ๋ก๊ทธ์ธ ํ์ด์ง๋ฅผ ๋์ฐ๊ธฐ ๋๋ฌธ์ ์ ์ ๊ฐ ๋ก๊ทธ์ธ์ด ๋ ํ ์ธ์ฆ์ด ์๋ฃ๋์์ ๋ ๋ค์ redirect URI๋ก ๋ณด๋ด๊ฒ ๋๋ค. ์ฌ๊ธฐ์ ์ธ์ฆ์ด ์๋ฃ๋์์ ๊ฒฝ์ฐ redirect URI์์๋ code๋ฅผ URI์ ๋ถ์ฌ์ ๋ณด๋ด์ฃผ๋๋ฐ, ์ด code๋ฅผ ํด๋ผ์ด์ธํธ๊ฐ ์ธ์ฆ ์๋ฒ์ ๋ค์๊ธ ๋ณด๋ด๋ฉด์ ์์ธ์ค ํ ํฐ์ ๋ฐ์ ์ ์๋ค. ์ฌ๊ธฐ์ ๊ณ์ ์์ธ์ค ํ ํฐ์ ํด๋ผ์ด์ธํธ์์ ๋ค๊ณ ์๋ ๊ฒ๋ณด๋ค ๋ฆฌํ๋ ์ ํ ํฐ์ ํตํด ์์ธ์ค ํ ํฐ์๋ ๋ง๋ฃ ์๊ฐ์ ๋๊ณ ๋ง๋ฃ๋๋ฉด ๋ฆฌํ๋ ์ ํ ํฐ์ ํตํด ์์ธ์คํ ํฐ์ ์ฌ๋ฐ๊ธ ๋ฐ๋ ๋ฐฉ์์ด ๋ณด๋ค ์์ ํ๊ธฐ ๋๋ฌธ์ ์ธ์ฆ ์๋ฒ์์๋ ์ด๋ฌํ ๋ฐฉ์์ ์ฌ์ฉํ๋ค. ๋ฐ๋ผ์ ๋ฆฌํ๋ ์ ํ ํฐ ๋ํ ํจ๊ป ๋ฐ์ ์ ์๋ค.
+--------+ +---------------+
| |--(A)------- Authorization Grant --------->| |
| | | |
| |<-(B)----------- Access Token -------------| |
| | & Refresh Token | |
| | | |
| | +----------+ | |
| |--(C)---- Access Token ---->| | | |
| | | | | |
| |<-(D)- Protected Resource --| Resource | | Authorization |
| Client | | Server | | Server |
| |--(E)---- Access Token ---->| | | |
| | | | | |
| |<-(F)- Invalid Token Error -| | | |
| | +----------+ | |
| | | |
| |--(G)----------- Refresh Token ----------->| |
| | | |
| |<-(H)----------- Access Token -------------| |
+--------+ & Optional Refresh Token +---------------+
Figure 2: Refreshing an Expired Access Token์์ธ์ค ํ ํฐ์ด ๋ฐ๊ธ๋๋ฉด, ํด๋ผ์ด์ธํธ๋ ์ด ์์ธ์คํ ํฐ์ ๊ฐ์ง๊ณ ์ฌ์ฉ์์ ์ ๋ณด๋ฅผ ๋ด๊ณ ์๋ ๋ฆฌ์์ค ์๋ฒ์ ์์ธ์ค ํ ํฐ๊ณผ ํจ๊ป ์ ๋ณด๋ฅผ ์์ฒญํ๋ API๋ฅผ ๋ณด๋ธ๋ค. ๋ฆฌ์์ค ์๋ฒ๋ ์ด์ ์๋ตํ์ฌ ์ฒ์ ์ ์ ๊ฐ ์ธ์ฆํ ๋ ์๋น์ค์ ์ฒดํฌํ ์ ๋ณด ์ ๊ณต์ ๋ฒ์๊น์ง์ ์ ๋ณด๋ฅผ ๋ด์ ํด๋ผ์ด์ธํธ์ ๋ณด๋ด์ค๋ค.
์ด๋ ๊ฒ ์์ธ์ค ํ ํฐ์ ๋ณด๋ด๋ค๊ฐ ์ค๊ฐ์ ์์ธ์ค ํ ํฐ์ด ๋ง๋ฃ๋๋ฉด, ๋ฆฌํ๋ ์ ํ ํฐ์ ๋ณด๋ด ์๋ก์ด ์์ธ์ค ํ ํฐ์ ๋ฐ๊ธ๋ฐ์ ๊ธฐ์กด์ ์์ธ์ค ํ ํฐ์ ๊ตํํ๋ ๋ฐฉ์์ผ๋ก ์งํ๋๋ค.
PKCE
PKCE(Proof Key for Code Exchange)๋ Authorization Code Flow๋ฅผ ์ฌ์ฉํ ๋ ์ฝ๋ ๊ตํ ๊ณผ์ ์ ๋ณด์์ ๊ฐํํ๊ธฐ ์ํด OAuth 2.1์์ ํ์์ ์ผ๋ก ์ฌ์ฉํ๋๋ก ์ง์ ๋์ด ์๋ ๊ธฐ์ ์ด๋ค. ๊ธฐ์กด Authorization Code Flow๋ณด๋ค ๋ ๋์ ๋ณด์์ฑ์ ์๊ตฌํ๋ค.
PKCE๋ ๋ค์๊ณผ ๊ฐ์ ํ๋๋ค์ ์ถ๊ฐ์ ์ผ๋ก ๊ฐ์ง๋ค.
code_verifier: ์ฑ์ผ๋ก๋ถํฐ ์์ฑ๋๋ ์์์ ๋๋ค ๋ฌธ์์ด์ด๋ค.code_challenge:ยcode_verifier์ ์ง์ ์ด๋ฃจ๋ ๋ฌธ์์ดcode_verifier๋ฅผ ๊ทธ๋๋ก ์ฌ์ฉํ๋ ๊ฒฝ์ฐ๋ ์์ง๋ง S256 ํด์ฑ ์๊ณ ๋ฆฌ์ฆ์ผ๋ก ์ํธํํ๋ ๊ฒ์ด ๊ถ์ฅ๋๋ค. OAuth ์๋ฒ๋ ์ด ๋ฌธ์์ด์ ๋ณตํธํํ์ฌ,ยcode_verifier์ ๊ฐ์์ง ํ์ธํจ์ผ๋ก์จ ํด๋ผ์ด์ธํธ๋ฅผ ๊ฒ์ฆํ๋ค.
code_challenge_method:ยcode_verifier์ ๋ณํ์ ์ด๋ค ํจ์๊ฐ ์ฌ์ฉ๋๋์ง(S256 ๋๋ plain) ์ง์ ํ๋ ํ๋์ด๋ค. ๊ธฐ๋ณธ๊ฐ์ plain์ผ๋ก, ์ด ๊ฒฝ์ฐยcode_verifier์ยcode_challenge๋ ๊ฐ์ ๊ฒ์ผ๋ก ๊ฐ์ฃผ๋๋ค.
์ด ํ๋๋ค์ ํตํด OAuth ์๋ฒ๋ ์ธ์ฆ ์์ฒญ๊ณผ ํ ํฐ ์์ฒญ์ด ๋์ผํ ํด๋ผ์ด์ธํธ๋ก๋ถํฐ ์จ ๊ฒ์ธ์ง ํ์ธํ ์ ์๋ค.
PCKE์ ๋์ ๋ฐฉ์์ ์ ์ฌ์ง๊ณผ ๊ฐ์ด ์ ์ ๊ฐ ๋ก๊ทธ์ธ ๋งํฌ๋ฅผ ํด๋ฆญํ๋ฉด ์ฑ ์์ฒด์์ ์ธ์ฆ ์ฝ๋ ์์ฒญ์ ๋ณด๋ด๊ธฐ ์ ์ code_verifier์ code_challenge๋ฅผ ์์ฑํ๋ ๊ณผ์ ์ด ๊ธฐ์กด์ code ๋ฐฉ์์์ ์ถ๊ฐ๋์๋ค.
์ธ์ฆ ์ฝ๋ ์์ฒญ์ ํ ๋ ์ด code_challenge์ ํจ๊ป ์์ฒญ์ด ๋ ์๊ฐ๋ค. ์ฌ์ฉ์๊ฐ ๋ก๊ทธ์ธ์ ํ๊ณ ์ฌ์ฉ์๊ฐ ์ํ๋ ์ ๋ณด์ ๊ณต๊ฐ ์ ํ ๋ฒ์๋ฅผ ์ ํํ๊ณ ๋ก๊ทธ์ธ์ ํ๊ฒ ๋๋ฉด code๋ฅผ ๋ด์ ๋ฆฌ๋ค์ด๋ ํธ๋๋ค.
์ดํ์ code๋ฅผ ๊ฐ์ง๊ณ ๋ค์๊ธ ์ฑ์ด ํ ํฐ์ ์ป๊ธฐ ์ํด ์์ฒญ์ ๋ณด๋ด๋ ๊ณผ์ ์์ ์๊น ์ธ์ฆ ์๋ฒ๋ก ๋ณด๋๋ code_challenge์ ๋น๊ตํ ๋์ ๋ฌธ์์ด์ธ code_verifier๋ฅผ ํจ๊ป ๋ณด๋ธ๋ค. ๋น๊ต ๋ฌธ์์ด์ด ์๋ก ๊ฒ์ฆํด์ ๋ง์ ๋จ์ด์ง๊ฒ ๋๋ฉด ์์ธ์ค ํ ํฐ๊ณผ ์ ํ์ ์ผ๋ก ๋ฆฌํ๋ ์ ํ ํฐ์ ๋ค์๊ธ ๋ณด๋ด์ค๋ค. ์ดํ์๋ ์ ์ ๊ฐ ๋ฐ์ ์์ธ์ค ํ ํฐ์ ๊ฐ์ง๊ณ ์์ฒญ ๋ฐ ์๋ต์ ํ๋ ๋ฐฉ์์ด๋ค.
OAuth์ ์ฅ์
OAuth๊ฐ ๋ค์ํ ์์ ๋ก๊ทธ์ธ์ ์๋จ์ผ๋ก ์ฌ์ฉ๋ ์ด์ ๋ ์ฌ์ฉ์์ ๋ชจ๋ ๊ณ์ ์ ๋ณด๋ฅผ ์์ง ์์๋ ํ์์ ์ ๋ณด์ ์ ๊ทผํ ์ ์๋ค๋ ์ฌ์ค์ด ๋ณด์์ ๋์์ด ๋๊ธฐ ๋๋ฌธ์ด๋ค.
์ถ๊ฐ์ ์ผ๋ก ๋ก๊ทธ์ธ์ ํ๋ ๊ณผ์ ์์ ์๋น์ค์ ์ ๊ณตํ ์ ์๋ ๊ฐ์ธ์ ๋ณด์ ๋ฒ์๋ฅผ ์ฌ์ฉ์๊ฐ ์ง์ ์ ํํ ์ ์๊ธฐ ๋๋ฌธ์, ์ ํ๋ฆฌ์ผ์ด์ ์ ์ ์ฅ์์๋ ํ์ฉ๋ ๋ฒ์์ ๋ฆฌ์์ค์๋ง ์ ๊ทผํ ์ ์๋ค๋ ์ฌ์ค ๋ํ ๋ณด์์ ๊ฐํ๋ฉด์๋ ์ธ์ฆ๊ณผ ๊ถํ ๋ถ์ฌ๋ฅผ ๋์์ ํ ์ ์๋ค๋ ์ฅ์ ๋ํ ๊ฐ์ง๋ค. ๊ด์ค๋ ๋ชจ๋ ์ ๋ณด๋ฅผ ๋ค๋ฅธ ์ ํ๋ฆฌ์ผ์ด์ ์์๋ ๊ฐ์ง๊ณ ์๋ค๊ฐ ์ ์ฉ๋ ๊ฐ๋ฅ์ฑ์ ๋์ด๋ ๊ฒ๋ณด๋จ ํ์ํ ์ ๋ณด๋ง ๊ฐ์ ธ๋ค ์ฐ๋ ๊ฒ์ด ๋ชจ๋์๊ฒ ์ด๋์ด ๋ ์ ์๊ธฐ ๋๋ฌธ์ ํ์ฌ ์ฌ์ค์์ ์ ๊ณ ํ์ค์ผ๋ก ์๋ฆฌ์ก๊ณ ์๋ค.