๋ฐฑ์—”๋“œ ๊ฐœ๋ฐœ ๋งฅ๋ฝ์—์„œ ์ธ์ฆ์€ API , ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋˜๋Š” ์„œ๋ฒ„์™€ ๊ฐ™์€ ๋ณดํ˜ธ๋œ ๋ฆฌ์†Œ์Šค์— ์•ก์„ธ์Šคํ•˜๋ ค๋Š” ์‚ฌ์šฉ์ž, ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋˜๋Š” ์‹œ์Šคํ…œ์˜ ID๋ฅผ ํ™•์ธํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋Š” ์ค‘์š”ํ•œ ๋ณด์•ˆ ์กฐ์น˜์ž…๋‹ˆ๋‹ค. ์ธ์ฆ์€ ๋ฐ์ดํ„ฐ ๋ฐ ์„œ๋น„์Šค์˜ ๊ธฐ๋ฐ€์„ฑ, ๋ฌด๊ฒฐ์„ฑ ๋ฐ ๊ฐ€์šฉ์„ฑ์„ ๋ณด์žฅํ•˜๋Š” ๋ฐ ํ•„์ˆ˜์ ์ž…๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์—๋Š” ๋ฌด๋‹จ ์•ก์„ธ์Šค๋ฅผ ๋ฐฉ์ง€ํ•˜๊ณ  ํ•ฉ๋ฒ•์ ์ธ ์‚ฌ์šฉ์ž ๋ฐ ์‹œ์Šคํ…œ๋งŒ ๋ณดํ˜ธ๋œ ๋ฆฌ์†Œ์Šค์™€ ์ƒํ˜ธ ์ž‘์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ์ผ๋ จ์˜ ๊ธฐ์ˆ  ๋ฐ ํ”„๋กœ์„ธ์Šค๊ฐ€ ํฌํ•จ๋ฉ๋‹ˆ๋‹ค.

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

์ตœ์‹  ๋ฐฑ์—”๋“œ ๊ฐœ๋ฐœ์—์„œ ์ธ์ฆ์€ ์ข…์ข… ๋‹ค์–‘ํ•œ ํ”„๋กœํ† ์ฝœ๊ณผ ํ‘œ์ค€์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ตฌํ˜„๋ฉ๋‹ˆ๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ ์‚ฌ์šฉ๋˜๋Š” ์ผ๋ถ€ ํ”„๋กœํ† ์ฝœ์—๋Š” API์— ๋Œ€ํ•œ ์•ก์„ธ์Šค ๊ถŒํ•œ์„ ๋ถ€์—ฌํ•˜๊ธฐ ์œ„ํ•œ ์‚ฌ์‹ค์ƒ์˜ ํ‘œ์ค€์ธ OAuth๊ฐ€ ํฌํ•จ๋ฉ๋‹ˆ๋‹ค. OAuth 2.0 ์œ„์— ๊ตฌ์ถ•๋œ ๋Œ€์ค‘์ ์ธ ์‹ ์› ๊ณ„์ธต์ธ OpenID Connect; ๋‹น์‚ฌ์ž ๊ฐ„์— ์ธ์ฆ ๋ฐ ๊ถŒํ•œ ๋ถ€์—ฌ ๋ฐ์ดํ„ฐ๋ฅผ ๊ตํ™˜ํ•˜๊ธฐ ์œ„ํ•œ ๊ฐ•๋ ฅํ•œ XML ๊ธฐ๋ฐ˜ ํ”„๋กœํ† ์ฝœ์ธ SAML. ์˜ˆ๋ฅผ ๋“ค์–ด AppMaster๋Š” Swagger(OpenAPI) ์„ค๋ช…์„œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ƒ์„ฑํ•˜๋Š” ์›น, ๋ชจ๋ฐ”์ผ ๋ฐ ๋ฐฑ์—”๋“œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— ๋Œ€ํ•œ ์ž๋™ ์ƒ์„ฑ ์„œ๋ฒ„ endpoints ์˜ ์ธ์ฆ ๋ฐ ๊ธฐํƒ€ ๋ณด์•ˆ ์ธก๋ฉด์„ ๊ด€๋ฆฌํ•˜๋Š” ๋ฐ ๋„์›€์„ ์ค๋‹ˆ๋‹ค.

