Search

OAuth

OAuth๋ž€?

์ž์‹ ์ด ์†Œ์œ ํ•œ ๋ฆฌ์†Œ์Šค์— ์†Œํ”„ํŠธ์›จ์–ด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋„๋ก ํ—ˆ์šฉํ•ด ์คŒ์œผ๋กœ์จ ์ ‘๊ทผ ๊ถŒํ•œ์„ ์œ„์ž„ํ•ด์ฃผ๋Š” ๊ฐœ๋ฐฉํ˜• ํ‘œ์ค€ ํ”„๋กœํ† ์ฝœ
โ‡’ ์œ„์™€ ๊ฐ™์ด ๊ฐ„ํŽธํ•˜๊ฒŒ ํšŒ์›๊ฐ€์ž… ๋ฐ ๋กœ๊ทธ์ธ์„ ํ•  ์ˆ˜ ์žˆ๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ด๋•Œ ์‚ฌ์šฉ๋˜๋Š” ํ”„๋กœํ† ์ฝœ์ด OAuth!!

OAuth์˜ ํƒ„์ƒ๋ฐฐ๊ฒฝ

A์‚ฌ์ดํŠธ์—์„œ B์‚ฌ์ดํŠธ์˜ ๋ฆฌ์†Œ์Šค๋ฅผ ๊ฐ€์ ธ์˜ค๊ธฐ ์œ„ํ•ด์„œ B์‚ฌ์ดํŠธ์˜ ID์™€ Password๋ฅผ ์ง์ ‘ ๋ถˆ๋Ÿฌ์™€์„œ ์‚ฌ์šฉ
โ€ข
๋ฐœ์ƒํ•˜๋Š” ๋ฌธ์ œ
โ—ฆ
์‚ฌ์šฉ์ž: A์‚ฌ์ดํŠธ์— B์‚ฌ์ดํŠธ์˜ ID์™€ Password๋ฅผ ๋„˜๊ฒจ์ฃผ๋Š” ๊ฒƒ์— ๋Œ€ํ•ด ์‹ ๋ขฐํ•  ์ˆ˜ ์—†๋‹ค
โ—ฆ
A ์‚ฌ์ดํŠธ: ID์™€ Password๋ฅผ ๋ฐ›์•˜๊ธฐ ๋•Œ๋ฌธ์— ๋ณด์•ˆ ๋ฌธ์ œ๊ฐ€ ์ƒ๊ธฐ๋Š” ๊ฒฝ์šฐ ๋ชจ๋“  ์ฑ…์ž„์„ ์ ธ์•ผํ•œ๋‹ค
โ—ฆ
B ์‚ฌ์ดํŠธ: A ์‚ฌ์ดํŠธ๋ฅผ ์‹ ๋ขฐํ•  ์ˆ˜ ์—†๋‹ค
โ‡’ ์ด๋Ÿฌํ•œ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด OAuth ํƒ„์ƒ
OAuth 2.0์€ 1.0์—์„œ ์•Œ๋ ค์ง„ ๋ณด์•ˆ ๋ฌธ์ œ ๋“ฑ์„ ๊ฐœ์„ ํ•œ ๋ฒ„์ „
๋น„๊ต
OAuth1.0
OAuth2.0
์ฐธ์—ฌ์ž ๊ตฌ๋ถ„
- ์ด์šฉ์ž - ์†Œ๋น„์ž - ์„œ๋น„์Šค ์ œ๊ณต์ž
- ์ž์› ์†Œ์œ ์ž - ํด๋ผ์ด์–ธํŠธ - ๊ถŒํ•œ ์„œ๋ฒ„ - ์ž์› ์„œ๋ฒ„
ํ† ํฐ
- ์š”์ฒญ ํ† ํฐ(Request Token) - ์ ‘๊ทผ ํ† ํฐ(Access Token)
- ์ ‘๊ทผ ํ† ํฐ(Access Token) - ์žฌ๋ฐœ๊ธ‰ ํ† ํฐ(Refresh Token)
์œ ํšจ๊ธฐ๊ฐ„
์ ‘๊ทผ ํ† ํฐ์˜ ์œ ํšจ๊ธฐ๊ฐ„ ์—†์Œ
- ์ ‘๊ทผ ํ† ํฐ ์œ ํšจ๊ธฐ๊ฐ„ ๋ถ€์—ฌ - ๋งŒ๋ฃŒ ์‹œ ์žฌ๋ฐœ๊ธ‰ ํ† ํฐ ์ด์šฉ
ํด๋ผ์ด์–ธํŠธ
์›น ์„œ๋น„์Šค
์›น, ์•ฑ ๋“ฑ

