๐ OAuth
: ์ธํฐ๋ท ์ฌ์ฉ์๋ค์ด ๋น๋ฐ๋ฒํธ๋ฅผ ์ ๊ณตํ์ง ์๊ณ ๋ค๋ฅธ ์น์ฌ์ดํธ ์์ ์์ ๋ค์ ์ ๋ณด์ ๋ํด ์น์ฌ์ดํธ๋ ์ ํ๋ฆฌ์ผ์ด์
์ ์ ๊ทผ ๊ถํ์ ๋ถ์ฌํ ์ ์๋ ๊ณตํต์ ์ธ ์๋จ์ผ๋ก ์ฌ์ฉ๋๋ ์ ๊ทผ ์์์ ์ํ ๊ฐ๋ฐฉํ ํ์ค
- ์๋ฅผ ๋ค์ด, ๋ฐฐ๋ฌ์ ๋ฏผ์กฑ ํ์๊ฐ์
์ ํ ๋ ํด๋น ์น ์ ํ๋ฆฌ์ผ์ด์
์์ ํ์๊ฐ์
์ ์งํํด๋ ๋์ง๋ง ์ธ๋ถ ์์
๊ณ์ (์นด์นด์ค,๋ค์ด๋ฒ ๋ฑ)์ ํตํด ๊ฐํธํ ํ์๊ฐ์
๋ฐ ๋ก๊ทธ์ธํ ์ ์์ต๋๋ค.
OAuth ๊ตฌ์ฑ ์์
1. Resource Owner
- ์น ์๋น์ค๋ฅผ ์ด์ฉํ๋ ค๋ ์ ์ , ์์(๊ฐ์ธ์ ๋ณด)์ ์์ ํ๋์, ์ฌ์ฉ์
๐ Resource : ์ฌ์ฉ์์ ์ด๋ฆ, ์ ํ๋ฒํธ ๋ฑ์ ์ ๋ณด(๊ฐ์ธ์ ๋ณด)
2. Client
- ์์ฌ ํน์ ๊ฐ์ธ์ด ๋ง๋ ์ ํ๋ฆฌ์ผ์ด์
์๋ฒ
- ํด๋ผ์ด์ธํธ๊ฐ Resource server์๊ฒ ํ์ํ ์์์ ์์ฒญํ๊ณ ์๋ตํ๋ ๊ด๊ณ
3. Authorization Server
- ์ด๋ฏธ ์ฌ์ฉ์ค์ธ ์๋น์ค์ ์๋ฒ ์ค ์ธ์ฆ์ ๋ด๋นํ๋ ์๋ฒ
- ์ฌ์ฉ์๋ ์ด ์๋ฒ๋ก ID, PW๋ฅผ ๋๊ฒจ Authorization Code๋ฅผ ๋ฐ๊ธ ๋ฐ์ ์ ์์
- Client๋ ์ด ์๋ฒ๋ก Authorization Code๋ฅผ ๋๊ฒจ Token์ ๋ฐ๊ธ ๋ฐ์ ์ ์์
4. Resource Server
- ์ฌ์ฉ์์ ๊ฐ์ธ์ ๋ณด๋ฅผ ๊ฐ์ง๊ณ ์๋ ์ ํ๋ฆฌ์ผ์ด์
(์นด์นด์ค, ๋ค์ด๋ฒ, ๊ตฌ๊ธ๋ฑ)ํ์ฌ์ ์๋ฒ
- Client๋ Token์ ์ด ์๋ฒ๋ก ๋๊ฒจ ๊ฐ์ธ์ ๋ณด๋ฅผ ์๋ต ๋ฐ์ ์ ์์
5. Access Token
- ์์์ ๋ํ ์ ๊ทผ ๊ถํ์ ์ฌ์ฉ์๊ฐ ์น์ธํ์์์ ๋ํ๋ด๋ ์๊ฒฉ์ฆ๋ช
6. Refresh Token
- Client๋ Authorization Server๋ก๋ถํฐ access token(์งง์ ๋ง๋ฃ๊ธฐ๊ฐ)๊ณผ refresh token(๊ธด ๋ง๋ฃ๊ธฐ๊ฐ)์ ํจ๊ป ๋ถ์ฌ๋ฐ์
- ๋น๊ต์ ๋ง๋ฃ ๊ธฐ๊ฐ์ธ ์งง์ access token์ refresh token์ ํตํด access token์ ์ฌ๋ฐ๊ธ ๋ฐ์ ์ฌ๋ก๊ทธ์ธ ํ ํ์์๊ฒ๋ ํจ