๐Ÿ“Œ OAuth2.0์ด๋ž€?

๐Ÿ“Œ ์ฃผ์š” ์šฉ์–ด

OAuth2.0 ์ฃผ์š” ์šฉ์–ด

๐Ÿ“Œ OAuth์™€ ๋กœ๊ทธ์ธ

<aside> ๐Ÿ’ก OAuth์™€ ๋กœ๊ทธ์ธ์€ ๋ถ„๋ฆฌํ•ด์„œ ์ดํ•ดํ•ด์•ผ ํ•œ๋‹ค.

</aside>

์ผ์ƒ ์ƒํ™œ์„ ์˜ˆ๋กœ ๋“ค์–ด OAuth์™€ ๋กœ๊ทธ์ธ์˜ ์ฐจ์ด๋ฅผ ์„ค๋ช…ํ•ด ๋ณด๊ฒ ๋‹ค. ์‚ฌ์›์ฆ์„ ์ด์šฉํ•ด ์ถœ์ž…ํ•  ์ˆ˜ ์žˆ๋Š” ํšŒ์‚ฌ๋ฅผ ์ƒ๊ฐํ•ด ๋ณด์ž. ๊ทธ๋Ÿฐ๋ฐ ์™ธ๋ถ€ ์†๋‹˜์ด ๊ทธ ํšŒ์‚ฌ์— ๋ฐฉ๋ฌธํ•  ์ผ์ด ์žˆ๋‹ค. ํšŒ์‚ฌ ์‚ฌ์›์ด ๊ฑด๋ฌผ์— ์ถœ์ž…ํ•˜๋Š” ๊ฒƒ์ด ๋กœ๊ทธ์ธ์ด๋ผ๋ฉด OAuth๋Š” ๋ฐฉ๋ฌธ์ฆ์„ ์ˆ˜๋ นํ•œ ํ›„ ํšŒ์‚ฌ์— ์ถœ์ž…ํ•˜๋Š” ๊ฒƒ์— ๋น„์œ ํ•  ์ˆ˜ ์žˆ๋‹ค. ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ ˆ์ฐจ๋ฅผ ์ƒ๊ฐํ•ด ๋ณด์ž.

  1. ๋‚˜๋ฐฉ๋ฌธ์”จ(์™ธ๋ถ€ ์†๋‹˜)๊ฐ€ ์•ˆ๋‚ด ๋ฐ์Šคํฌ์—์„œ ์—…๋ฌด์ ์ธ ๋ชฉ์ ์œผ๋กœ ๊น€๋ชฉ์ ์”จ(ํšŒ์‚ฌ ์‚ฌ์›)๋ฅผ ๋งŒ๋‚˜๋Ÿฌ ์™”๋‹ค๊ณ  ๋งํ•œ๋‹ค.
  2. ์•ˆ๋‚ด ๋ฐ์Šคํฌ์—์„œ๋Š” ๊น€๋ชฉ์ ์”จ์—๊ฒŒ ๋‚˜๋ฐฉ๋ฌธ์”จ๊ฐ€ ๋ฐฉ๋ฌธํ–ˆ๋‹ค๊ณ  ์—ฐ๋ฝํ•œ๋‹ค.
  3. ๊น€๋ชฉ์ ์”จ๊ฐ€ ์•ˆ๋‚ด ๋ฐ์Šคํฌ๋กœ ์ฐพ์•„์™€ ๋‚˜๋ฐฉ๋ฌธ์”จ์˜ ์‹ ์›์„ ํ™•์ธํ•ด ์ค€๋‹ค.
  4. ๊น€๋ชฉ์ ์”จ๋Š” ์—…๋ฌด ๋ชฉ์ ๊ณผ ์ธ์  ์‚ฌํ•ญ์„ ์•ˆ๋‚ด ๋ฐ์Šคํฌ์—์„œ ๊ธฐ๋กํ•œ๋‹ค.
  5. ์•ˆ๋‚ด ๋ฐ์Šคํฌ์—์„œ ๋‚˜๋ฐฉ๋ฌธ ์”จ์—๊ฒŒ ๋ฐฉ๋ฌธ์ฆ์„ ๋ฐœ๊ธ‰ํ•ด ์ค€๋‹ค.
  6. ๊น€๋ชฉ์ ์”จ์™€ ๋‚˜๋ฐฉ๋ฌธ์”จ๋Š” ์ •ํ•ด์ง„ ์žฅ์†Œ๋กœ ์ด๋™ํ•ด ์—…๋ฌด๋ฅผ ์ง„ํ–‰ํ•œ๋‹ค.

