๐๋ค๋ก๊ฐ๊ธฐ
OAuth2์ ์ฃผ์ ์ญํ ์
OAuth2์์๋ ํฌ๊ฒ ๋ค ๊ฐ์ง ์ฃผ์ ์ญํ ์๊ฐ ์กด์ฌํ๋ค.
- ํด๋ผ์ด์ธํธ(Client): ์ฌ์ฉ์๊ฐ ์ค์ ๋ก ์ด์ฉํ๋ ์ ํ๋ฆฌ์ผ์ด์
์ด๋ฉฐ, ์ฌ์ฉ์ ๋์ ํน์ ๋ฆฌ์์ค์ ์ ๊ทผ์ ์์ฒญํ๋ค. ์๋ฅผ ๋ค์ด, google ๊ณ์ ์ผ๋ก figma๋ฅผ ์ฌ์ฉํ๊ณ ์ถ๋ค๋ฉด figma๊ฐ ํด๋ผ์ด์ธํธ์ด๋ค.
- ๋ฆฌ์์ค ์์ ์(Resource Owner): ๋ณดํต์ ์ฌ์ฉ์๋ฅผ ๊ฐ๋ฆฌํค๋ฉฐ, ํด๋ผ์ด์ธํธ๊ฐ ์ ๊ทผํ๋ ค๋ ๋ฐ์ดํฐ๋ฅผ ์์ ํ๊ณ ์๋ค. ์์ ์์์์ google์ด ๋ฆฌ์์ค ์์ ์์ด๋ค.
- ์ธ์ฆ ์๋ฒ(Authorization Server): ํด๋ผ์ด์ธํธ๊ฐ ์ฌ์ฉ์ ๋์ ๋ฐ์ดํฐ์ ์ ๊ทผํ๋ ค๋ฉด, ์ธ์ฆ ์๋ฒ์์ ๋ฐ๊ธํ๋ ์ก์ธ์ค ํ ํฐ์ด ํ์ํ๋ค. ์ธ์ฆ ์๋ฒ๋ ์ฌ์ฉ์์ ๊ถํ์ ํ์ธํ๊ณ , ํด๋ผ์ด์ธํธ์๊ฒ ์ด๋ฅผ ์ฆ๋ช
ํ๋ ์ก์ธ์ค ํ ํฐ์ ์ ๊ณตํ๋ค.
- ๋ฆฌ์์ค ์๋ฒ(Resource Server): ์ฌ์ฉ์์ ๋ฐ์ดํฐ๋ฅผ ํธ์คํ
ํ๊ณ ์์ผ๋ฉฐ, ํด๋ผ์ด์ธํธ๊ฐ ์ก์ธ์ค ํ ํฐ์ ์ ๊ณตํ๋ฉด ์ฌ์ฉ์์ ๋ฐ์ดํฐ๋ฅผ ํด๋ผ์ด์ธํธ์๊ฒ ์ ๊ณตํ๋ค.
OAuth2์ ํ๋ฆ
OAuth2์ ๊ธฐ๋ณธ์ ์ธ ํ๋ก์ฐ๋ ๋ค์์ ์์๋ก ์งํ๋๋ค.
- ํด๋ผ์ด์ธํธ๋ ์ฌ์ฉ์์๊ฒ ๋ฆฌ์์ค์ ์ ๊ทผํ๋ ๊ฒ์ ์น์ธ ๋ฐ๋๋ค.
- ์ฌ์ฉ์๋ ํด๋ผ์ด์ธํธ์๊ฒ ์น์ธ์ ๋ถ์ฌํ๋ค.
- ํด๋ผ์ด์ธํธ๋ ์ฌ์ฉ์์ ์น์ธ์ ๋ฐํ์ผ๋ก ์ธ์ฆ ์๋ฒ์๊ฒ ์ก์ธ์ค ํ ํฐ์ ์์ฒญํ๋ค.
- ์ธ์ฆ ์๋ฒ๋ ํด๋ผ์ด์ธํธ์๊ฒ ์ก์ธ์ค ํ ํฐ์ ๋ฐ๊ธํ๋ค.
- ํด๋ผ์ด์ธํธ๋ ์ก์ธ์ค ํ ํฐ์ ๋ฆฌ์์ค ์๋ฒ์ ์ ๊ณตํ๋ฉด์ ๋ฆฌ์์ค ์์ฒญ์ ํ๋ค.
- ๋ฆฌ์์ค ์๋ฒ๋ ํ ํฐ์ ๊ฒ์ฆํ๊ณ , ํ ํฐ์ด ์ ํจํ๋ค๋ฉด ์์ฒญํ ๋ฆฌ์์ค๋ฅผ ํด๋ผ์ด์ธํธ์๊ฒ ์ ๊ณตํ๋ค.
์ด๋ฐ ํ๋ฆ์ ํตํด ํด๋ผ์ด์ธํธ๋ ์ฌ์ฉ์์ ์ธ์ฆ ์ ๋ณด๋ฅผ ์ง์ ๋ค๋ฃจ์ง ์๊ณ ๋, ์ฌ์ฉ์์ ๋ฐ์ดํฐ์ ์ ๊ทผํ ์ ์๊ฒ ๋๋ค.