ํ”„๋กœ๊ทธ๋ž˜๋ฐ/Web

[Web] OAuth์˜ ๋“ฑ์žฅ ๋ฐ OAuth 2.0 ๊ฐœ๋…์— ๋Œ€ํ•ด์„œ ์‰ฝ๊ฒŒ ์•Œ์•„๋ด์š”.

์šฉ๋‡ฝ 2024. 2. 24. 17:07
๋ฐ˜์‘ํ˜•

๐Ÿ“– ๋“ค์–ด๊ฐ€๋ฉฐ

์ตœ๊ทผ ๋‹ค์–‘ํ•œ ์›น ์„œ๋น„์Šค๋ฅผ ์ ‘ํ•ด๋ณด๋ฉด ๊ฐ„ํŽธํ•œ SNS ๋กœ๊ทธ์ธ์œผ๋กœ ์‰ฝ๊ฒŒ ์„œ๋น„์Šค๋ฅผ ์ด์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

์ด๋Ÿฐ ๊ฐ„ํŽธํ•œ SNS ๋กœ๊ทธ์ธ์ด ๋ฐ”๋กœ OAuth2.0 ํ”„๋กœํ† ์ฝœ์„ ํ†ตํ•ด ์ง„ํ–‰๋ฉ๋‹ˆ๋‹ค.

 

๊ทธ๋Ÿผ, OAuth๊ฐ€ ์–ด๋–ค ๋ฐฐ๊ฒฝ์—์„œ ๋“ฑ์žฅํ•˜์˜€๊ณ , ํ˜„์žฌ๋Š” ์–ด๋–ป๊ฒŒ ํ‘œ์ค€ํ™”๋˜์–ด OAuth2.0์ด๋ผ๋Š” ์ด๋ฆ„์œผ๋กœ ์‚ฌ์šฉ๋˜๊ณ  ์žˆ๋Š”์ง€, ๊ทธ ํ๋ฆ„์— ๋Œ€ํ•œ ๊ฐœ๋…์„ ํ•จ๊ป˜ ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

๐Ÿง OAuth ๋“ฑ์žฅ๋ฐฐ๊ฒฝ

์›น ์„œ๋น„์Šค์˜ ๋‹ค์–‘์„ฑ์ด ์ฆ๊ฐ€ํ•˜๋ฉด์„œ, ์•ˆ์ „ํ•˜๊ฒŒ ์ •๋ณด๋ฅผ ๊ณต์œ ํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•œ ํ•„์š”์„ฑ์ด ์ƒ๊ฒผ์Šต๋‹ˆ๋‹ค.

์ด๋กœ ์ธํ•ด OAuth(Open Authorization)๋ผ๋Š” ๊ฐœ๋…์ด ํƒ„์ƒํ•˜๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

 

์ด๋ฅผ ์„ค๋ช…ํ•˜๊ธฐ ์œ„ํ•ด์„œ ํ•œ ๊ฐ€์ง€ ์˜ˆ๋ฅผ ๋“ค์–ด ๋ณผ๊ฒŒ์š”.

 

์šฐ๋ฆฌ์˜ ์„œ๋น„์Šค๊ฐ€ ์‚ฌ์šฉ์ž์—๊ฒŒ ์‚ฌ์šฉ์ž์˜ ๊ตฌ๊ธ€์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ์ œ๊ณตํ•˜๋ ค๋ฉด ์–ด๋–ป๊ฒŒ ํ•ด์•ผ ํ• ๊นŒ์š”?

 

์‚ฌ์šฉ์ž๊ฐ€ ๊ตฌ๊ธ€์— ๋Œ€ํ•œ ์•„์ด๋””์™€ ํŒจ์Šค์›Œ๋“œ๋ฅผ ์šฐ๋ฆฌ ์„œ๋น„์Šค(Client)์—๊ฒŒ ์ œ๊ณตํ•˜๊ณ , ๊ทธ๋Ÿผ ์šฐ๋ฆฌ ์„œ๋น„์Šค(Client)์—์„œ ๊ตฌ๊ธ€์— ๋กœ๊ทธ์ธ์„ ํ•˜์—ฌ ํ•ด๋‹น ์ •๋ณด๋ฅผ ๊ฐ€์ ธ์™€์„œ ์‚ฌ์šฉ์ž์—๊ฒŒ ์ œ๊ณตํ•˜๋Š” ๋ฐฉ์‹์„ ์ƒ๊ฐํ•ด ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

