๐์ ์ฒ๊ธฐ ์ค๊ธฐ ๋๋น ๋ฌธ์ ํฌํจ | ๐ SSO, Kerberos, OAuth ์๋ฒฝ ์ ๋ณต
์์ฝ
SSO(Single Sign-On), Kerberos, OAuth์ ํต์ฌ ๊ฐ๋ ๊ณผ ๋์ ์๋ฆฌ, ์ฐจ์ด์ ์ ๋ช ํํ ์์๋ด ๋๋ค. ๊ฐ ์ธ์ฆ ๊ธฐ์ ์ ํน์ง๊ณผ ์ฅ๋จ์ ์ ๋น๊ต ๋ถ์ํ๊ณ , ์ ๋ณด์ฒ๋ฆฌ๊ธฐ์ฌ ์ค๊ธฐ ๋๋น ๋ฌธ์ ๋ ํฌํจํ์ฌ ์ธ์ฆ ์ ๋ฌธ๊ฐ๋ก ๊ฑฐ๋ญ๋์ธ์.
๐ ์ธ ๊ฐ์ง ์ธ์ฆ ๊ธฐ์ ๋น๊ต ์์ฝ
๊ตฌ๋ถ | SSO (Single Sign-On) | Kerberos | OAuth |
---|---|---|---|
์ฃผ์ ๋ชฉ์ | ์ธ์ฆ (Authentication) | ์ธ์ฆ (Authentication) | ๊ถํ ๋ถ์ฌ (Authorization) |
ํต์ฌ ๊ฐ๋ | ํ ๋ฒ์ ๋ก๊ทธ์ธ์ผ๋ก ์ฌ๋ฌ ์๋น์ค ์ด์ฉ | ํฐ์ผ ๊ธฐ๋ฐ ์ํธ ์ธ์ฆ | ๋น๋ฐ๋ฒํธ ์์ด ์์ ์ ๊ทผ ๊ถํ ์์ |
์ฌ์ฉ ํ๊ฒฝ | ์น ๊ธฐ๋ฐ ๊ธฐ์ ๋ด๋ถ ์์คํ , ํด๋ผ์ฐ๋ ์๋น์ค | ์ฃผ๋ก ๋ด๋ถ ๋คํธ์ํฌ (Windows Active Directory ๋ฑ) | ์ธ๋ถ ์๋น์ค ์ฐ๋, ์์ ๋ก๊ทธ์ธ, API ์ ๊ทผ |
๋ณด์ ๋ฐฉ์ | SAML, JWT ๋ฑ ํ ํฐ ๊ธฐ๋ฐ | ๋์นญํค ์ํธํ, ํฐ์ผ ๊ธฐ๋ฐ | Access Token ๊ธฐ๋ฐ |
๋น์ | ๋์ด๊ณต์ ์์ ์ด์ฉ๊ถ ๐ก | ์ํ๊ด ํฐ์ผ ์์คํ ๐๏ธ | ์ง ์ด์ ๋์ ์ถ์ ์นด๋ํค ๐ |
๐ค ์ธ์ฆ ๊ธฐ์ , ์ ์ค์ํ ๊น์?
์ค๋๋ ์ฐ๋ฆฌ๋ ์๋ง์ ์๋น์ค์ ์์คํ ์ ์ฌ์ฉํ๋ฉฐ ํ๋ฃจ์๋ ๋ช ๋ฒ์ฉ ๋ก๊ทธ์ธ์ ํฉ๋๋ค. ์ด๋ ์ฌ์ฉ์์ ์ ์์ ํ์ธํ๊ณ ์์ ํ ์ ๊ทผ์ ๋ณด์ฅํ๋ ๊ธฐ์ ์ด ๋ฐ๋ก '์ธ์ฆ'์ ๋๋ค. ๋ค์ํ ์ธ์ฆ ๊ธฐ์ ์ค์์๋ SSO, Kerberos, OAuth๋ ํ๋ IT ํ๊ฒฝ์ ํต์ฌ์ ์ธ ์ญํ ์ ๋ด๋นํ๊ณ ์์ต๋๋ค. ์ด ์ธ ๊ฐ์ง ๊ธฐ์ ์ ๊ฐ๋ ๊ณผ ์ฐจ์ด์ ์ ๋ช ํํ ์ดํดํ๊ณ , ์ ๋ณด์ฒ๋ฆฌ๊ธฐ์ฌ ์ค๊ธฐ ์ํ๊น์ง ๋๋นํด ๋ด ์๋ค.
SSO (Single Sign-On) - "ํ ๋ฒ์ ๋ก๊ทธ์ธ์ผ๋ก ๋ชจ๋ ๊ฒ์"
SSO(Single Sign-On) ๋ ๋ง ๊ทธ๋๋ก ํ ๋ฒ์ ์ธ์ฆ ๊ณผ์ ์ผ๋ก ์ฌ๋ฌ ๊ฐ์ ๋ค๋ฅธ ์๋น์ค์ ์๋์ผ๋ก ์ ์ํ ์ ์๊ฒ ํด์ฃผ๋ ์์คํ ์ ๋๋ค. ์ฌ์ฉ์๋ ์ฌ๋ฌ ๊ฐ์ ์์ด๋์ ๋น๋ฐ๋ฒํธ๋ฅผ ๊ธฐ์ตํ ํ์๊ฐ ์์ด ํธ๋ฆฌํ๊ณ , ๊ธฐ์ ์ ์ค์์์ ์ฌ์ฉ์์ ์ ๊ทผ์ ๊ด๋ฆฌํ ์ ์์ด ๋ณด์์ฑ์ด ํฅ์๋ฉ๋๋ค.
- ํต์ฌ ๊ฐ๋ : ์ค์ ์ธ์ฆ ์๋ฒ(IdP, Identity Provider)์์ ํ ๋ฒ ์ธ์ฆ๋ฐ์ผ๋ฉด, ํด๋น ์ธ์ฆ ์ ๋ณด๋ฅผ ๋ฐํ์ผ๋ก ๋ค๋ฅธ ์๋น์ค(SP, Service Provider)์ ์ถ๊ฐ ๋ก๊ทธ์ธ ์์ด ์ ๊ทผํฉ๋๋ค.
- ๋์ ๋ฐฉ์:
- ์ฌ์ฉ์๊ฐ ์๋น์ค(SP)์ ์ ๊ทผ์ ์๋ํฉ๋๋ค.
- ์๋น์ค(SP)๋ ์ฌ์ฉ์๋ฅผ ์ธ์ฆ ์๋ฒ(IdP)๋ก ๋ฆฌ๋๋ ์ ํฉ๋๋ค.
- ์ฌ์ฉ์๋ ์ธ์ฆ ์๋ฒ(IdP)์ ๋ก๊ทธ์ธํฉ๋๋ค.
- ์ธ์ฆ ์๋ฒ(IdP)๋ ์ธ์ฆ์ด ์๋ฃ๋์๋ค๋ ํ ํฐ(SAML, JWT ๋ฑ)์ ์์ฑํ์ฌ ์ฌ์ฉ์์๊ฒ ์ ๋ฌํฉ๋๋ค.
- ์ฌ์ฉ์๋ ์ด ํ ํฐ์ ๊ฐ์ง๊ณ ๋ค์ ์๋น์ค(SP)์ ์ ๊ทผํฉ๋๋ค.
- ์๋น์ค(SP)๋ ํ ํฐ์ ๊ฒ์ฆํ๊ณ ์ฌ์ฉ์์๊ฒ ์ ๊ทผ์ ํ์ฉํฉ๋๋ค.
- ์ฅ์ :
- ์ฌ์ฉ์ ํธ์์ฑ ์ฆ๋: ์ฌ๋ฌ ๊ฐ์ ๋น๋ฐ๋ฒํธ๋ฅผ ๊ด๋ฆฌํ ํ์๊ฐ ์์ต๋๋ค.
- ๋ณด์ ๊ฐํ: ์ค์์์ ์ ๊ทผ ์ ์ด๊ฐ ๊ฐ๋ฅํ๊ณ , ๋ค์ค ์ธ์ฆ(MFA)์ ์ ์ฉํ๊ธฐ ์ฉ์ดํฉ๋๋ค.
- ๊ด๋ฆฌ ํจ์จ์ฑ: ์ฌ์ฉ์ ๊ณ์ ๊ด๋ฆฌ๊ฐ ๊ฐ์ํ๋ฉ๋๋ค.
- ๋จ์ :
- ์ค์ ์ธ์ฆ ์๋ฒ ์์กด์ฑ: ์ธ์ฆ ์๋ฒ์ ์ฅ์ ๊ฐ ๋ฐ์ํ๋ฉด ๋ชจ๋ ์๋น์ค์ ๋ก๊ทธ์ธ์ด ๋ถ๊ฐ๋ฅํด์ง๋๋ค.
- ์ด๊ธฐ ๊ตฌ์ถ ๋น์ฉ: SSO ์์คํ ์ ๊ตฌ์ถํ๊ณ ์ฐ๋ํ๋ ๋ฐ ์๊ฐ๊ณผ ๋น์ฉ์ด ์์๋ฉ๋๋ค.
๐๏ธ Kerberos - "ํฐ์ผ ๊ธฐ๋ฐ์ ์ ๋ขฐํ ์ ์๋ ์ค์ฌ์"
์ปค๋ฒ๋ก์ค(Kerberos) ๋ ๊ทธ๋ฆฌ์ค ์ ํ์ ๋์ค๋ ๋จธ๋ฆฌ ์ ๋ฌ๋ฆฐ ๊ฐ '์ผ๋ฅด๋ฒ ๋ก์ค'์์ ์ด๋ฆ์ ๋ด ์ธ์ฆ ํ๋กํ ์ฝ๋ก, ๋คํธ์ํฌ ์์์ ์ ๋ขฐํ ์ ์๋ ์ 3์(KDC, Key Distribution Center)๋ฅผ ํตํด ์ฌ์ฉ์์ ์๋ฒ ๊ฐ์ ์ ์์ ์ํธ ์ธ์ฆํ๋ ๋ฐฉ์์ ๋๋ค. ๋์นญํค ์ํธํ ๊ธฐ๋ฒ์ ๊ธฐ๋ฐ์ผ๋ก ํ๋ฉฐ, ํ ๋ฒ ์ธ์ฆ์ ๋ฐ์ผ๋ฉด ์ผ์ ์๊ฐ ๋์ ์ ํจํ 'ํฐ์ผ'์ ๋ฐ๊ธ๋ฐ์ ์ฌ๋ฌ ์๋ฒ์ ์ ๊ทผํ ์ ์์ต๋๋ค.
- ํต์ฌ ๊ฐ๋ : ํฐ์ผ ๋ฐ๊ธ ์๋ฒ(KDC)๋ฅผ ํตํด ์ฌ์ฉ์์ ์๋น์ค๊ฐ ์๋ก๋ฅผ ์์ ํ๊ฒ ์ธ์ฆํฉ๋๋ค.
- ์ฃผ์ ๊ตฌ์ฑ ์์:
- KDC (Key Distribution Center): ํค ๋ถ๋ฐฐ ์ผํฐ๋ก, ๋ด๋ถ์ AS์ TGS๋ก ๊ตฌ์ฑ๋ฉ๋๋ค.
- AS (Authentication Server): ์ธ์ฆ ์๋ฒ. ์ฌ์ฉ์์ ์ ์์ ํ์ธํ๊ณ TGT(Ticket Granting Ticket)๋ฅผ ๋ฐ๊ธํฉ๋๋ค.
- TGS (Ticket Granting Server): ํฐ์ผ ๋ฐ๊ธ ์๋ฒ. TGT๋ฅผ ํ์ธํ๊ณ ํน์ ์๋น์ค์ ์ ๊ทผํ ์ ์๋ ์๋น์ค ํฐ์ผ(ST)์ ๋ฐ๊ธํฉ๋๋ค.
- ํด๋ผ์ด์ธํธ(์ฌ์ฉ์)
- ์๋ฒ(์๋น์ค)
- KDC (Key Distribution Center): ํค ๋ถ๋ฐฐ ์ผํฐ๋ก, ๋ด๋ถ์ AS์ TGS๋ก ๊ตฌ์ฑ๋ฉ๋๋ค.
- ๋์ ๋ฐฉ์:
- AS์ ์ธ์ฆ: ์ฌ์ฉ์๊ฐ AS์ ์์ ์ ์ ๋ณด๋ฅผ ๋ณด๋ด ์ธ์ฆ์ ์์ฒญํฉ๋๋ค.
- TGT ๋ฐ๊ธ: AS๋ ์ฌ์ฉ์๋ฅผ ์ธ์ฆํ๊ณ , TGS์ ์ ๊ทผํ ์ ์๋ ํฐ์ผ์ธ TGT๋ฅผ ๋ฐ๊ธํฉ๋๋ค.
- TGS์ ์๋น์ค ํฐ์ผ ์์ฒญ: ์ฌ์ฉ์๋ TGT๋ฅผ ๊ฐ์ง๊ณ TGS์ ํน์ ์๋น์ค์ ๋ํ ์ ๊ทผ ํฐ์ผ(ST)์ ์์ฒญํฉ๋๋ค.
- ์๋น์ค ํฐ์ผ(ST) ๋ฐ๊ธ: TGS๋ TGT๋ฅผ ๊ฒ์ฆํ๊ณ , ํด๋น ์๋น์ค์ ์ ๊ทผํ ์ ์๋ ST๋ฅผ ๋ฐ๊ธํฉ๋๋ค.
- ์๋น์ค ์ ๊ทผ: ์ฌ์ฉ์๋ ST๋ฅผ ๊ฐ์ง๊ณ ์ต์ข ์ ์ผ๋ก ์ํ๋ ์๋น์ค์ ์ ๊ทผํฉ๋๋ค.
- ์ฅ์ :
- ๊ฐ๋ ฅํ ๋ณด์: ๋ชจ๋ ํต์ ์ด ์ํธํ๋๊ณ , ์ํธ ์ธ์ฆ์ ํตํด ์ค๊ฐ์ ๊ณต๊ฒฉ์ ๋ฐฉ์งํฉ๋๋ค.
- SSO ์ง์: ํ ๋ฒ์ ์ธ์ฆ์ผ๋ก ์ฌ๋ฌ ์๋น์ค์ ์ ๊ทผ ๊ฐ๋ฅํฉ๋๋ค.
- ๋จ์ :
- KDC ์์กด์ฑ: KDC์ ์ฅ์ ๊ฐ ๋ฐ์ํ๋ฉด ์ ์ฒด ์์คํ ์ธ์ฆ์ด ๋ง๋น๋ฉ๋๋ค.
- ์๊ฐ ๋๊ธฐํ ํ์: ๋ชจ๋ ์์คํ ์ ์๊ฐ์ด ๋๊ธฐํ๋์ด์ผ ์ ์์ ์ผ๋ก ๋์ํฉ๋๋ค.
- ์ค์ ์ ๋ณต์ก์ฑ: ์ด๊ธฐ ๊ตฌ์ฑ ๋ฐ ๊ด๋ฆฌ๊ฐ ๋ณต์กํฉ๋๋ค.
OAuth - "๋น๋ฐ๋ฒํธ๋ฅผ ์ฃผ์ง ์๊ณ ๊ถํ๋ง ์์ํ๊ธฐ"
OAuth(Open Authorization) ๋ '์ธ์ฆ'๋ณด๋ค๋ '๊ถํ ๋ถ์ฌ(Authorization)' ๋ฅผ ์ํ ๊ฐ๋ฐฉํ ํ์ค ํ๋กํ ์ฝ์ ๋๋ค. ์ฌ์ฉ์๊ฐ ์์ ์ ๋น๋ฐ๋ฒํธ๋ฅผ ์ง์ ๋ค๋ฅธ ์๋น์ค์ ์ ๊ณตํ์ง ์๊ณ ๋, ํน์ ์๋น์ค๊ฐ ๊ฐ์ง ์์ ์ ์ ๋ณด๋ ๊ธฐ๋ฅ์ ๋ํ ์ ๊ทผ ๊ถํ์ ๋ค๋ฅธ ์ ํ๋ฆฌ์ผ์ด์ ์ ์์ ํ๊ฒ ์์ํ ์ ์๋๋ก ํด์ค๋๋ค.
์๋ฅผ ๋ค์ด, '๊ตฌ๊ธ ๊ณ์ ์ผ๋ก ๋ก๊ทธ์ธํ๊ธฐ' ๊ธฐ๋ฅ์ด ๋ฐ๋ก OAuth๋ฅผ ์ฌ์ฉํ๋ ๋ํ์ ์ธ ์ฌ๋ก์ ๋๋ค. ์ฌ์ฉ์๋ ์์ ์ ๊ตฌ๊ธ ๋น๋ฐ๋ฒํธ๋ฅผ ํด๋น ์น์ฌ์ดํธ์ ์๋ ค์ฃผ์ง ์๊ณ ๋, ๊ตฌ๊ธ์ด ์ฌ์ฉ์์ ์ ์์ ๋์ ์ธ์ฆํด์ฃผ๊ณ ์น์ฌ์ดํธ๋ ๊ทธ ๊ฒฐ๊ณผ๋ฅผ ์ ๋ขฐํ์ฌ ๋ก๊ทธ์ธ์ ํ์ฉํฉ๋๋ค.
- ํต์ฌ ๊ฐ๋ : ์ฌ์ฉ์์ ์์(๋ฐ์ดํฐ)์ ๋ํ ์ ๊ทผ ๊ถํ์ ์ 3์ ์ ํ๋ฆฌ์ผ์ด์ ์ ์์ ํ๊ฒ ์์ํฉ๋๋ค.
- ์ฃผ์ ์ฉ์ด:
- Resource Owner: ์ฌ์ฉ์ (์์์ ์์ ์)
- Client: ์ 3์ ์ ํ๋ฆฌ์ผ์ด์ (๊ถํ์ ์์ฒญํ๋ ์๋น์ค)
- Resource Server: ์์์ด ์ ์ฅ๋ ์๋ฒ (์: ๊ตฌ๊ธ ์๋ฒ)
- Authorization Server: ๊ถํ์ ๋ถ์ฌํ๊ณ Access Token์ ๋ฐ๊ธํ๋ ์๋ฒ
- ๋์ ๋ฐฉ์ (Authorization Code Grant Type ๊ธฐ์ค):
- ์ฌ์ฉ์๊ฐ Client์์ '๊ตฌ๊ธ๋ก ๋ก๊ทธ์ธ' ๋ฒํผ์ ํด๋ฆญํฉ๋๋ค.
- Client๋ ์ฌ์ฉ์๋ฅผ Authorization Server๋ก ๋ณด๋ ๋๋ค.
- ์ฌ์ฉ์๋ Authorization Server์ ๋ก๊ทธ์ธํ๊ณ , Client์๊ฒ ๊ถํ์ ๋ถ์ฌํ ์ง ๋์ํฉ๋๋ค.
- Authorization Server๋ Client์๊ฒ ์์ ์ฝ๋(Authorization Code)๋ฅผ ๋ฐ๊ธํฉ๋๋ค.
- Client๋ ์ด ์์ ์ฝ๋๋ฅผ ๊ฐ์ง๊ณ ๋ค์ Authorization Server์ Access Token์ ์์ฒญํฉ๋๋ค.
- Authorization Server๋ ์ฝ๋๋ฅผ ๊ฒ์ฆํ๊ณ Client์๊ฒ Access Token์ ๋ฐ๊ธํฉ๋๋ค.
- Client๋ Access Token์ ์ฌ์ฉํ์ฌ Resource Server์ ์๋ ์ฌ์ฉ์ ์ ๋ณด์ ์ ๊ทผํฉ๋๋ค.
- ์ฅ์ :
- ๋์ ๋ณด์์ฑ: ์ฌ์ฉ์์ ๋น๋ฐ๋ฒํธ๊ฐ ๋ ธ์ถ๋์ง ์์ต๋๋ค.
- ๊ถํ ๋ฒ์ ์ ์ด: ํน์ ๊ธฐ๋ฅ์ด๋ ์ ๋ณด์ ๋ํ ์ ๊ทผ ๊ถํ๋ง ์ ํ์ ์ผ๋ก ์์ํ ์ ์์ต๋๋ค.
- ํ์คํ: ๋๋ฆฌ ์ฌ์ฉ๋๋ ํ์ค ํ๋กํ ์ฝ๋ก ํ์ฅ์ฑ๊ณผ ํธํ์ฑ์ด ์ข์ต๋๋ค.
- ๋จ์ :
- ๋ณต์กํ ๊ตฌํ: ํ๋กํ ์ฝ์ ํ๋ฆ์ด ๋ค๋ฅธ ๋ฐฉ์์ ๋นํด ๋ณต์กํฉ๋๋ค.
๐ ์ ์ฒ๊ธฐ ์ค๊ธฐ ๋๋น ๋ฌธ์
๋ฌธ์ | ํ ๋ฒ์ ์์คํ ์ธ์ฆ์ ํตํด ์ฌ๋ฌ ์ ๋ณด์์คํ ์ ์ฌ์ธ์ฆ ์ ์ฐจ ์์ด ์ ๊ทผํ ์ ์๋ ํตํฉ ๋ก๊ทธ์ธ ๊ธฐ์ ์ ๋ฌด์์ธ๊ฐ? |
๋ต | |
์ ๋ต | ์ ๋ต ํ์ธํ๊ธฐ |
๋ฌธ์ | ์ค์ ์ง์ค์ ํค ๊ด๋ฆฌ ์๋ฒ(KDC)๋ฅผ ํตํด ์ฌ์ฉ์๋ฅผ ์ธ์ฆํ๊ณ , ํฐ์ผ(Ticket)์ ๊ธฐ๋ฐ์ผ๋ก ์๋น์ค์ ๋ํ ์ ๊ทผ์ ์ ์ดํ๋ ๋คํธ์ํฌ ์ธ์ฆ ํ๋กํ ์ฝ์ ๋ฌด์์ธ๊ฐ? |
๋ต | |
์ ๋ต | ์ ๋ต ํ์ธํ๊ธฐ |
๋ฌธ์ | ์ฌ์ฉ์๊ฐ ๋ค๋ฅธ ์น์ฌ์ดํธ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ์์ ์ ๋น๋ฐ๋ฒํธ๋ฅผ ์ ๊ณตํ์ง ์๊ณ , ํน์ ์์์ ๋ํ ์ ๊ทผ ๊ถํ์ ์์ ํ๊ฒ ์์ํ ์ ์๋๋ก ํ๋ ๊ฐ๋ฐฉํ ํ์ค ํ๋กํ ์ฝ์ ๋ฌด์์ธ๊ฐ? |
๋ต | |
์ ๋ต | ์ ๋ต ํ์ธํ๊ธฐ |