์ธ์ฆ ์ฝ”๋“œ ๋ถ€์—ฌ๋Š” ์•ก์„ธ์Šค ํ† ํฐ์„ ์–ป๊ณ  ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์‚ฌ์šฉ์ž ์ธ์ฆ ์ปจํ…์ŠคํŠธ์—์„œ API๋ฅผ ํ†ตํ•ด ๋ณดํ˜ธ๋œ ๋ฆฌ์†Œ์Šค์— ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ๋„๋ก ๊ถŒํ•œ์„ ๋ถ€์—ฌํ•˜๋Š” ๋„๋ฆฌ ์‚ฌ์šฉ๋˜๋Š” ์•ˆ์ „ํ•œ ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค. ์ด๋Š” ์œ„์ž„๋œ ์ธ์ฆ์„ ์œ„ํ•ด ๋งŽ์€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ์ž์ฃผ ์‚ฌ์šฉ๋˜๋Š” ์—…๊ณ„ ํ‘œ์ค€ ํ”„๋กœํ† ์ฝœ์ธ OAuth 2.0 ํ”„๋ ˆ์ž„์›Œํฌ์˜ ์ผ๋ถ€๋กœ, ๋ฏผ๊ฐํ•œ ์ •๋ณด๋ฅผ ๋ณดํ˜ธํ•˜๊ณ  ์ž๊ฒฉ ์ฆ๋ช…์„ ๋ถˆํ•„์š”ํ•˜๊ฒŒ ๊ณต์œ ํ•˜๋Š” ๊ฒƒ์„ ๋ฐฉ์ง€ํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ OAuth 2.0์„ ์‚ฌ์šฉํ•˜๋ฉด ํด๋ผ์ด์–ธํŠธ, ๋ฆฌ์†Œ์Šค ์†Œ์œ ์ž(์‚ฌ์šฉ์ž), ๋ฆฌ์†Œ์Šค ์„œ๋ฒ„ ๋ฐ ๊ถŒํ•œ ๋ถ€์—ฌ ์„œ๋ฒ„ ๊ฐ„์˜ ์—ญํ• ์„ ๋ถ„๋ฆฌํ•˜์—ฌ ์ž ์žฌ์ ์ธ ์ทจ์•ฝ์ ์˜ ์œ„ํ—˜์„ ์ค„์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ธ์ฆ ์ฝ”๋“œ ๋ถ€์—ฌ๋Š” ํด๋ผ์ด์–ธํŠธ๊ฐ€ ํด๋ผ์ด์–ธํŠธ ๋น„๋ฐ€์„ ์•ˆ์ „ํ•˜๊ฒŒ ์ €์žฅํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋ฐ€ ํด๋ผ์ด์–ธํŠธ(์˜ˆ: ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜)์— ํŠนํžˆ ์ ํ•ฉํ•ฉ๋‹ˆ๋‹ค.

์ธ์ฆ ์ฝ”๋“œ ๋ถ€์—ฌ ์ž‘๋™ ๋ฐฉ์‹:

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

AppMasterno-code ํ”Œ๋žซํผ์—์„œ๋Š” ์‹œ๊ฐ์ ์œผ๋กœ ์ƒ์„ฑ๋œ ๋น„์ฆˆ๋‹ˆ์Šค ํ”„๋กœ์„ธ์Šค๋ฅผ ํ†ตํ•ด Authorization Code Grant ์„ค์ •์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด AppMaster ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์€ ์™ธ๋ถ€ OAuth 2.0 ํ˜ธํ™˜ API์™€ ์•ˆ์ „ํ•˜๊ฒŒ ์ƒํ˜ธ ์ž‘์šฉํ•˜์—ฌ ์‚ฌ์šฉ์ž์—๊ฒŒ ์›ํ™œํ•˜๊ณ  ์•ˆ์ „ํ•œ ํ™˜๊ฒฝ์„ ์ œ๊ณตํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ AppMaster ์—์„œ ์ƒ์„ฑ๋œ REST API ๋ฐ WSS endpoints OAuth 2.0 ํ”„๋กœํ† ์ฝœ์˜ ์ ์ ˆํ•œ ๊ตฌํ˜„์„ ๋ณด์žฅํ•ฉ๋‹ˆ๋‹ค.

