OAuth

1. OAuth๋ž€?

  • ์ „ํ†ต์ ์œผ๋กœ ์ง์ ‘ ์ž‘์„ฑํ•œ ์„œ๋ฒ„์—์„œ ์ธ์ฆ์„ ์ฒ˜๋ฆฌํ•ด ์ฃผ๋Š” ๊ฒƒ๊ณผ ๋‹ฌ๋ฆฌ, OAuth๋Š” ์ธ์ฆ์„ ์ค‘๊ฐœํ•ด์ฃผ๋Š” ๋งค์ปค๋‹ˆ์ฆ˜

  • ๋ณด์•ˆ๋œ ๋ฆฌ์†Œ์Šค์— ์•ก์„ธ์Šคํ•˜๊ธฐ ์œ„ํ•ด ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ ๊ถŒํ•œ์„ ์ œ๊ณตํ•˜๋Š” ํ”„๋กœ์„ธ์Šค๋ฅผ ๋‹จ์ˆœํ™”ํ•˜๋Š” ํ”„๋กœํ† ์ฝœ

  • ์ฆ‰, ์ด๋ฏธ ์‚ฌ์šฉ์ž ์ •๋ณด๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ์›น ์„œ๋น„์Šค์—์„œ ์‚ฌ์šฉ์ž์˜ ์ธ์ฆ์„ ๋Œ€์‹ ํ•ด ์ฃผ๊ณ , ์ ‘๊ทผ ๊ถŒํ•œ์— ๋Œ€ํ•œ ํ† ํฐ์„ ๋ฐœ๊ธ‰ํ•œ ํ›„, ์ด๋ฅผ ์ด์šฉํ•ด ๋‚ด ์„œ๋ฒ„์—์„œ ์ธ์ฆ์ด ๊ฐ€๋Šฅ

2. OAuth์˜ ์ž‘๋™ ๋งค์ปค๋‹ˆ์ฆ˜

  • Resource Owner

    • OAuth ์ธ์ฆ์œผ๋กœ ์†Œ์…œ ๋กœ๊ทธ์ธ์„ ํ•˜๊ณ ์ž ํ•˜๋Š” ์‚ฌ์šฉ์ž

  • Resource Server

    • ์‚ฌ์šฉ์ž์˜ ์ •๋ณด๋ฅผ ์ €์žฅํ•˜๊ณ  ์žˆ๋Š” ์„œ๋ฒ„

  • Authorization Server

    • ์‚ฌ์šฉ์ž์˜ ์ •๋ณด๋ฅผ ์ €์žฅํ•˜๊ณ  ์žˆ๋Š” ์„œ๋ฒ„ ์ค‘ ์ธ์ฆ์„ ๋‹ด๋‹นํ•˜๋Š” ์„œ๋ฒ„

  • Application

    • ์‚ฌ์šฉ์ž๊ฐ€ ์†Œ์…œ ๋กœ๊ทธ์ธ์„ ํ™œ์šฉํ•ด ์ด์šฉํ•˜๊ณ ์ž ํ•˜๋Š” ํ™˜๊ฒฝ

3. OAuth ์ธ์ฆ ๋ฐฉ์‹์˜ ์ข…๋ฅ˜์™€ ํ๋ฆ„

  • Implicit Grant Type

    • ๊ธฐ์กด ์„œ๋น„์Šค์— ๋กœ๊ทธ์ธ๋งŒ ๋˜์–ด ์žˆ๋‹ค๋ฉด ์ƒˆ๋กœ์šด ์„œ๋น„์Šค์— ๋ฐ”๋กœ ์•ก์„ธ์Šค ํ† ํฐ์„ ๋‚ด์–ด์ฃผ๊ธฐ ๋•Œ๋ฌธ์— ๋ณด์•ˆ์„ฑ์ด ๋–จ์–ด์ง

  • Authorization Code Grant Type

    • Implicit Grant Type์—์„œ Authorization Code๋ฅผ ์‚ฌ์šฉํ•œ ์ธ์ฆ ๋‹จ๊ณ„๊ฐ€ ์ถ”๊ฐ€๋กœ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๋น„๊ต์  ๋” ์•ˆ์ „

    • ๋˜ํ•œ, ํ† ํฐ์„ Application์˜ Client์— ๋…ธ์ถœ์‹œํ‚ค์ง€ ์•Š๊ณ  Server์—์„œ๋งŒ ๊ด€๋ฆฌํ•˜๋„๋ก ๋งŒ๋“ค ์ˆ˜๋„ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์†Œ์…œ ๋กœ๊ทธ์ธ์„ ๊ตฌํ˜„ํ•˜๋Š” ๋ฐฉ์‹์˜ ์„ ํƒ์ง€๊ฐ€ ๋Š˜์–ด๋‚จ

  • Refresh Token Grant Type

    • ์•ก์„ธ์Šค ํ† ํฐ์ด ๋งŒ๋ฃŒ๋˜์—ˆ์„ ๋•Œ, ๋งค๋ฒˆ ์ด ๊ณผ์ •์„ ๊ฑฐ์ณ์„œ ์•ก์„ธ์Šค ํ† ํฐ์„ ๋‹ค์‹œ ๋ฐœ๊ธ‰๋ฐ›์•„์•ผ ํ•œ๋‹ค๋ฉด ์‚ฌ์šฉ์ž ํŽธ์˜์„ฑ์— ์žˆ์–ด์„œ๋Š” ์ข‹์ง€ ์•Š์Œ โ†’ ๋ฆฌํ”„๋ ˆ์‹œ ํ† ํฐ ๊ฐ™์ด ๋ฐœ๊ธ‰

4. OAuth์˜ ์žฅ์ 

  • ์‰ฝ๊ณ  ์•ˆ์ „ํ•˜๊ฒŒ ์ƒˆ๋กœ์šด ์„œ๋น„์Šค ์ด์šฉ ๊ฐ€๋Šฅ

  • ๊ถŒํ•œ ์˜์—ญ ์„ค์ • ๊ฐ€๋Šฅ

Last updated