Multi Auth Guide(SAML / LDAP)
๊ฐ์โ
์ด ๋ฌธ์๋ APIM ์์ SAML(Security Assertion Markup Language)๊ณผ LDAP(Active Directory) ์ธ์ฆ์ ๋๋ฉ์ธ๋ณ๋ก ์ค์ ํ๊ณ ์ด์ํ๋ ๋ฐฉ๋ฒ์ ๋ํ ๊ฐ์ด๋์ ๋๋ค.
๋ชฉ์ฐจโ
๊ธฐ๋ณธ ๊ฐ๋ โ
๋๋ฉ์ธ๋ณ ์ธ์ฆ ๋ถ๊ธฐ๋?โ
APIM BFF๋ ์ ์ํ๋ ๋๋ฉ์ธ์ ๋ฐ๋ผ ๋ค๋ฅธ ์ธ์ฆ ๋ฐฉ์์ ์ฌ์ฉํ ์ ์์ต๋๋ค:
- ๊ธฐ๋ณธ ์ธ์ฆ: ์ผ๋ฐ์ ์ธ Basic ์ธ์ฆ
- SAML ์ธ์ฆ: ํน์ ๋๋ฉ์ธ์์ SAML IDP๋ฅผ ํตํ ์ธ์ฆ
- LDAP ์ธ์ฆ: ํน์ ๋๋ฉ์ธ์์ LDAP/Active Directory๋ฅผ ํตํ ์ธ์ฆ
์ฌ์ฉ ์๋๋ฆฌ์คโ
์์ 1: SAML ์ธ์ฆ ๋๋ฉ์ธ
- ๋๋ฉ์ธ:ย
console1.xxx.com - ์ธ์ฆ ๋ฐฉ์: SAML IDP๋ฅผ ํตํ ์ธ์ฆ
- ํน์ง: ๋ก๊ทธ์์ ๋ฒํผ์ด ํ์๋์ง ์์ (IDP์์ ์ธ์ ๊ด๋ฆฌ)
์์ 2: LDAP ์ธ์ฆ ๋๋ฉ์ธ
- ๋๋ฉ์ธ:ย
console2.xxx.com - ์ธ์ฆ ๋ฐฉ์: LDAP/Active Directory ์ธ์ฆ
์์ 3: ๊ธฐ๋ณธ ์ธ์ฆ ๋๋ฉ์ธ
- ๋๋ฉ์ธ:ย
console3.xxx.comย (์ค์ ๋์ง ์์ ๋๋ฉ์ธ) - ์ธ์ฆ ๋ฐฉ์: Basic ์ธ์ฆ
์ค์ ๋ฐฉ๋ฒโ
1. ์ค์ ํ์ด์ง ์ ๊ทผโ
- APIM ์ฝ์์ ๊ด๋ฆฌ์ ๊ถํ์ผ๋ก ๋ก๊ทธ์ธ
- ์ข์ธก ๋ฉ๋ด์์ย ์ค์ ย ํด๋ฆญ
- ๋๋ฉ์ธ๋ณ ์ธ์ฆ ๋ฐฉ์ ๋ถ๊ธฐย ์น์ ์ผ๋ก ์คํฌ๋กค
2. ๋๋ฉ์ธ๋ณ ์ธ์ฆ ๋ถ๊ธฐ ํ์ฑํโ
- ๋๋ฉ์ธ๋ณ ์ธ์ฆ ๋ฐฉ์ ๋ถ๊ธฐย ์ค์์น๋ฅผย ON์ผ๋ก ์ค์
- ์ด ์ค์์น๊ฐ OFF์ด๋ฉด ๋ชจ๋ ๋๋ฉ์ธ์์ ๊ธฐ๋ณธ ์ธ์ฆ ๋ฐฉ์ ์ฌ์ฉ
3. SAML ์ธ์ฆ ์ค์ โ
SAML ์ธ์ฆ์ ์ฌ์ฉํ ๋๋ฉ์ธ ์ค์ :
- SAML ์ธ์ฆ ์ฝ์ ๋๋ฉ์ธย ์ค์์น๋ฅผย ON์ผ๋ก ์ค์
- SAML ์ฝ์ ๋๋ฉ์ธย ํ๋์ ๋๋ฉ์ธ ์ ๋ ฅ
4. LDAP ์ธ์ฆ ์ค์ โ
LDAP ์ธ์ฆ์ ์ฌ์ฉํ ๋๋ฉ์ธ ์ค์ :
- LDAP(AD) ์ธ์ฆ ์ฝ์ ๋๋ฉ์ธย ์ค์์น๋ฅผย ON์ผ๋ก ์ค์
- LDAP(AD) ์ฝ์ ๋๋ฉ์ธย ํ๋์ ๋๋ฉ์ธ ์ ๋ ฅ
- ์:ย
console1.xxx.com - ์ฃผ์: ํ๋กํ ์ฝ(
http://,ยhttps://)๊ณผ ํฌํธ ๋ฒํธ๋ ์ ๋ ฅํ์ง ๋ง์ธ์ - ์ฃผ์: ๊ฒฝ๋ก(
/path)๋ ์ ๋ ฅํ์ง ๋ง์ธ์
์ฌ๋ฐ๋ฅธ ์ ๋ ฅ ์์:
- โ
ย
console1.xxx.com - โ
ย
apim.company.com - โ
ย
console.example.co.kr
์๋ชป๋ ์ ๋ ฅ ์์:
- โย
https://console1.xxx.com - โย
console1.xxx.com:8080 - โย
console1.xxx.com/path
5. ์ค์ ์ ์ฅโ
- ๋ชจ๋ ์ค์ ์ ์๋ฃํ ํย ์ ์ฅย ๋ฒํผ ํด๋ฆญ
- ์ ์ฅ ์ฑ๊ณต ๋ฉ์์ง ํ์ธ
- ์ค์ ์ด ์ฆ์ ์ ์ฉ๋ฉ๋๋ค (์ฌ์์ ๋ถํ์)
6. ์ค์ ํ์ธโ
์ค์ ์ด ์ฌ๋ฐ๋ฅด๊ฒ ์ ์ฅ๋์๋์ง ํ์ธ:
- ์ค์ ํ์ด์ง๋ฅผ ์๋ก๊ณ ์นจ
- ์ ๋ ฅํ ๋๋ฉ์ธ๊ณผ ์ค์์น ์ํ ํ์ธ
- ๋ค๋ฅธ ๋ธ๋ผ์ฐ์ ๋ ์ํฌ๋ฆฟ ๋ชจ๋์์ ํด๋น ๋๋ฉ์ธ์ผ๋ก ์ ์ํ์ฌ ์ธ์ฆ ๋ฐฉ์ ํ์ธ
์ฃผ์ ๊ธฐ๋ฅโ
SAML ๋๋ฉ์ธ์์์ ๋์โ
1. ๋ก๊ทธ์์ ๋ฒํผ ์จ๊นโ
- SAML ๋๋ฉ์ธ์์๋ ํ๋ฉด ์๋จ์ ๋ก๊ทธ์์ ๋ฒํผ์ดย ์๋์ผ๋ก ์จ๊ฒจ์ง๋๋ค
- SAML ์ธ์ฆ์ IDP(Identity Provider)์์ ์ธ์ ์ ๊ด๋ฆฌํ๋ฏ๋ก ๋ณ๋์ ๋ก๊ทธ์์ ๋ฒํผ์ด ํ์ํ์ง ์์ต๋๋ค
2. ๋ก๊ทธ์์ ์ฒ๋ฆฌโ
- SAML ๋๋ฉ์ธ์์ ๋ก๊ทธ์์์ด ํ์ํ ๊ฒฝ์ฐ:
- ์ธ์ ํ์์์,
- ๋๋ ๋ธ๋ผ์ฐ์ ์ธ์ ์ข ๋ฃ
- SAML ๋๋ฉ์ธ์์ ์ธ์
๋ง๋ฃ ์:
- ์๋์ผ๋ก ๋ก๊ทธ์์ ์ฒ๋ฆฌ๋์ด ๋ก๊ทธ์ธ ํ์ด์ง๋ก ์ด๋ํฉ๋๋ค
์ผ๋ฐ ๋๋ฉ์ธ์์์ ๋์โ
- ๋ก๊ทธ์์ ๋ฒํผ์ด ์ ์์ ์ผ๋ก ํ์๋ฉ๋๋ค
- ์๋ฌ ๋ฐ์ ์ ์ผ๋ฐ์ ์ธ ์๋ฌ ๋ฉ์์ง๊ฐ ํ์๋ฉ๋๋ค
- ๊ธฐ๋ณธ ์ธ์ฆ ๋ฐฉ์์ด ์ฌ์ฉ๋ฉ๋๋ค
ํ๊ฒฝ ๋ณ์ ์ค์ โ
ํ์ ํ๊ฒฝ ๋ณ์โ
SAML ์ธ์ฆ์ ์ฌ์ฉํ๋ ค๋ฉด ๋ค์ ํ๊ฒฝ ๋ณ์๋ฅผ ์ค์ ํด์ผ ํฉ๋๋ค:
1. ๊ธฐ๋ณธ ๋ก๊ทธ์ธ URLโ
APIM_LOGIN_URL=https://login.example.com
- ๊ธฐ๋ณธ ์ธ์ฆ ๋ฐฉ์์์ ์ฌ์ฉ๋๋ ๋ก๊ทธ์ธ URL
- ๋ชจ๋ ๋๋ฉ์ธ์์ ๊ณตํต์ผ๋ก ์ฌ์ฉ (SAML ๋๋ฉ์ธ ์ ์ธ)
2. SAML ๋ก๊ทธ์ธ URL (SAML ๋๋ฉ์ธ ์ฌ์ฉ ์ ํ์)โ
APIM_SAML_LOGIN_URL=https://saml-idp.example.com/sso/login
- SAML ๋๋ฉ์ธ์์ ์ฌ์ฉ๋๋ ๋ก๊ทธ์ธ URL
- SAML IDP์ ๋ก๊ทธ์ธ ์๋ํฌ์ธํธ
- ์ฃผ์: SAML ๋๋ฉ์ธ์ ์ค์ ํ์ง๋ง ์ด ๋ณ์๊ฐ ์์ผ๋ฉด ๊ธฐ๋ณธ ๋ก๊ทธ์ธ URL์ด ์ฌ์ฉ๋ฉ๋๋ค
3. Tenant Manager URLโ
APIM_TENANT_MANAGER_URL=https://tenant-manager.example.com
- Tenant Manager ์๋น์ค URL
- ๋ก๊ทธ์์ ์ฒ๋ฆฌ ์ ์ฌ์ฉ
ํ๊ฒฝ ๋ณ์ ์ค์ ๋ฐฉ๋ฒโ
- Kubernetes ํ๊ฒฝ:
- ConfigMap ๋๋ Secret์ ํ๊ฒฝ ๋ณ์ ์ถ๊ฐ
- Deployment YAML ํ์ผ ์์ z