OAuth์˜ ๊ตฌ์„ฑ์š”์†Œ

โ€ข
Resource Owner : ์›น์„œ๋น„์Šค๋ฅผ ์ด์šฉํ•˜๋ ค๋Š” ์œ ์ €, ์ž์›(๊ฐœ์ธ์ •๋ณด)๋ฅผ ์†Œ์œ ํ•˜๋Š” ์ž, ์‚ฌ์šฉ์ž
โ€ข
Client : ์ž์‚ฌ ๋˜๋Š” ๊ฐœ์ธ์ด ๋งŒ๋“  ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์„œ๋ฒ„
โ—ฆ
ํด๋ผ์ด์–ธํŠธ๋ผ๋Š” ์ด๋ฆ„์€ resource server์—๊ฒŒ ํ•„์š”ํ•œ ์ž์›์„ ์š”์ฒญํ•˜๊ณ  ์‘๋‹ตํ•˜๋Š” ๊ด€๊ณ„์—ฌ์„œ
โ€ข
Authorization Server: ๊ถŒํ•œ์„ ๋ถ€์—ฌ(์ธ์ฆ์— ์‚ฌ์šฉํ•  ์•„์ดํ…œ์„ ์ œ๊ณต) ํ•ด์ฃผ๋Š” ์„œ๋ฒ„
โ—ฆ
์‚ฌ์šฉ์ž๋Š” ์ด ์„œ๋ฒ„๋กœ ID, PW๋ฅผ ๋„˜๊ฒจ Authorization Code๋ฅผ ๋ฐœ๊ธ‰ ๋ฐ›์„ ์ˆ˜ ์žˆ์Œ
โ—ฆ
Client๋Š” ์ด ์„œ๋ฒ„๋กœ Authorization Code๋ฅผ ๋„˜๊ฒจ Token์„ ๋ฐœ๊ธ‰ ๋ฐ›์„ ์ˆ˜ ์žˆ์Œ
โ€ข
Resource Server: ์‚ฌ์šฉ์ž์˜ ๊ฐœ์ธ์ •๋ณด๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ํšŒ์‚ฌ ์„œ๋ฒ„ (Google, Kakao ๋“ฑ)
โ—ฆ
Client๋Š” Token์„ ์ด ์„œ๋ฒ„๋กœ ๋„˜๊ฒจ ๊ฐœ์ธ์ •๋ณด๋ฅผ ์‘๋‹ต ๋ฐ›์Œ
โ€ข
Access Token: ์ž์›์— ๋Œ€ํ•œ ์ ‘๊ทผ ๊ถŒํ•œ์„ Resource Owner๊ฐ€ ์ธ๊ฐ€ํ•˜์˜€์Œ์„ ๋‚˜ํƒ€๋‚ด๋Š” ์ž๊ฒฉ์ฆ๋ช…
โ€ข
Refresh Token
โ—ฆ
Client๋Š” Authorization Server๋กœ ๋ถ€ํ„ฐ access token(๋น„๊ต์  ์งง์€ ๋งŒ๋ฃŒ๊ธฐ๊ฐ„)๊ณผ refresh token(๋น„๊ต์  ๊ธด ๋งŒ๋ฃŒ๊ธฐ๊ฐ„)์„ ํ•จ๊ป˜ ๋ถ€์—ฌ ๋ฐ›์Œ
โ—ฆ
access token์€ ๋ณด์•ˆ์ƒ ๋งŒ๋ฃŒ๊ธฐ๊ฐ„์ด ์งง๊ธฐ ๋Œ€๋ฌธ์— ์–ผ๋งˆ ์ง€๋‚˜์ง€ ์•Š์•„ ๋งŒ๋ฃŒ๋˜๋ฉด ์‚ฌ์šฉ์ž๋Š” ๋กœ๊ทธ์ธ์„ ๋‹ค์‹œ ์‹œ๋„ํ•ด์•ผํ•จ
โ‡’ refresh token์ด ์žˆ๋‹ค๋ฉด access token์ด ๋งŒ๋ฃŒ๋  ๋•Œ refresh token์„ ํ†ตํ•ด access token์„ ์žฌ๋ฐœ๊ธ‰ ๋ฐ›์•„ ์žฌ ๋กœ๊ทธ์ธ ํ•  ํ•„์š” ์—†๊ฒŒ๋” ํ•œ๋‹ค.
โ–ช
๊ทธ๋ƒฅ refresh token๋งŒ ์“ฐ๋ฉด ๋˜๋Š”๊ฑฐ ์•„๋‹Œ๊ฐ€?
โ†’ refresh token์€ ๊ถŒํ•œ ์„œ๋ฒ„์—์„œ๋งŒ ํ™œ์šฉ๋˜๋ฉฐ ๋ฆฌ์†Œ์Šค ์„œ๋ฒ„์—๋Š” ์ „์†ก๋˜์ง€ ์•Š์Œ
์ง์ ‘ ์‚ฌ์šฉ์ž๊ฐ€ ๋กœ๊ทธ์ธํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹Œ ์†Œ์…œ ๋ฏธ๋””์–ด๋กœ ๋กœ๊ทธ์ธํ•  ๊ฒฝ์šฐ client(๊ฐœ์ธ ์„œ๋น„์Šค)๋Š” Resource Owner(์‚ฌ์šฉ์ž)๋ฅผ ๋Œ€์‹ ํ•ด ๋กœ๊ทธ์ธ ํ•˜๋Š”๋ฐ ์ด๋•Œ, ํ•„์š”ํ•œ ์ •๋ณด๋ฅผ Resource Server์—์„œ ์–ป์–ด ์„œ๋กœ ๋น„๊ตํ•ด ์œ ํšจ์„ฑ์„ ํŒ๋‹จ
โ‡’ client๊ฐ€ ์œ ์ €์˜ ๋กœ๊ทธ์ธ ์ •๋ณด/ ์ž์›(resource)์„ Resource Server์— ์š”์ฒญํ•ด ๋Œ€์‹  ๋กœ๊ทธ์ธ
์ด๋ฅผ ์œ„ํ•ด์„œ client๊ฐ€ ๊ฐ€์ง€๋Š” ๋‹จ๊ณ„
Resource Owner๋กœ๋ถ€ํ„ฐ ๋™์˜(ํ—ˆ์šฉ)
Resource Server๋กœ๋ถ€ํ„ฐ client ์‹ ์› ํ™•์ธ

