OIDC(OpenID Connect)๋Š” OAuth 2.0 ํ”„๋ ˆ์ž„์›Œํฌ ์œ„์—์„œ ์ž‘๋™ํ•˜๋Š” ์ธ์ฆ ๋ฐ ๊ถŒํ•œ ๋ถ€์—ฌ ํ”„๋กœํ† ์ฝœ์ž…๋‹ˆ๋‹ค. OIDC์˜ ์ฃผ์š” ๋ชฉํ‘œ๋Š” ์›น ๋ฐ ๋ชจ๋ฐ”์ผ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ์‚ฌ์šฉ์ž๋ฅผ ์ธ์ฆํ•˜๊ณ  ๋ณดํ˜ธ๋œ ๋ฆฌ์†Œ์Šค์— ๋Œ€ํ•œ ์•ก์„ธ์Šค๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ๋ฐฉ์‹์„ ํ‘œ์ค€ํ™”ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด๋Š” "ํด๋ ˆ์ž„"์ด๋ผ๊ณ  ์•Œ๋ ค์ง„ ์‚ฌ์šฉ์ž ์ •๋ณด๋ฅผ ์ „์†กํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์œ ์—ฐํ•˜๊ณ  ์ƒํ˜ธ ์šด์šฉ ๊ฐ€๋Šฅํ•˜๋ฉฐ ์•ˆ์ „ํ•œ ID ๊ณ„์ธต์„ ์ œ๊ณตํ•˜์—ฌ OAuth 2.0์˜ ๊ธฐ๋Šฅ์„ ํ™•์žฅํ•ฉ๋‹ˆ๋‹ค. OIDC๋Š” Google, Microsoft, Facebook๊ณผ ๊ฐ™์€ ์—ฌ๋Ÿฌ ์ฃผ์š” ๊ธฐ์ˆ  ์กฐ์ง์˜ ์ง€์›์„ ๋ฐ›์•„ OpenID Foundation์—์„œ ๊ฐœ๋ฐœ ๋ฐ ์œ ์ง€ ๊ด€๋ฆฌ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

