OAuth
์ธํฐ๋ท ์ฌ์ฉ์๋ค์ด ๋น๋ฐ๋ฒํธ๋ฅผ ์ ๊ณตํ์ง ์๊ณ ๋ค๋ฅธ ์น์ฌ์ดํธ ์์ ์์ ๋ค์ ์ ๋ณด์ ๋ํด ์น์ฌ์ดํธ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ ๊ทผ ๊ถํ์ ๋ถ์ฌํ ์ ์๋ ๊ณตํต์ ์ธ ์๋จ์ผ๋ก์ ์ฌ์ฉ๋๋, ์ ๊ทผ ์์์ ์ํ ๊ฐ๋ฐฉํ ํ์ค์ด๋ค.
์ธ์ฆ ํ๋กํ ์ฝ
Resource Server : ์์์ ๋ณด์ ํ๊ณ ์๋ ์๋ฒ(์ ๊ณต์)
Resource Owner : ์์์ ์์ ์(์ ์ )
Client : Server์์ ์ ๋ณด๋ฅผ ๊ฐ์ ธ์ค๊ณ ์ ํ๋ ์น ์ดํ๋ฆฌ์ผ์ด์
OAuth์ ๋์ ๊ณผ์
Client ๋ฑ๋ก
Resource Server๋ฅผ ์ด์ฉํ๊ธฐ ์ํ ์๋น์ค ๋ฑ๋ก ๊ณผ์ (์ฌ์ ์น์ธ)
Client ID, Client Secret(๋น๋ฐํค), Authorized redirect URL(Code๋ฅผ ์ ๋ฌ๋ฐ์ ๋ฆฌ๋ค์ด๋ ํธ ์ฃผ์)
Resource Owner์ ์น์ธ
๊ฐ ์ ๊ณต์๋ ์์ ๋ก๊ทธ์ธ์ ํ๊ธฐ์ํด url๋ก GET ์์ฒญ์ ๋ณด๋ด๋๋ก ๋ช ์ํจ
Resource Owner๋ Client์์ ํด๋น url๋ก ์ฐ๊ฒฐ๋๋ ์์ ๋ก๊ทธ์ธ ๋ฒํผ์ ํด๋ฆญ
Resource Owner๋ ๋ก๊ทธ์ธ์ ์ํํ๊ณ ์๋ฃ๋๋ฉด Server๋ Query String์ผ๋ก ๋์ด์จ ํ๋ผ๋ฏธํฐ๋ค์ ํตํด Client๋ฅผ ๊ฒ์ฌํจ
Client ID ํ์ธ, Redirect URL ํ์ธ
Resource Server์ ์น์ธ
๋ช ์๋ Redirect URL๋ก ๋ฆฌ๋ค์ด๋ ํธ ์ํค๊ณ Resource Server๋ ์์ ์ํธ์ธ Authorization Code๋ฅผ ํจ๊ป ๋ฐ๊ธ(Query String)
Client๋ ID์ ๋น๋ฐํค ๋ฐ Code๋ฅผ Server์ ์ง์ ์ ๋ฌํ๊ณ ์ ํจํ ์์ฒญ์ด๋ผ๋ฉด Access Token์ ๋ฐ๊ธ๋ฐ๊ฒ ๋จ
API ํธ์ถ
Client๋ ํด๋น ํ ํฐ์ ์๋ฒ์ ์ ์ฅํด๋๊ณ Server์ ์์์ ์ฌ์ฉํ๊ธฐ ์ํ APIํธ์ถ์ ํ ํฐ์ ํค๋์ ๋ด์์ ๋ณด๋
Refresh Token
Refresh Token์ ๋ฐ๊ธ ์ฌ๋ถ์ ๋ฐฉ๋ฒ ๋ฐ ๊ฐฑ์ ์ฃผ๊ธฐ๋ Server๋ง๋ค ์์ดํจ
๋ณดํต Access Token์ ๋ฐ๊ธํ ๋ Refresh Token์ ํจ๊ป ๋ฐ๊ธ
Client๋ ๋ Token์ ๋ชจ๋ ์ ์ฅํด๋๊ณ Access Token์ด ๋ง๋ฃ๋์ด 401์๋ฌ๊ฐ ๋ฐ์ํ๋ฉด Refresh Token์ ๋ณด๋ด ์๋ก์ด Access Token์ ๋ฐ๊ธ๋ฐ์
Reference
Last updated