ํ์ฌ์์ ํ์ด์ค๋ถ ๊ณ์ ์ผ๋ก ๋ก๊ทธ์ธํ๋ ๊ธฐ๋ฅ์ ์ ๊ณตํ๊ณ ํ์ด์ค๋ถ ํ๋กํ ์ด๋ฏธ์ง๋ฅผ ๊ฐ์ง๊ณ ์์ ์ฌ์ฉํ์๋ ์ด์ผ๊ธฐ๊ฐ ๋์๋ค๊ณ ํ์.
์์ฆ ๋๋ถ๋ถ ์๋น์ค์ SNS ๋ก๊ทธ์ธ์ ์ ๊ณตํ๊ธฐ๋ ํ๊ณ , ์ ์ ๋ ๋ฒ๊ฑฐ๋ก์ด ๊ฐ์ ์์ด ์๋น์ค๋ฅผ ๋ฐ๋ก ์ด์ฉํ ์ ์๋ค.
๐ OAuth
OAuth | Open Authorization์ ์ฝ์. |
์ธ๋ถ ์๋น์ค ( 3rd Party Application ) ์ ์ธ์ฆ ๋ฐ ๊ถํ ๋ถ์ฌ๋ฅผ ๊ด๋ฆฌํ๋ ๋ฒ์ฉ ํ๋ ์ ์ํฌ. | |
Facebook, Google, Twitter ๋ฑ์์ ๋ค์ํ ํ๋ซํผ์์ ๋๋ฆฌ ์ฌ์ฉ. |
ex ) ์ํฉ ์์ 1
ํ์ด์ค๋ถ ( Authorization Server )์ "๋น์ ์ ํ์ ์ค ํ ๋ช ์ด ์ฐ๋ฆฌ ์๋น์ค๋ฅผ ์ด์ฉํ๋๋ฐ, ๊ทธ ์ ์ ์ ํ๋กํ ์ด๋ฏธ์ง๊ฐ ๋ฐ๊ณ ์ถ์ด"
- ํน์ ์ ์ ์ ๋ชจ๋ ์ ๋ณด๊ฐ ์๋ ํ๋กํ ์ด๋ฏธ์ง๋ก ํ์ .
ํ์ด์ค๋ถ์ ํ๋ฝ์ ๋ฐ์์ผ ํ๋ค. ํ๋ฝํ๊ธฐ ์ ์ ์ด๋ฏธ ์ฐ๋ฆฌ ์๋น์ค ( Resource Owner )๋ ํ์ด์ค๋ถ์ Client ID, Client Secret, Authorized redirect URIs ๊ฐ ๋ฑ๋ก๋์ด ์์ด์ผ ํ๋ค.
ex ) ์ํฉ ์์ 2
์ ์ ํํ ๋ "์ง๊ธ ๋น์ ์ ํ๋กํ ์ด๋ฏธ์ง๋ฅผ ํ์ด์ค๋ถ์ ์ ๋ฌ๋ฐ์๋ ๋ผ?"
- ํ๋กํ ์ด๋ฏธ์ง๋ก ํ์ .
์ดํ์ ์ฐ๋ฆฌ ์๋น์ค ( Resource Owner )๋ ํ์ด์ค๋ถ์๊ฒ "์ ์ ๊ฐ ๋์ํ์ด" ์ ๋ฌํ๋ค.
๊ทธ๋ฌ๋ฉด ํ์ด์ค๋ถ ( Authorization Server )๋ Authorization Code๋ฅผ ์ฐ๋ฆฌ ์๋น์ค ( Resource Owner )์๊ฒ ์ ๋ฌํ๋ค.
๊ทธ๋ฆฌ๊ณ ์ฐ๋ฆฌ ์๋น์ค ( Resource Owner )๋ ๋ค์ ์ ์ ( Client )์๊ฒ Authorization Code๋ฅผ ์ ๋ฌํ๋ค.
์ ์ ( Client )๋ ๋ฐ์๋ง์ ํ์ด์ค๋ถ์ผ๋ก Client Secret + Authorization Code ๋ฑ์ ์ ์กํ๋ค.
ex) ์ํฉ ์์ 3
ํ์ด์ค๋ถ ( Authorization Server )๋ ์ ์ ( Client )๊ฐ ์ผ์นํ๋์ง ํ์ธํ๊ณ , ํด๋น ์ ์ ์ ํ์ด์ค๋ถ ํ๋กํ ์ด๋ฏธ์ง๋ฅผ ์ด์ฉํ ์ ์๋ Access Token์ ์ ๋ฌํ๋ค.
Access Token | ํด๋น ์ ์ ์ ํน์ ๊ธฐ๋ฅ์ ์ฌ์ฉํ ์ ์๋ ์๋ณ์. ์งง์ ์ ํจ ๊ธฐ๊ฐ์ ๊ฐ์ง๊ณ ์๋ค. ( ํ์ด์ค๋ถ์ ์์ด๋, ๋น๋ฒ์ ์ ๋ฌํ๋ ๊ฒ๊ณผ ๊ฐ์์, ๋ ธ์ถ๋๋ฉด ์๋๋ค. ) |
Refresh Token | Access Token๊ณผ ๊ฐ์ด ์ ๋ฌ๋๋ค. Access Token์ ์ ํจ์๊ฐ์ด ๋ง๋ฃ๋๋ฉด Refresh Token์ ํ ํฐ์ผ๋ก Access Token์ ๋ค์ ์ ๋ฌ๋ฐ๋ ํํ. |
ex) ์ํฉ ์์ 4
์ด์ ํ์ด์ค๋ถ์ ํ๋ฝ๊ณผ ์ ์ ์๊ฒ ๋์๋ ๋ฐ์๋ค.
ํ์ด์ค๋ถ( Resource Server )์๊ฒ Access Token์ ํฌํจํด์ ํ์ด์ค๋ถ API๋ก ํ๋กํ ์ด๋ฏธ์ง๋ฅผ ๋ฐ์์ค๋ฉด ๋๋ค.
- ์ด๋ ๊ด์ฌ๋๋ ํ์ด์ค๋ถ์ ์๋ฒ - | |
Authorization Server | Access Token์ ์ ๋ฌ๋ฐ๋ ๊ณผ์ ์ ๋ด๋นํ๋ ์๋ฒ. |
Resource Server | Access Token์ ์ ๋ฌ๋ฐ๊ณ , ํน์ ๊ธฐ๋ฅ์ ์ฌ์ฉํ ๋. |
- OAuth 2.0 ์ค๋ช
์์๋๋ฉด ์ข์ ๊ฐ๋ฐ์ฉ์ด 7 (OAuth 2.0)
๊ฐ์๊ธฐ ํ์ฌ์์ ํ์ด์ค๋ถ ๊ณ์ ์ผ๋ก ๋ก๊ทธ์ธํ๋ ๊ธฐ๋ฅ์ ์ ๊ณตํ๊ณ ํ์ด์ค๋ถ ํ๋กํ ์ด๋ฏธ์ง๋ฅผ ๊ฐ์ง๊ณ ์์ ์ฌ์ฉํ์๋ ์ด์ผ๊ธฐ๊ฐ ๋์๋ค๊ณ ํฉ์๋ค. ์๋ํ๋ฉด ์์ฆ ๋๋ถ๋ถ ์๋น์ค์ SNS ๋ก๊ทธ์ธ์
reinvite.tistory.com
WEB2 - OAuth 2.0 - ์ํ์ฝ๋ฉ
์์ ์๊ฐ ์ฌ์ฉ์๊ฐ ๊ฐ์ ๋ ์๋น์ค์ API์ ์ ๊ทผํ๊ธฐ ์ํด์๋ ์ฌ์ฉ์๋ก๋ถํฐ ๊ถํ์ ์์ ๋ฐ์์ผ ํฉ๋๋ค. ์ด ๋ ์ฌ์ฉ์์ ํจ์ค์๋ ์์ด๋ ๊ถํ์ ์์ ๋ฐ์ ์ ์๋ ๋ฐฉ๋ฒ์ด ํ์ํฉ๋๋ค. ์ด๋ฅผ ์
opentutorials.org