WHY

Resource Owner(์œ ์ €) ์ž…์žฅ
โ€ข
์ž์‹ ์˜ ์ •๋ณด๋ฅผ ๋Œ€์‹  ์‚ฌ์šฉํ•˜๊ธฐ ๋•Œ๋ฌธ์— client๊ฐ€ ์–ด๋–ค ์ •๋ณด๋ฅผ ํ™œ์šฉํ•˜๋Š”์ง€, ์–ด๋–ค ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•˜๋ ค๋Š”์ง€ ๋ชจ๋ฆ„
โ€ข
๊ฐœ์ธ์ •๋ณด๋ฅผ ๋งˆ๊ตฌ์žก์ด๋กœ ์•…์šฉํ•  ์ˆ˜๋„ ์žˆ์Œ
โ‡’ client๋Š” Resource Owner์˜ ๋™์˜๋ฅผ ๊ตฌํ•ด์•ผ ํ•จ
Resource Server(Kakao) ์ž…์žฅ
โ€ข
๋‹ค๋ฅธ ์‚ฌ๋žŒ์˜ ์ผ์„ ๋Œ€์‹  ํ•ด์ฃผ๋Š” ์‚ฌ๋žŒ์ด ์ •๋ง ๊ทธ ์‚ฌ๋žŒ์ผ์ง€ ๊ถ๊ธˆ
โ€ข
Resource Owner์˜ ์ผ์„ ์ˆ˜ํ–‰ํ•ด์ฃผ๋Š” client๊ฐ€ ์ •๋ง ๊ทธ client์ผ๊นŒ?
โ‡’ Resource Server๋Š” Resource Owner์˜ ๋ธŒ๋ผ์šฐ์ €๋ฅผ ํ†ตํ•ด client๋ฅผ ๊ตฌ๋ถ„ํ•˜๋Š” ๊ฐ’(code)๋ฅผ ์ „๋‹ฌ