ํ•˜์ง€๋งŒ ์ด๋Ÿฌํ•œ ๋ฐฉ์‹์—๋Š” ๋ณด์•ˆ ๋ฌธ์ œ์— ์žˆ์–ด์„œ ๋งค์šฐ ์ทจ์•ฝํ•ฉ๋‹ˆ๋‹ค.

 

์‚ฌ์šฉ์ž ์ž…์žฅ์—์„œ๋Š” ์ œ 3์ž์—๊ฒŒ ์ž์‹ ์˜ SNS ์ •๋ณด๋ฅผ ๋งก๊ธฐ๊ฒŒ ๋˜๋ฉฐ ๋งค์šฐ ๋ถˆ์•ˆํ•˜๊ฒ ์ฃ .

๋˜ํ•œ, ์šฐ๋ฆฌ ์„œ๋น„์Šค๊ฐ€ ํ•ด์ปค์—๊ฒŒ DB๊ฐ€ ํƒˆ์ทจ๋œ๋‹ค๋ฉด SNS ์ •๋ณด์˜ ์œ ์ถœ๊นŒ์ง€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

์ด์— ๋Œ€ํ•ด์„œ ๊ถŒํ•œ์„ ํ•ด์ œํ•˜๋ ค๋ฉด ํ•ด๋‹น SNS์˜ ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ๋ณ€๊ฒฝํ•˜๋Š” ๋ฐฉ๋ฒ•๋ฐ–์— ์กด์žฌํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

 

๊ทธ๋ž˜์„œ OAuth ํ”„๋กœํ† ์ฝœ์ด ๋“ฑ์žฅํ•˜๊ธฐ ์ด์ „์—๋Š” ๊ฐ SNS ํšŒ์‚ฌ๋งˆ๋‹ค ๊ฐ๊ฐ ๋‹ค๋ฅธ ์ธ์ฆ ์ ˆ์ฐจ๋ฅผ ๊ฑฐ์น˜๋„๋ก ํ–ˆ์Šต๋‹ˆ๋‹ค.

ํ•˜์ง€๋งŒ ์ด๋ ‡๊ฒŒ ํ‘œ์ค€ํ™”๋˜์ง€ ์•Š์€ ์ ˆ์ฐจ๋Š” ๊ฐ ์„œ๋น„์Šค๋ฅผ ๊ฐœ๋ฐœํ•˜๋ฉฐ ๋งŽ์€ ์–ด๋ ค์›€์„ ๊ฒช๊ฒŒ ํ–ˆ์Šต๋‹ˆ๋‹ค.

๊ฐ SNS ๋งˆ๋‹ค ๋‹ค๋ฅธ ๊ฐœ๋ฐœ ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ฐœ๋ฐœ ๊ฒฝํ—˜์ด ์ข‹์ง€ ์•Š์•˜๊ณ , ์œ ์ง€๋ณด์ˆ˜์—๋„ ์–ด๋ ค์›€์„ ๊ฒช์—ˆ์Šต๋‹ˆ๋‹ค.

 

์œ„์™€ ๊ฐ™์€ ๋ฌธ์ œ๋“ค์„ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ์ธ์ฆ์„ ์œ„ํ•œ ๊ฐœ๋ฐฉํ˜• ํ”„๋กœํ† ์ฝœ๋กœ OAuth๊ฐ€ ๋“ฑ์žฅํ–ˆ์Šต๋‹ˆ๋‹ค.

๐Ÿ” OAuth2.0์ด๋ž€?

OAuth2.0์€ ์ธ์ฆ์„ ์œ„ํ•œ ๊ฐœ๋ฐฉํ˜• ํ‘œ์ค€ ํ”„๋กœํ† ์ฝœ์ž…๋‹ˆ๋‹ค.