์ธ์ฆ ์ฝ”๋“œ ๋ถ€์—ฌ๋Š” ๊ฐ€์žฅ ์•ˆ์ „ํ•œ OAuth 2.0 ๋ถ€์—ฌ ์œ ํ˜•์ด๋ฉฐ ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— ๋„๋ฆฌ ์‚ฌ์šฉ๋˜์ง€๋งŒ ํ•„์š”ํ•œ ๋ณด์•ˆ ์กฐ์น˜๋ฅผ ๊ณ ๋ คํ•˜๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค. ํ•„์ˆ˜์ ์ธ ๋ณด์•ˆ ์ธก๋ฉด์€ ํ† ํฐ ๊ตํ™˜ ์ค‘์— ์‚ฌ์šฉ๋˜๋Š” ํด๋ผ์ด์–ธํŠธ์˜ ๋น„๋ฐ€์„ ๋ณดํ˜ธํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ณต์šฉ ํด๋ผ์ด์–ธํŠธ(์˜ˆ: ๋ชจ๋ฐ”์ผ ๋ฐ ๋‹จ์ผ ํŽ˜์ด์ง€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜)์˜ ๊ฒฝ์šฐ ํด๋ผ์ด์–ธํŠธ ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ์•ˆ์ „ํ•˜๊ฒŒ ์ €์žฅํ•  ์ˆ˜ ์—†๋Š” ๊ฒฝ์šฐ์—๋„ ํ”„๋กœ์„ธ์Šค๋ฅผ ๋ณดํ˜ธํ•˜๊ธฐ ์œ„ํ•ด PKCE(์ฝ”๋“œ ๊ตํ™˜์šฉ ์ฆ๋ช… ํ‚ค) ํ™•์žฅ์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.

์—…๊ณ„ ๋™ํ–ฅ์— ๋”ฐ๋ฅด๋ฉด ์œ„์ž„๋œ ์ธ์ฆ์„ ์•ˆ์ „ํ•˜๊ณ  ํšจ์œจ์ ์œผ๋กœ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ œ๊ณตํ•˜๋Š” OAuth 2.0 ๋ฐ ์ธ์ฆ ์ฝ”๋“œ ๋ถ€์—ฌ ์ฑ„ํƒ์ด ๊พธ์ค€ํžˆ ์ฆ๊ฐ€ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. AppMaster ์˜ no-code ํ”Œ๋žซํผ์„ ์‚ฌ์šฉํ•˜๋ฉด ์ธ์ฆ ์ฝ”๋“œ ๋ถ€์—ฌ์˜ ๊ตฌํ˜„ ๋ฐ ๊ด€๋ฆฌ๊ฐ€ ๋”์šฑ ์‰ฌ์›Œ์ ธ ๊ธฐ์—…์ด ๋ณด์•ˆ ์š”๊ตฌ ์‚ฌํ•ญ์„ ํšจ์œจ์ ์œผ๋กœ ์ถฉ์กฑํ•˜๊ณ  ์‚ฌ์šฉ์ž ๊ฒฝํ—˜์„ ๊ฐœ์„ ํ•˜๋ฉฐ ํ™•์žฅ์„ฑ์„ ์œ ์ง€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ฒฐ๋ก ์ ์œผ๋กœ, ์ธ์ฆ ์ฝ”๋“œ ๋ถ€์—ฌ๋Š” ์œ„์ž„๋œ ์ธ์ฆ์„ ํ†ตํ•ด ๋ณดํ˜ธ๋œ ๋ฆฌ์†Œ์Šค์— ๋Œ€ํ•œ ์•ˆ์ „ํ•œ ์•ก์„ธ์Šค๋ฅผ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•˜๋Š” OAuth 2.0 ํ”„๋ ˆ์ž„์›Œํฌ์˜ ํ•„์ˆ˜ ๋ถ€๋ถ„์ž…๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž ์ธ์ฆ์„ ์œ„ํ•œ ๊ฐ•๋ ฅํ•œ ์—…๊ณ„ ํ‘œ์ค€ ์†”๋ฃจ์…˜์„ ์ œ๊ณตํ•˜์—ฌ ์‚ฌ์šฉ์ž ๋ฐ์ดํ„ฐ์˜ ๊ธฐ๋ฐ€์„ฑ๊ณผ ๋ฌด๊ฒฐ์„ฑ์„ ๋ณด์žฅํ•ฉ๋‹ˆ๋‹ค. AppMasterno-code ํ”Œ๋žซํผ์€ ์ด๋Ÿฌํ•œ ์ธ์ฆ ์ฒด๊ณ„๋ฅผ ๊ตฌํ˜„ํ•˜๊ณ  ๊ด€๋ฆฌํ•˜๋Š” ํ”„๋กœ์„ธ์Šค๋ฅผ ํฌ๊ฒŒ ๋‹จ์ˆœํ™”ํ•˜์—ฌ ํด๋ผ์ด์–ธํŠธ๊ฐ€ ๋‹ค์–‘ํ•œ ์‚ฌ์šฉ ์‚ฌ๋ก€์— ๋งž๋Š” ์•ˆ์ „ํ•˜๊ณ  ํ™•์žฅ ๊ฐ€๋Šฅํ•˜๋ฉฐ ๋น„์šฉ ํšจ์œจ์ ์ธ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์‹ ์†ํ•˜๊ฒŒ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.