์œ„ ๊ณผ์ •์€ ๋ฐฉ๋ฌธ์ฆ ๋ฐœ๊ธ‰๊ณผ ์‚ฌ์šฉ์— ๋น—๋Œ€์–ด OAuth ๋ฐœ๊ธ‰ ๊ณผ์ •๊ณผ ๊ถŒํ•œ์„ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•œ ๊ฒƒ์ด๋‹ค. ๋ฐฉ๋ฌธ์ฆ์ด๋ž€ ์‚ฌ์ „์— ์ •ํ•ด์ง„ ๊ณณ๋งŒ ๋‹ค๋‹ ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ๊ฒƒ์ด๋‹ˆ, '๋ฐฉ๋ฌธ์ฆ'์„ ๊ฐ€์ง„ ์‚ฌ๋žŒ์ด ์ถœ์ž…ํ•  ์ˆ˜ ์žˆ๋Š” ๊ณณ๊ณผ '์‚ฌ์›์ฆ'์„ ๊ฐ€์ง„ ์‚ฌ๋žŒ์ด ์ถœ์ž…ํ•  ์ˆ˜ ์žˆ๋Š” ๊ณณ์€ ๋‹ค๋ฅด๋‹ค. ์—ญ์‹œ ์ง์ ‘ ์„œ๋น„์Šค์— ๋กœ๊ทธ์ธํ•œ ์‚ฌ์šฉ์ž์™€ OAuth๋ฅผ ์ด์šฉํ•ด ๊ถŒํ•œ์„ ์ธ์ฆ๋ฐ›์€ ์‚ฌ์šฉ์ž๋Š” ํ•  ์ˆ˜ ์žˆ๋Š” ์ผ์ด ๋‹ค๋ฅด๋‹ค.

OAuth์—์„œ 'Auth'๋Š” 'Authentication'(์ธ์ฆ)๋ฟ๋งŒ ์•„๋‹ˆ๋ผ 'Authorization'(ํ—ˆ๊ฐ€) ๋˜ํ•œ ํฌํ•จํ•˜๊ณ  ์žˆ๋Š” ๊ฒƒ์ด๋‹ค. ๊ทธ๋ ‡๊ธฐ ๋•Œ๋ฌธ์— OAuth ์ธ์ฆ์„ ์ง„ํ–‰ํ•  ๋•Œ ํ•ด๋‹น ์„œ๋น„์Šค ์ œ๊ณต์ž๋Š” '์ œ 3์ž๊ฐ€ ์–ด๋–ค ์ •๋ณด๋‚˜ ์„œ๋น„์Šค์— ์‚ฌ์šฉ์ž์˜ ๊ถŒํ•œ์œผ๋กœ ์ ‘๊ทผํ•˜๋ ค ํ•˜๋Š”๋ฐ ํ—ˆ์šฉํ•˜๊ฒ ๋А๋ƒ'๋ผ๋Š” ์•ˆ๋‚ด ๋ฉ”์‹œ์ง€๋ฅผ ๋ณด์—ฌ ์ฃผ๋Š” ๊ฒƒ์ด๋‹ค.

ํšŒ์‚ฌ ๋ฐฉ๋ฌธ ๊ณผ์ •๊ณผ OAuth ์ธ์ฆ ๊ณผ์ •

๐Ÿ“Œ OAuth2.0 ํ”„๋กœํ† ์ฝœ์„ ๊ตฌ์„ฑํ•˜๋Š” 4๊ฐ€์ง€์˜ ์—ญํ• 

Roles

๐Ÿ“Œ Obtaining Authorization

๐Ÿ“Œ ์นด์นด์˜ค OAuth2.0 Key ๋ฐœ๊ธ‰ ํ๋ฆ„

  1. ์นด์นด์˜ค ๋กœ๊ทธ์ธ ๋ฒ„ํŠผ ํด๋ฆญ
  2. ์นด์นด์˜ค ๊ณ„์ •์œผ๋กœ ๋กœ๊ทธ์ธ > ์ž๊ฒฉ ์ฆ๋ช… ์„ฑ๊ณต ์‹œ, ๋™์˜ ํ™”๋ฉด(needs_agreement)
  3. ์ธ๊ฐ€ ์ฝ”๋“œ Redirect URI๋กœ ๋ฐœ๊ธ‰
  4. ์ธ๊ฐ€ ์ฝ”๋“œ๋กœ Access Token, Refresh Token ํš๋“

Untitled

์œ„์˜ ๋กœ๊ทธ์ธ ์ง„ํ–‰ ์ˆœ์„œ๋ฅผ ํ‘œํ˜„ํ•œ ์ด๋ฏธ์ง€์—๋Š” ์นด์นด์˜ค ์„œ๋ฒ„๊ฐ€ ํ•˜๋‚˜๋กœ ํ‘œํ˜„๋˜์–ด ์žˆ์ง€๋งŒ, ์นด์นด์˜ค ์„œ๋ฒ„์˜ ํ˜ธ์ŠคํŠธ๋Š” ์ธ์ฆ ์„œ๋ฒ„์™€ API ์„œ๋ฒ„๋“ค๋กœ ๋‚˜๋‰ฉ๋‹ˆ๋‹ค. ์นด์นด์˜ค ๋กœ๊ทธ์ธ์€ ์ธ์ฆ ์„œ๋ฒ„๊ฐ€, ์‚ฌ์šฉ์ž ์ •๋ณด ๊ฐ€์ ธ์˜ค๊ธฐ ๋“ฑ ๋‹ค๋ฅธ ๊ธฐ๋Šฅ์€ API ์„œ๋ฒ„๋“ค์ด ๊ฐ๊ฐ ์š”์ฒญ์„ ๋ฐ›๊ณ  ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

์นด์นด์˜ค ๋กœ๊ทธ์ธ ๊ฐ€์ด๋“œ

Naver vs Kakao