๋ฐฑ์๋ ๊ฐ๋ฐ ๋งฅ๋ฝ์์ ์ธ์ฆ์ 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 ์๊ฐ์ ์ผ๋ก ์์ฑํ ์ ์์ต๋๋ค. ์ด๋ฅผ ํตํด ์ ํ๋ฆฌ์ผ์ด์ ์์ฝ์์คํ ๋ด์์ ๋ณด๋ค ํฌ๊ด์ ์ด๊ณ ์ ์ง ๊ฐ๋ฅํ ์ธ์ฆ ๋ฐ ์๋น์ค ๊ด๋ฆฌ ์ ๊ทผ ๋ฐฉ์์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
์์ ํ ์ธ์ฆ ๋ฉ์ปค๋์ฆ์ ๊ฐ์ถ๋ ๊ฒ์ ์ค์ํ ๋ฐ์ดํฐ์ ์์คํ ๋ฆฌ์์ค๋ฅผ ๋ณดํธํ ๋ฟ๋ง ์๋๋ผ ์ฌ์ฉ์ ๊ฐ์ ์ ๋ขฐ๋ฅผ ๊ฐํํ์ฌ ์ค๋๋ ์ ์ ๋ ์ํธ ์ฐ๊ฒฐ๋๋ ์ธ์์์ ์ง์์ ์ธ ์ฑ์ฅ๊ณผ ์ฑ๊ณต์ ๋ณด์ฅํ๊ธฐ ๋๋ฌธ์ ๋ชจ๋ ์ ํ๋ฆฌ์ผ์ด์ ์์ ๊ฐ์ฅ ์ค์ํฉ๋๋ค. ๋ฐฑ์๋ ๊ฐ๋ฐ ์ปจํ ์คํธ ๋ด์์ ์ธ์ฆ์ ์ค์์ฑ๊ณผ ์ฌ์ฉ ๊ฐ๋ฅํ ๋ค์ํ ๊ธฐ์ ์ ์ดํดํจ์ผ๋ก์จ ๊ฐ๋ฐ์๋ ์ ์ ๋์ด๋๋ ์ฌ์ด๋ฒ ๋ณด์ ์ํ์ ๋ง์ค ์ ์๋ ๊ฐ๋ ฅํ๊ณ ์์ ํ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ค๊ณํ ์ ์์ต๋๋ค.