OIDC๋Š” ์‚ฌ์šฉ์ž ์ •์˜ ์ธ์ฆ ์ฒด๊ณ„๋ฅผ ๊ตฌํ˜„ํ•  ๋•Œ ๊ฐœ๋ฐœ์ž๊ฐ€ ์ง๋ฉดํ•˜๋Š” ๋ช‡ ๊ฐ€์ง€ ์ฃผ์š” ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋ฏ€๋กœ ์ตœ์‹  ์‚ฌ์šฉ์ž ์ธ์ฆ ์†”๋ฃจ์…˜์˜ ํ•„์ˆ˜ ๊ตฌ์„ฑ ์š”์†Œ๊ฐ€ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๊ณผ์ œ์—๋Š” ๋น„๋ฐ€๋ฒˆํ˜ธ ์ €์žฅ์„ ์•ˆ์ „ํ•˜๊ฒŒ ์ฒ˜๋ฆฌํ•˜๊ณ , ์—ฌ๋Ÿฌ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ SSO(Single Sign-On)๋ฅผ ํ™œ์„ฑํ™”ํ•˜๊ณ , MFA(๋‹ค๋‹จ๊ณ„ ์ธ์ฆ) ์ง€์›์„ ์ œ๊ณตํ•˜๋Š” ๊ฒƒ์ด ํฌํ•จ๋ฉ๋‹ˆ๋‹ค. OIDC๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๊ฐœ๋ฐœ์ž๋Š” ์ธ์ฆ ์ฑ…์ž„์„ ์‹ ๋ขฐํ•  ์ˆ˜ ์žˆ๋Š” IdP(ID ๊ณต๊ธ‰์ž)์—๊ฒŒ ์˜คํ”„๋กœ๋“œํ•˜์—ฌ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ํŠน์ • ์š”๊ตฌ ์‚ฌํ•ญ์— ์ง‘์ค‘ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ํ‘œ์ค€ OIDC ํ๋ฆ„์—๋Š” ์‚ฌ์šฉ์ž, ํด๋ผ์ด์–ธํŠธ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜, ID ๊ณต๊ธ‰์ž(IdP)๋ผ๋Š” ์„ธ ๊ฐ€์ง€ ์ฃผ์š” ์—ญํ• ์ด ๊ด€๋ จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

  • ์‚ฌ์šฉ์ž: ์‚ฌ์šฉ์ž๋Š” ํด๋ผ์ด์–ธํŠธ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ๋ณดํ˜ธ๋œ ๋ฆฌ์†Œ์Šค์— ๋Œ€ํ•œ ์•ก์„ธ์Šค๋ฅผ ์›ํ•˜๋Š” ๊ฐœ์ธ์ž…๋‹ˆ๋‹ค.
  • ํด๋ผ์ด์–ธํŠธ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜: ํด๋ผ์ด์–ธํŠธ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์€ ํ•ด๋‹น ๊ธฐ๋Šฅ์„ ์ˆ˜ํ–‰ํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ์ž ์ •๋ณด์— ์•ก์„ธ์Šคํ•ด์•ผ ํ•˜๋Š” ์†Œํ”„ํŠธ์›จ์–ด์ž…๋‹ˆ๋‹ค. AppMaster ํ”Œ๋žซํผ์˜ ๋งฅ๋ฝ์—์„œ ์ด๋Š” ํ”Œ๋žซํผ์˜ ์ง๊ด€์ ์ธ no-code ๋„๊ตฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ตฌ์ถ•๋œ ์›น ๋˜๋Š” ๋ชจ๋ฐ”์ผ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ID ๊ณต๊ธ‰์ž(IdP): ID ๊ณต๊ธ‰์ž๋Š” ์‚ฌ์šฉ์ž๋ฅผ ์ธ์ฆํ•˜๊ณ  ๋ณดํ˜ธ๋œ ๋ฆฌ์†Œ์Šค์— ์•ก์„ธ์Šคํ•˜๋Š” ๋ฐ ํ•„์š”ํ•œ ํ† ํฐ์„ ์ƒ์„ฑํ•˜๋Š” ์—ญํ• ์„ ๋‹ด๋‹นํ•˜๋Š” ์„œ๋ฒ„์ž…๋‹ˆ๋‹ค. IdP๋Š” Google, Apple, Facebook, Microsoft ๋˜๋Š” OIDC ํ‘œ์ค€์„ ๊ตฌํ˜„ํ•˜๋Š” ๊ธฐํƒ€ ์„œ๋น„์Šค์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

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