์ธ์ฆ ์ข…๋ฅ˜

Authorization Code Grant (์ธ๊ฐ€ ์ฝ”๋“œ ์Šน์ธ)
Implicit Grant (์•”๋ฌต์  ์Šน์ธ)
Resource Owner Password Credentials Grant (๋ฆฌ์†Œ์Šค ์†Œ์œ ์ž ์•”ํ˜ธ ์ž๊ฒฉ ์Šน์ธ)
Client Credentials Grant (ํด๋ผ์ด์–ธํŠธ ์ž๊ฒฉ ์Šน์ธ)
Confidential Client
Public Client
3-legged
Authorization Code
Implicit
2-legged
Resource Owner Password Credentials
Client Credentials
3-legged, 2-legged

Authorization Code Grant (์ธ๊ฐ€ ์ฝ”๋“œ ์Šน์ธ)

๊ถŒํ•œ ๋ถ€์—ฌ ์Šน์ธ์„ ์œ„ํ•ด ์ž์ฒด ์ƒ์„ฑํ•œ Authorization Code๋ฅผ ์ „๋‹ฌํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ๋งŽ์ด ์“ฐ์ด๊ณ  ๊ธฐ๋ณธ์ด ๋˜๋Š” ๋ฐฉ์‹
๊ฐ„ํŽธ ๋กœ๊ทธ์ธ ๊ธฐ๋Šฅ์—์„œ ์‚ฌ์šฉ๋˜๋Š” ๋ฐฉ์‹์œผ๋กœ ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์‚ฌ์šฉ์ž๋ฅผ ๋Œ€์‹ ํ•˜์—ฌ ํŠน์ • ์ž์›์— ์ ‘๊ทผ์„ ์š”์ฒญํ•  ๋•Œ ์‚ฌ์šฉ๋˜๋Š” ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค. ๋ณดํ†ต ํƒ€์‚ฌ์˜ ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ ๋ณดํ˜ธ๋œ ์ž์›์„ ์ œ๊ณตํ•˜๊ธฐ ์œ„ํ•œ ์ธ์ฆ์— ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.
โ€ข
๋ฆฌ์†Œ์Šค ์ ‘๊ทผ์„ ์œ„ํ•ด ์ธ๊ฐ€ ์„œ๋ฒ„(Authorization Server)์—์„œ ๋ฐ›์€ ๊ถŒํ•œ ์ฝ”๋“œ๋กœ ๋ฆฌ์†Œ์Šค์— ๋Œ€ํ•œ ์•ก์„ธ์Šค ํ† ํฐ์„ ๋ฐ›๋Š” ๋ฐฉ์‹
โ€ข
Refresh Token์˜ ์‚ฌ์šฉ์ด ๊ฐ€๋Šฅ
โ€ข
๋‹ค๋ฅธ ์ธ์ฆ ์ ˆ์ฐจ์— ๋น„ํ•ด ๋ณด์•ˆ์„ฑ์ด ๋†’๊ธฐ์— ์ฃผ๋กœ ์‚ฌ์šฉ

Implicit Grant (์•”๋ฌต์  ์Šน์ธ)