์‚ฌ์šฉ์ž๊ฐ€ ์„œ๋น„์Šค ์ œ๊ณต์ž์—๊ฒŒ ํŠน์ • ์•ฑ์ด ์‚ฌ์šฉ์ž์˜ ๋ฐ์ดํ„ฐ์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋„๋ก ํ—ˆ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

 

๊ทธ๋ž˜์„œ ์‚ฌ์šฉ์ž๋Š” ์ž์‹ ์˜ ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ๊ณต์œ ํ•˜์ง€ ์•Š๊ณ ๋„ ์ œ 3์ž ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜(์šฐ๋ฆฌ ์„œ๋น„์Šค)์— ์ž์‹ ์˜ ์ •๋ณด์— ๋Œ€ํ•œ ์ œํ•œ๋œ ์ ‘๊ทผ ๊ถŒํ•œ์„ ๋ถ€์—ฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๋Ÿผ, OAuth1.0์€ ๋ญ˜๊นŒ์š”โ“
OAuth1.0์— ์กด์žฌํ–ˆ๋˜ ๋ณต์žก์„ฑ๊ณผ ํ‘œ์ค€ํ™” ๋ฌธ์ œ๋กœ ์ ‘๊ทผํ•˜๊ธฐ ์–ด๋ ค์šด ๋ฌธ์ œ๊ฐ€ ์กด์žฌํ–ˆ์Šต๋‹ˆ๋‹ค.
๋”์šฑ ๋ณด์•ˆ์„ ๊ฐ•ํ™”ํ•˜๊ณ  ํ‘œ์ค€ํ™”๋ฅผ ์œ„ํ•ด 2.0์ด ๋“ฑ์žฅํ–ˆ์Šต๋‹ˆ๋‹ค.
์ธ์ฆ ํ”„๋กœ์„ธ์Šค๋ฅผ ๋‹จ์ˆœํ™”ํ•˜๊ณ  ํ™•์žฅํ•˜๋ฉด์„œ ์•ˆ์ „ํ•˜๊ฒŒ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋„๋ก ํ–ˆ์Šต๋‹ˆ๋‹ค.

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

๋” ๊นŠ์ด ๋“ค์–ด๊ฐ€๊ธฐ ์ „์— ์ฃผ์š” ์šฉ์–ด๋ถ€ํ„ฐ ์งš๊ณ  ๊ฐ€๊ฒ ์Šต๋‹ˆ๋‹ค.

  • Authentication: ์ธ์ฆ โžก๏ธ ์ ‘๊ทผ ์ž๊ฒฉ์ด ์žˆ๋Š”์ง€ ๊ฒ€์ฆํ•˜๋Š” ๋‹จ๊ณ„
  • Authorization: ์ธ๊ฐ€ โžก๏ธ ์ž์›์— ์ ‘๊ทผํ•  ๊ถŒํ•œ์„ ๋ถ€์—ฌ
  • Access Token: ์‚ฌ์šฉ์ž๊ฐ€ ํ•ด๋‹น ํ† ํฐ์„ ๊ฐ€์ง€๊ณ  SNS ์„œ๋ฒ„์—๊ฒŒ ์ •๋ณด๋ฅผ ํš๋“ํ•  ๋•Œ ์‚ฌ์šฉ๋˜๋Š” ํ† ํฐ์ž…๋‹ˆ๋‹ค. ๋งŒ๋ฃŒ ๊ธฐ๊ฐ„์ด ์ƒ๋Œ€์ ์œผ๋กœ ์งง์Šต๋‹ˆ๋‹ค.
  • Refresh Token: Access Token์ด ๋งŒ๋ฃŒ๋  ๋•Œ ์ด๋ฅผ ๊ฐฑ์‹ ํ•˜๊ธฐ ์œ„ํ•œ ๋ชฉ์ ์œผ๋กœ ์‚ฌ์šฉ๋˜๋Š” ํ† ํฐ์ž…๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ์ƒ๋Œ€์ ์œผ๋กœ Access Token ๋ณด๋‹ค ๊ธด ๋งŒ๋ฃŒ ๊ธฐ๊ฐ„์„ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋“ฑ๋ก ๋ฐ ์‚ฌ์šฉ์— ํ•„์š”ํ•œ ์ฃผ์š” ์šฉ์–ด