๋ฐฑ์—”๋“œ ๊ฐœ๋ฐœ์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์ฃผ์š” ์ธ์ฆ ๋ฉ”์ปค๋‹ˆ์ฆ˜ ์œ ํ˜•์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  • ๊ธฐ๋ณธ ์ธ์ฆ: ์ด๊ฒƒ์€ ์‚ฌ์šฉ์ž์˜ ์ž๊ฒฉ ์ฆ๋ช…์ด ์š”์ฒญ ํ—ค๋”์—์„œ base64๋กœ ์ธ์ฝ”๋”ฉ๋œ ๋ฌธ์ž์—ด๋กœ ์ „์†ก๋˜๋Š” ๊ฐ€์žฅ ๊ฐ„๋‹จํ•œ ํ˜•ํƒœ์˜ ์ธ์ฆ์ž…๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๊ธฐ๋ณธ ์ธ์ฆ์€ ๋„์ฒญ ๋ฐ MITM(Man-in-the-Middle) ๊ณต๊ฒฉ์— ์ทจ์•ฝํ•˜๋ฏ€๋กœ ๋ฏผ๊ฐํ•œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—๋Š” ๊ถŒ์žฅ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
  • ํ† ํฐ ๊ธฐ๋ฐ˜ ์ธ์ฆ: JWT(JSON Web Token) ๋˜๋Š” ๋ถˆํˆฌ๋ช… ์•ก์„ธ์Šค ํ† ํฐ๊ณผ ๊ฐ™์€ ํ† ํฐ์€ ์ธ์ฆ ์„ฑ๊ณต ์‹œ ์ƒ์„ฑ๋œ ๋‹ค์Œ ํ›„์† ์š”์ฒญ์— ํฌํ•จ๋ฉ๋‹ˆ๋‹ค. ํ† ํฐ ๊ธฐ๋ฐ˜ ์ธ์ฆ์€ ๋‹จ์ˆœ์„ฑ, ์ƒํƒœ ๋น„์ €์žฅ ํŠน์„ฑ, ๋ถ„์‚ฐ ์‹œ์Šคํ…œ ๋ฐ SSO(Single Sign-On) ์‹œ๋‚˜๋ฆฌ์˜ค์— ๋Œ€ํ•œ ์ ํ•ฉ์„ฑ ๋•Œ๋ฌธ์— ์„ ํ˜ธ๋ฉ๋‹ˆ๋‹ค.
  • API ํ‚ค ๊ธฐ๋ฐ˜ ์ธ์ฆ: API ํ‚ค๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ ํŠน์ • API์— ๋Œ€ํ•œ ์•ก์„ธ์Šค ๊ถŒํ•œ์„ ๋ถ€์—ฌํ•˜๋Š” ๋ฐ ํ™œ์šฉ๋˜๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋˜๋Š” ์‚ฌ์šฉ์ž์—๊ฒŒ ํ• ๋‹น๋œ ๊ณ ์œ  ์‹๋ณ„์ž์ž…๋‹ˆ๋‹ค. API ํ‚ค๋Š” ์ˆ˜๋ช…์ด ๊ธธ๊ณ  ๋งŒ๋ฃŒ๋˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ํ† ํฐ ๊ธฐ๋ฐ˜ ์ธ์ฆ๋ณด๋‹ค ๋œ ์•ˆ์ „ํ•˜์—ฌ ๋„๋‚œ ๋ฐ ์˜ค์šฉ์— ๋” ์ทจ์•ฝํ•ฉ๋‹ˆ๋‹ค.
  • ๋‹ค๋‹จ๊ณ„ ์ธ์ฆ(MFA): MFA๋Š” ์‚ฌ์šฉ์ž๊ฐ€ ์•Œ๊ณ  ์žˆ๋Š” ๊ฒƒ(๋น„๋ฐ€๋ฒˆํ˜ธ), ์‚ฌ์šฉ์ž๊ฐ€ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ๊ฒƒ(ํ•˜๋“œ์›จ์–ด ํ† ํฐ ๋˜๋Š” ํœด๋Œ€ํฐ), ์‚ฌ์šฉ์ž๊ฐ€ ๋ฌด์—‡์ธ์ง€(์ƒ์ฒด ์ธ์‹). MFA๋Š” ๋ฌด๋‹จ ์•ก์„ธ์Šค์˜ ์œ„ํ—˜์„ ํฌ๊ฒŒ ์ค„์—ฌ์ฃผ๋ฏ€๋กœ ์ค‘์š”ํ•œ ๋ฐ์ดํ„ฐ ๋ฐ ์‹œ์Šคํ…œ์— ๋Œ€ํ•œ ์•ก์„ธ์Šค๋ฅผ ๋ณดํ˜ธํ•˜๋Š” ๋ฐ ์ ๊ทน ๊ถŒ์žฅ๋ฉ๋‹ˆ๋‹ค.

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

๋ฐฑ์—”๋“œ ๊ฐœ๋ฐœ์—์„œ ์ธ์ฆ์˜ ํ•„์ˆ˜ ์ธก๋ฉด์€ ์ „์ฒด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์•„ํ‚คํ…์ฒ˜์˜ ๋‹ค๋ฅธ ๊ตฌ์„ฑ ์š”์†Œ์™€์˜ ์›ํ™œํ•œ ํ†ตํ•ฉ์ž…๋‹ˆ๋‹ค. ๋ชจ๋ฐ”์ผ, ์›น ๋ฐ ๋ฐฑ์—”๋“œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋งŒ๋“œ๋Š” ๋ฐ ๋„์›€์ด no-code ํ”Œ๋žซํผ์ธ AppMaster ๋Š” ๊ฐ„์†Œํ™”๋œ ์ธ์ฆ ๊ตฌํ˜„์„ ์ œ๊ณตํ•˜๋Š” ์†”๋ฃจ์…˜์˜ ํ•œ ์˜ˆ์ž…๋‹ˆ๋‹ค. AppMaster ํ†ตํ•ด ๊ธฐ์—…์€ ๋ฐฑ์—”๋“œ ์†”๋ฃจ์…˜์„ ์œ„ํ•œ ๋ฐ์ดํ„ฐ ๋ชจ๋ธ, ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง, REST API ๋ฐ WSS endpoints ์‹œ๊ฐ์ ์œผ๋กœ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์—์ฝ”์‹œ์Šคํ…œ ๋‚ด์—์„œ ๋ณด๋‹ค ํฌ๊ด„์ ์ด๊ณ  ์œ ์ง€ ๊ฐ€๋Šฅํ•œ ์ธ์ฆ ๋ฐ ์„œ๋น„์Šค ๊ด€๋ฆฌ ์ ‘๊ทผ ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

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