์ž๊ฒฉ์ฆ๋ช…์„ ์•ˆ์ „ํ•˜๊ฒŒ ์ €์žฅํ•˜๊ธฐ ํž˜๋“  ํด๋ผ์ด์–ธํŠธ(ex: JavaScript๋“ฑ์˜ ์Šคํฌ๋ฆฝํŠธ ์–ธ์–ด๋ฅผ ์‚ฌ์šฉํ•œ ๋ธŒ๋ผ์šฐ์ €)์—๊ฒŒ ์ตœ์ ํ™”๋œ ๋ฐฉ์‹
์•”์‹œ์  ์Šน์ธ ๋ฐฉ์‹์—์„œ๋Š” ๊ถŒํ•œ ๋ถ€์—ฌ ์Šน์ธ ์ฝ”๋“œ ์—†์ด ๋ฐ”๋กœ Access Token์ด ๋ฐœ๊ธ‰ ๋ฉ๋‹ˆ๋‹ค. Access Token์ด ๋ฐ”๋กœ ์ „๋‹ฌ๋˜๋ฏ€๋กœ ๋งŒ๋ฃŒ๊ธฐ๊ฐ„์„ ์งง๊ฒŒ ์„ค์ •ํ•˜์—ฌ ๋ˆ„์ถœ์˜ ์œ„ํ—˜์„ ์ค„์ผ ํ•„์š”๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.
โ€ข
๊ถŒํ•œ ๋ถ€์—ฌ ์ฝ”๋“œ ์Šน์ธ ํƒ€์ž…(Authorization Code Grant)์™€ ๋‹ค๋ฅด๊ฒŒ ๊ถŒํ•œ ์ฝ”๋“œ ๊ตํ™˜ ๋‹จ๊ณ„๊ฐ€ ์—†์Œ
โ€ข
์•ก์„ธ์Šค ํ† ํฐ์„ ์ฆ‰์‹œ ๋ฐ˜ํ™˜๋ฐ›์•„ ์ด๋ฅผ ์ธ์ฆ์— ์ด์šฉํ•˜๋Š” ๋ฐฉ์‹

Resource Owner Password Credentials Grant (๋ฆฌ์†Œ์Šค ์†Œ์œ ์ž ์•”ํ˜ธ ์ž๊ฒฉ ์Šน์ธ)

๊ฐ„๋‹จํ•˜๊ฒŒ, username, password๋กœ Access Token์„ ๋ฐ›๋Š” ๋ฐฉ์‹
ํด๋ผ์ด์–ธํŠธ๊ฐ€ ํƒ€์‚ฌ์˜ ์™ธ๋ถ€ ํ”„๋กœ๊ทธ๋žจ์ผ ๊ฒฝ์šฐ์—๋Š” ์ด ๋ฐฉ์‹์„ ์ ์šฉํ•˜๋ฉด ์•ˆ๋ฉ๋‹ˆ๋‹ค. ์ž์‹ ์˜ ์„œ๋น„์Šค์—์„œ ์ œ๊ณตํ•˜๋Š” ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์ผ ๊ฒฝ์šฐ์—๋งŒ ์‚ฌ์šฉ๋˜๋Š” ์ธ์ฆ ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค. Refresh Token์˜ ์‚ฌ์šฉ๋„ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.
โ€ข
Client๊ฐ€ ์•”ํ˜ธ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์•ก์„ธ์Šค ํ† ํฐ์— ๋Œ€ํ•œ ์‚ฌ์šฉ์ž์˜ ์ž๊ฒฉ ์ฆ๋ช…์„ ๊ตํ™˜ํ•˜๋Š” ๋ฐฉ์‹
โ€ข
Resource Owner์—์„œ ID, Password๋ฅผ ์ „๋‹ฌ ๋ฐ›์•„ Resource Server์— ์ธ์ฆํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ์‹ ๋ขฐํ•  ์ˆ˜ ์žˆ๋Š” Client์— ํ•œํ•ด์„œ๋งŒ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ ์ถ”์ฒœ

Client Credentials Grant (ํด๋ผ์ด์–ธํŠธ ์ž๊ฒฉ ์Šน์ธ)