redirect_URI

  • ๊ถŒํ•œ ์„œ๋ฒ„๊ฐ€ ์š”์ฒญ์— ๋Œ€ํ•œ ์‘๋‹ต์„ ๋ณด๋‚ผ url์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.
  • ์ธ์ฆ์ด ์„ฑ๊ณตํ•˜๋ฉด ์‚ฌ์šฉ์ž๋ฅผ ์ด URI๋กœ ๋ฆฌ๋””๋ ‰์…˜ ์‹œํ‚ต๋‹ˆ๋‹ค.
  • ๋ณด์•ˆ์„ ์œ„ํ•ด ๊ธฐ๋ณธ์ ์œผ๋กœ https๋ฅผ ์‚ฌ์šฉํ•˜์ง€๋งŒ, ๊ฐœ๋ฐœํ™˜๊ฒฝ(localhost)์€ http๊ฐ€ ํ—ˆ์šฉ๋ฉ๋‹ˆ๋‹ค.

client_id ๋ฐ client_secret

  • ํด๋ผ์ด์–ธํŠธ ์ž๊ฒฉ ์ฆ๋ช…์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค.
  • ๊ถŒํ•œ ์„œ๋ฒ„๋Š” ์ด ์ •๋ณด๋ฅผ ํ†ตํ•ด ์—ฐ๊ฒฐ๋œ ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์˜ฌ๋ฐ”๋ฅธ์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.
  • id๋Š” ํด๋ผ์ด์–ธํŠธ๋ฅผ ์‹๋ณ„ํ•˜๋Š” ์ •๋ณด, secret์€ ํด๋ผ์ด์–ธํŠธ์˜ ๋น„๋ฐ€๋ฒˆํ˜ธ๋กœ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

scope

  • ์ ‘๊ทผ ๊ถŒํ•œ์˜ ๋ฒ”์œ„๋ฅผ ๋ฏธ๋ฆฌ ์ •์˜ํ•˜๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.
  • ์ด๋ฉ”์ผ, ์ด๋ฆ„, ์•„์ด๋””, ์ฃผ์†Œ ๋“ฑ ๋‹ค์–‘ํ•œ ์ •๋ณด๋ฅผ ํฌํ•จํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

OAuth2.0 ์ฃผ์š” ๊ตฌ์„ฑ์š”์†Œ

OAuth2.0 ํ”„๋กœํ† ์ฝœ์€ ํฌ๊ฒŒ  4๊ฐ€์ง€์˜ ์—ญํ• ์„ ๊ฐ€์ง„ ๊ตฌ์„ฑ์š”์†Œ๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ์Šต๋‹ˆ๋‹ค.

  • Resource Owner: ์›น ์„œ๋น„์Šค๋ฅผ ์ด์šฉํ•˜๋ ค๋Š” ์‚ฌ์šฉ์ž ๋˜๋Š” ๊ฐœ์ธ ์ •๋ณด ์†Œ์œ ์ž๋ฅผ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.
  • Client: ์ž์‹  ๋˜๋Š” ๊ฐœ์ธ์ด ๋งŒ๋“  ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ž…๋‹ˆ๋‹ค. Resource Server์˜ ์ž์›์„ ์‚ฌ์šฉํ•˜๊ณ ์ž ํ•˜๋Š” ์„œ๋น„์Šค๋ฅผ ์˜๋ฏธํ•˜๋ฉฐ, ํ”„๋ก ํŠธ์—”๋“œ๋‚˜ ๋ฐฑ์—”๋“œ์™€ ๊ฐ™์€ ๊ตฌ๋ถ„ ์—†์ด ์„œ๋น„์Šค ๊ทธ ์ž์ฒด๋ฅผ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.
  • Resource Server: ์‚ฌ์šฉ์ž์˜ ๊ฐœ์ธ ์ •๋ณด๋ฅผ ๋ณด๊ด€ํ•˜๊ณ  ์žˆ๋Š” ์„œ๋ฒ„๋ฅผ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.
  • Authorization Server: ๊ถŒํ•œ์„ ๋ถ€์—ฌํ•ด์ฃผ๋Š” ์„œ๋ฒ„๋กœ, Client์˜ ์ ‘๊ทผ ์ž๊ฒฉ ํ™•์ธํ•˜๊ณ  Access Token ๋ฐœ๊ธ‰ ๋ฐ Authorization Code ๋ฐœ๊ธ‰ํ•˜๋Š” ์—ญํ• ์„ ๋‹ด๋‹นํ•ฉ๋‹ˆ๋‹ค.

