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 ์๋ํฌ์ธํธ ๋ฐ ๊ฒ์์ด๋ผ๋ ์ธ ๊ฐ์ง ํ์ ๊ตฌ์ฑ ์์๊ฐ ์์ต๋๋ค. ๊ฐ๊ฐ์ ๋ํด ์์ธํ ๋ ผ์ํด ๋ณด๊ฒ ์ต๋๋ค.
- ID ํ ํฐ: ID ํ ํฐ์ ์ธ์ฆ๋ ์ฌ์ฉ์์ ๋ํ ์ผ๋ จ์ ํด๋ ์์ด ํฌํจ๋ JWT(JSON ์น ํ ํฐ)์ ๋๋ค. OIDC์๋ "sub"(์ฃผ์ฒด ๋๋ ์ฌ์ฉ์ ์๋ณ์), "aud"(์ฒญ์ค ๋๋ ์๋๋ ์์ ์) ๋ฐ "iss"(ํ ํฐ์ ๋ฐํํ ๋ฐ๊ธ์ ๋๋ ์๋ณ ์ํฐํฐ)์ ๊ฐ์ ์ต์ํ์ ํ์ค ํด๋ ์ ์งํฉ์ด ํ์ํฉ๋๋ค. ๊ฐ๋ฐ์๋ ์ถ๊ฐ ์ฌ์ฉ์ ์ ๋ณด๋ฅผ ๋ํ๋ด๊ธฐ ์ํด ์ฌ์ฉ์ ์ง์ ํด๋ ์์ ์ ์ํ ์๋ ์์ต๋๋ค.
- Userinfo ๋์ : Userinfo ๋์ ์ ์ธ์ฆ๋ ์ฌ์ฉ์์ ๋ํ ํด๋ ์์ ๋ฐํํ๋ IdP์์ ์ ๊ณตํ๋ OAuth 2.0 ๋ณดํธ ๋ฆฌ์์ค์ ๋๋ค. ์ด๋ฌํ ํด๋ ์์ ์ผ๋ฐ์ ์ผ๋ก ํด๋ผ์ด์ธํธ ์ ํ๋ฆฌ์ผ์ด์ ์์ ์ด๋ฉ์ผ ์ฃผ์, ์ ์ฒด ์ด๋ฆ, ํ๋กํ ์ฌ์ง๊ณผ ๊ฐ์ ๋ณด๋ค ์์ธํ ์ฌ์ฉ์ ์ ๋ณด๋ฅผ ์ป๋ ๋ฐ ์ฌ์ฉ๋ฉ๋๋ค.
- ๊ฒ์: OIDC๋ IdP๊ฐ ๊ฒ์ํ ๋ฉํ๋ฐ์ดํฐ์ ๋์ ๊ฒ์์ ์ง์ํ๋ฏ๋ก ํด๋ผ์ด์ธํธ ์ ํ๋ฆฌ์ผ์ด์ ์ด IdP์ ์ํธ ์์ฉํ๋ ๋ฐ ํ์ํ endpoints, ์ง์ ๋ฒ์ ๋ฐ ๊ธฐํ ์ ๋ณด๋ฅผ ๋ ์ฝ๊ฒ ๊ตฌ์ฑํ ์ ์์ต๋๋ค. ์ด ๋ฉํ๋ฐ์ดํฐ๋ ์ผ๋ฐ์ ์ผ๋ก ์ ์๋ ค์ง ๊ฒ์ endpoint ์์ ์ฌ์ฉํ ์ ์์ผ๋ฉฐ ๋ฐํ์ ์ ํ๋ก๊ทธ๋๋ฐ ๋ฐฉ์์ผ๋ก ๊ฐ์ ธ์ฌ ์ ์์ต๋๋ค.
OIDC ์ฌ์์ ๋ค์ํ ์ ํ๋ฆฌ์ผ์ด์ ์ ํ, ์๊ตฌ ์ฌํญ ๋ฐ ๊ธฐ๋ฅ์ ์ถฉ์กฑํ๋ ์ฌ๋ฌ ํ์ค ํ๋ฆ์ ์ ์ํฉ๋๋ค. ๊ฐ์ฅ ๋๋ฆฌ ์ฌ์ฉ๋๋ ํ๋ฆ ์ค ์ผ๋ถ๋ ์ธ์ฆ ์ฝ๋ ํ๋ฆ(PKCE ํฌํจ ๋๋ ์ ์ธ), ์์์ ํ๋ฆ ๋ฐ ํ์ด๋ธ๋ฆฌ๋ ํ๋ฆ์ ๋๋ค. ๊ฐ ํ๋ฆ์ ์๋ก ๋ค๋ฅธ ์๊ตฌ ์ฌํญ์ ์ถฉ์กฑํ๊ณ ๋ค์ํ ์์ค์ ๋ณด์๊ณผ ๋ณต์ก์ฑ์ ์ ๊ณตํฉ๋๋ค.
AppMaster ํ๋ซํผ์ ๋งฅ๋ฝ์์ OIDC๋ฅผ ํ์ฉํ์ฌ ์น, ๋ฐฑ์๋ ๋ฐ ๋ชจ๋ฐ์ผ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ํ ์์ ํ๊ณ ์ํํ ์ธ์ฆ์ ๊ตฌํํ ์ ์์ต๋๋ค. AppMaster ๋๋ฆฌ ์ฌ์ฉ๋๋ IdP์ ํตํฉ๋์ด ๊ฐ๋ฐ์๊ฐ ์ฌ๋ฌ ์ฅ์น, ํ๋ซํผ ๋ฐ ์ ํ๋ฆฌ์ผ์ด์ ์์ ์ผ๊ด๋ ์ธ์ฆ ํ๊ฒฝ์ ์ ๊ณตํ ์ ์๋๋ก ํด์ค๋๋ค. ๋ํ OIDC๋ฅผ ํ์ฉํจ์ผ๋ก์จ AppMaster ์์ฑ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ณด์ ๊ฐํ, ๊ฐ๋ฐ ๋ ธ๋ ฅ ๊ฐ์, ์ฌ์ฉ์ ๊ฒฝํ ํฅ์์ ์ด์ ์ ๋๋ฆฌ๋ฏ๋ก ๋ ๋น ๋ฅด๊ณ ์์ ํ๋ฉฐ ๋น์ฉ ํจ๊ณผ์ ์ธ ์ ํ๋ฆฌ์ผ์ด์ ๊ฐ๋ฐ ํ๋ก์ธ์ค๊ฐ ๊ฐ๋ฅํด์ง๋๋ค.
๊ฒฐ๋ก ์ ์ผ๋ก OpenID Connect๋ ์น ๋ฐ ๋ชจ๋ฐ์ผ ์ํ๊ณ ์ ๋ฐ์ ๊ฑธ์ณ ์ต์ ์ฌ์ฉ์ ์ธ์ฆ์ ์ํ ์ฌ์ค์์ ํ์ค์ด ๋ ๊ฐ๋ ฅํ ์ธ์ฆ ๋ฐ ๊ถํ ๋ถ์ฌ ํ๋ ์์ํฌ์ ๋๋ค. ๊ฐ๋ ฅํ ๋ณด์ ๊ธฐ๋ฅ๊ณผ ์ํธ ์ด์ฉ์ฑ์ ํตํด OIDC๋ ๊ฐ๋ฐ์์ ์ต์ข ์ฌ์ฉ์ ๋ชจ๋์๊ฒ ์๋นํ ์ด์ ์ ์ ๊ณตํฉ๋๋ค. OIDC๋ฅผ AppMaster ํ๋ซํผ์ ํตํฉํจ์ผ๋ก์จ ๊ฐ๋ฐ์๋ ๊ฐ์ํ๋ ์ธ์ฆ ํ๋ก์ธ์ค, ํ์ํ ์ฌ์ฉ์ ๊ฒฝํ, ์์ ํ๊ณ ์์ ์ ์ธ ์ก์ธ์ค ๊ด๋ฆฌ ๋ณด์ฅ์ ํตํด ๊ณ ํ์ง ์ ํ๋ฆฌ์ผ์ด์ ์ ์ ๊ณตํ ์ ์์ต๋๋ค.