ํด๋ผ์ด์–ธํŠธ์˜ ์ž๊ฒฉ์ฆ๋ช…๋งŒ์œผ๋กœ Access Token์„ ํš๋“ํ•˜๋Š” ๋ฐฉ์‹
OAuth2์˜ ๊ถŒํ•œ ๋ถ€์—ฌ ๋ฐฉ์‹ ์ค‘ ๊ฐ€์žฅ ๊ฐ„๋‹จํ•œ ๋ฐฉ์‹์œผ๋กœ ํด๋ผ์ด์–ธํŠธ ์ž์‹ ์ด ๊ด€๋ฆฌํ•˜๋Š” ๋ฆฌ์†Œ์Šค ํ˜น์€ ๊ถŒํ•œ ์„œ๋ฒ„์— ํ•ด๋‹น ํด๋ผ์ด์–ธํŠธ๋ฅผ ์œ„ํ•œ ์ œํ•œ๋œ ๋ฆฌ์†Œ์Šค ์ ‘๊ทผ ๊ถŒํ•œ์ด ์„ค์ •๋˜์–ด ์žˆ๋Š” ๊ฒฝ์šฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.
โ€ข
Client๊ฐ€ ์ปจํ…์ŠคํŠธ ์™ธ๋ถ€์—์„œ ์—‘์„ธ์Šค ํ† ํฐ์„ ์–ป์–ด ํŠน์ • ๋ฆฌ์†Œ์Šค์— ์ ‘๊ทผ์„ ์š”์ฒญํ•  ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ์‹

OAuth ์„œ๋น„์Šค ๋“ฑ๋ก

์„œ๋น„์Šค๋ฅผ ๋“ฑ๋กํ•˜๋ฉด ๋ฐ›๊ฒŒ๋˜๋Š” ํ•„์ˆ˜ ์š”์†Œ
โ€ข
Client ID
โ—ฆ
์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜(์„œ๋น„์Šค)์„ ์‹๋ณ„ํ•˜๋Š” ์‹๋ณ„์žID๋ฅผ ์˜๋ฏธํ•œ๋‹ค.
โ—ฆ
๋‹ค์–‘ํ•œ ์„œ๋น„์Šค๊ฐ€ ์กด์žฌํ•˜๋Š”๋ฐ, Resource Server ์ž…์žฅ์—์„œ ์–ด๋–ค ์„œ๋น„์Šค์—๊ฒŒ ์ œ๊ณตํ•  ๊ฒƒ ์ธ์ง€ ๊ตฌ๋ถ„ํ•˜๋Š” ID๋ฅผ ์˜๋ฏธํ•œ๋‹ค.
โ€ข
Client Secret
โ—ฆ
Client ID์— ๋Œ€ํ•œ ๋น„๋ฐ€๋ฒˆํ˜ธ๋กœ ์™ธ๋ถ€์— ๋…ธ์ถœ๋˜๋ฉด ์•ˆ๋œ๋‹ค.
โ—ฆ
ID์˜ PASSWORD๋ผ๊ณ  ์ƒ๊ฐํ•˜๋ฉด ๋œ๋‹ค.
โ€ข
Authorized redirect URIs
โ—ฆ
Resource Server๋งŒ ๊ฐ–๋Š” ์ •๋ณด๋กœ, client์— ๊ถŒํ•œ์„ ๋ถ€์—ฌํ•˜๋Š” ๊ณผ์ •์—์„œ ๋‚˜์ค‘์— Authorized code๋ฅผ ์ „๋‹ฌํ•˜๋Š” ํ†ต๋กœ๋‹ค.
โ—ฆ
๋‚˜์ค‘์— client <-> Resource Server ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ์—์„œ ์ด redirect URIs๋„ ์ฒดํฌ๋˜๋ฉฐ ํ•ด๋‹น์ฃผ์†Œ๊ฐ€ ์•„๋‹ ๊ฒฝ์šฐ Resource Server๋Š” ํ•ด๋‹น client๊ฐ€ ์•„๋‹ˆ๋ผ๊ณ  ํŒ๋‹จํ•œ๋‹ค.
โ—ฆ
์ฆ‰, ์˜ˆ๋ฅผ๋“ค์–ด ๋„ค์ด๋ฒ„ ์„œ๋ฒ„๊ฐ€ ์‚ฌ์šฉ์ž์˜ ๊ฐœ์ธ์ •๋ณด๋ฅผ ์ฝœ๋ฐฑํ•  ์ฃผ์†Œ๋ฅผ ์ ๋Š” ๊ณณ์ด๋‹ค.

Resource owner ์Šน์ธ๊ณผ์ •