์—ฌ๊ธฐ์„œ Resource Server์™€ Authorization Server๋Š” SNS ์„œ๋น„์Šค ๋‚ด๋ถ€์—์„œ ๊ตฌํ˜„๋˜๋Š” ์—ญํ• ์ž…๋‹ˆ๋‹ค.

๐ŸŒŠ OAuth2.0 ์ธ์ฆ ํ๋ฆ„

๊ทธ๋Ÿผ ์œ„์—์„œ ์•Œ์•„๋ณธ ์šฉ์–ด๋“ค์„ ํ† ๋Œ€๋กœ ์–ด๋–ป๊ฒŒ ์ธ์ฆ์ด ์ง„ํ–‰๋˜๋Š”์ง€ ์•Œ์•„๋ณผ๊นŒ์š”?

OAuth2.0 ์ธ์ฆ ํ๋ฆ„

 

์œ„ ๊ทธ๋ฆผ์„ ํ† ๋Œ€๋กœ ๋กœ๊ทธ์ธ ๊ณผ์ •์€ ์•„๋ž˜์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค.

๋กœ๊ทธ์ธ ์š”์ฒญ (1 ~ 2 ๊ณผ์ •)

SNS ๋กœ๊ทธ์ธ ํŽ˜์ด์ง€

์‚ฌ์šฉ์ž(Resource Owner)๊ฐ€ SNS ๋กœ๊ทธ์ธ ๋ฒ„ํŠผ์„ ํด๋ฆญํ•˜์—ฌ ๋กœ๊ทธ์ธ์„ ์š”์ฒญํ•ฉ๋‹ˆ๋‹ค.

์ดํ›„ Client๋Š” ์‚ฌ์šฉ์ž์˜ ๋ธŒ๋ผ์šฐ์ €๋ฅผ Authorization Server๋กœ ์ด๋™์‹œํ‚ต๋‹ˆ๋‹ค.

์ด๋•Œ ํ•„์š”ํ•œ ์ •๋ณด๋“ค์ด ์ฟผ๋ฆฌ ์ŠคํŠธ๋ง์œผ๋กœ ํฌํ•จ๋ฉ๋‹ˆ๋‹ค.

๋กœ๊ทธ์ธ ํŽ˜์ด์ง€ ์ œ๊ณต ๋ฐ ID/PW ์ œ๊ณต (3 ~ 4 ๊ณผ์ •)

์นด์นด์˜ค ๋กœ๊ทธ์ธ ํŽ˜์ด์ง€

์‚ฌ์šฉ์ž(Resource Owner)๋Š” ์ œ๊ณต๋œ ๋กœ๊ทธ์ธ ํŽ˜์ด์ง€์—์„œ ์ž์‹ ์˜ ID์™€ PW๋ฅผ ์ž…๋ ฅํ•˜์—ฌ ์ธ์ฆ์„ ์ง„ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

Authorization Code ๋ฐœ๊ธ‰ ๋ฐ Redirect URI๋กœ ๋ฆฌ๋””๋ ‰ํŠธ (5 ~ 6 ๊ณผ์ •)

Redirect URI ์˜ˆ์‹œ

์ธ์ฆ์ด ์„ฑ๊ณตํ•˜๋ฉด, Authorization Server๋Š” ์‚ฌ์šฉ์ž๋ฅผ Redirect URI๋กœ ๋ฆฌ๋””๋ ‰์…˜ ์‹œํ‚ต๋‹ˆ๋‹ค.

์ด๋•Œ URL์—๋Š” Authorization Code๊ฐ€ ํฌํ•จ๋ฉ๋‹ˆ๋‹ค.