OIDC์—๋Š” ID ํ† ํฐ, Userinfo ์—”๋“œํฌ์ธํŠธ ๋ฐ ๊ฒ€์ƒ‰์ด๋ผ๋Š” ์„ธ ๊ฐ€์ง€ ํ•„์ˆ˜ ๊ตฌ์„ฑ ์š”์†Œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ๊ฐ์— ๋Œ€ํ•ด ์ž์„ธํžˆ ๋…ผ์˜ํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

  1. ID ํ† ํฐ: ID ํ† ํฐ์€ ์ธ์ฆ๋œ ์‚ฌ์šฉ์ž์— ๋Œ€ํ•œ ์ผ๋ จ์˜ ํด๋ ˆ์ž„์ด ํฌํ•จ๋œ JWT(JSON ์›น ํ† ํฐ)์ž…๋‹ˆ๋‹ค. OIDC์—๋Š” "sub"(์ฃผ์ฒด ๋˜๋Š” ์‚ฌ์šฉ์ž ์‹๋ณ„์ž), "aud"(์ฒญ์ค‘ ๋˜๋Š” ์˜๋„๋œ ์ˆ˜์‹ ์ž) ๋ฐ "iss"(ํ† ํฐ์„ ๋ฐœํ–‰ํ•œ ๋ฐœ๊ธ‰์ž ๋˜๋Š” ์‹๋ณ„ ์—”ํ„ฐํ‹ฐ)์™€ ๊ฐ™์€ ์ตœ์†Œํ•œ์˜ ํ‘œ์ค€ ํด๋ ˆ์ž„ ์ง‘ํ•ฉ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ๊ฐœ๋ฐœ์ž๋Š” ์ถ”๊ฐ€ ์‚ฌ์šฉ์ž ์ •๋ณด๋ฅผ ๋‚˜ํƒ€๋‚ด๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ์ž ์ง€์ • ํด๋ ˆ์ž„์„ ์ •์˜ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.
  2. Userinfo ๋์ : Userinfo ๋์ ์€ ์ธ์ฆ๋œ ์‚ฌ์šฉ์ž์— ๋Œ€ํ•œ ํด๋ ˆ์ž„์„ ๋ฐ˜ํ™˜ํ•˜๋Š” IdP์—์„œ ์ œ๊ณตํ•˜๋Š” OAuth 2.0 ๋ณดํ˜ธ ๋ฆฌ์†Œ์Šค์ž…๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ํด๋ ˆ์ž„์€ ์ผ๋ฐ˜์ ์œผ๋กœ ํด๋ผ์ด์–ธํŠธ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ์ด๋ฉ”์ผ ์ฃผ์†Œ, ์ „์ฒด ์ด๋ฆ„, ํ”„๋กœํ•„ ์‚ฌ์ง„๊ณผ ๊ฐ™์€ ๋ณด๋‹ค ์ž์„ธํ•œ ์‚ฌ์šฉ์ž ์ •๋ณด๋ฅผ ์–ป๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.
  3. ๊ฒ€์ƒ‰: OIDC๋Š” IdP๊ฐ€ ๊ฒŒ์‹œํ•œ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ์˜ ๋™์  ๊ฒ€์ƒ‰์„ ์ง€์›ํ•˜๋ฏ€๋กœ ํด๋ผ์ด์–ธํŠธ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด IdP์™€ ์ƒํ˜ธ ์ž‘์šฉํ•˜๋Š” ๋ฐ ํ•„์š”ํ•œ endpoints, ์ง€์› ๋ฒ”์œ„ ๋ฐ ๊ธฐํƒ€ ์ •๋ณด๋ฅผ ๋” ์‰ฝ๊ฒŒ ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ ์ž˜ ์•Œ๋ ค์ง„ ๊ฒ€์ƒ‰ endpoint ์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ ๋Ÿฐํƒ€์ž„ ์‹œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๋ฐฉ์‹์œผ๋กœ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

OIDC ์‚ฌ์–‘์€ ๋‹ค์–‘ํ•œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์œ ํ˜•, ์š”๊ตฌ ์‚ฌํ•ญ ๋ฐ ๊ธฐ๋Šฅ์„ ์ถฉ์กฑํ•˜๋Š” ์—ฌ๋Ÿฌ ํ‘œ์ค€ ํ๋ฆ„์„ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค. ๊ฐ€์žฅ ๋„๋ฆฌ ์‚ฌ์šฉ๋˜๋Š” ํ๋ฆ„ ์ค‘ ์ผ๋ถ€๋Š” ์ธ์ฆ ์ฝ”๋“œ ํ๋ฆ„(PKCE ํฌํ•จ ๋˜๋Š” ์ œ์™ธ), ์•”์‹œ์  ํ๋ฆ„ ๋ฐ ํ•˜์ด๋ธŒ๋ฆฌ๋“œ ํ๋ฆ„์ž…๋‹ˆ๋‹ค. ๊ฐ ํ๋ฆ„์€ ์„œ๋กœ ๋‹ค๋ฅธ ์š”๊ตฌ ์‚ฌํ•ญ์„ ์ถฉ์กฑํ•˜๊ณ  ๋‹ค์–‘ํ•œ ์ˆ˜์ค€์˜ ๋ณด์•ˆ๊ณผ ๋ณต์žก์„ฑ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

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

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