์ด ์ฝ”๋“œ๋Š” Client๊ฐ€ Access Token์„ ๋ฐ›๊ธฐ ์œ„ํ•œ ์ผํšŒ์„ฑ ์ฝ”๋“œ์ž…๋‹ˆ๋‹ค.

Authorization Code์™€ Access Token ๊ตํ™˜ (7 ~ 8 ๊ณผ์ •)

Access Token ๋ฐœ๊ธ‰ ์˜ˆ์‹œ

Client๋Š” Authorization Code๋ฅผ Authorization Server์— ์ „๋‹ฌํ•˜๊ณ , Access Token์„ ๋ฐ›์Šต๋‹ˆ๋‹ค.

๊ทธ๋ฆฌ๊ณ  Client๋Š” ์ด ํ† ํฐ์„ ํ™œ์šฉํ•ด์„œ, ์ดํ›„ ์‚ฌ์šฉ์ž(Resource Owner)์˜ ๋ฆฌ์†Œ์Šค์— ์ ‘๊ทผํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

๋กœ๊ทธ์ธ ์„ฑ๊ณต (9 ๊ณผ์ •)

์ด ๊ณผ์ •์ด ์„ฑ๊ณต์ ์œผ๋กœ ๋งˆ์นœ ํ›„์—๋Š” Client๊ฐ€ ์‚ฌ์šฉ์ž(Resource Owner)์—๊ฒŒ ๋กœ๊ทธ์ธ์ด ์„ฑ๊ณตํ–ˆ์Œ์„ ์•Œ๋ฆฝ๋‹ˆ๋‹ค.

Access Token์œผ๋กœ ์„œ๋น„์Šค ์š”์ฒญ ๋ฐ ์ ‘๊ทผ (10 ~ 13 ๊ณผ์ •)

์‚ฌ์šฉ์ž(Resource Owner)๊ฐ€ Resource Server์— ์ ‘๊ทผ์„ ์š”์ฒญํ•˜๋ฉด, ํด๋ผ์ด์–ธํŠธ๋Š” ์ €์žฅํ•ด ๋‘” Access Token์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ฆฌ์†Œ์Šค์— ์ ‘๊ทผํ•˜๊ณ , ์‚ฌ์šฉ์ž(Resource Owner)์—๊ฒŒ ์„œ๋น„์Šค๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

๐Ÿ“• ๋งˆ๋ฌด๋ฆฌ

OAuth์˜ ๋“ฑ์žฅ ๋ฐฐ๊ฒฝ๋ถ€ํ„ฐ OAuth2.0์˜ ๊ฐœ๋…, ํ๋ฆ„๊นŒ์ง€ ์•Œ์•„๋ดค์Šต๋‹ˆ๋‹ค.

SNS ๋กœ๊ทธ์ธ์ด ํ•„์ˆ˜์ธ ์‹œ๋Œ€์—ฌ์„œ OAuth2.0์„ ํ†ตํ•œ ๊ฐœ๋ฐœ์„ ํ•˜๊ธฐ ์œ„ํ•ด์„  ๊ฐœ๋… ์ˆ™์ง€๊ฐ€ ํ•„์ˆ˜๊ฐ€ ๋œ ๊ฒƒ ๊ฐ™๋„ค์š”.

 

๋„์›€์ด ๋˜์—ˆ์œผ๋ฉด ์ข‹๊ฒ ์Šต๋‹ˆ๋‹ค.

 

ํ˜น์‹œ ํ‹€๋ฆฐ ๋‚ด์šฉ์ด๋‚˜ ๋ณด์ถฉํ•ด์•ผ ํ•  ๋‚ด์šฉ์ด ์žˆ๋‹ค๋ฉด ์•Œ๋ ค์ฃผ์„ธ์š” :)

 

์ฐธ๊ณ  ๋ฌธํ—Œ:

https://hudi.blog/oauth-2.0/

https://inpa.tistory.com/entry/WEB-%F0%9F%93%9A-OAuth-20-%EA%B0%9C%EB%85%90-%F0%9F%92%AF-%EC%A0%95%EB%A6%AC

https://blog.naver.com/mds_datasecurity/222182943542

๋ฐ˜์‘ํ˜•