๋ฉ๋ชจ. ๋ฒ์ญ: Okta์ ์ด ํ๋ฅญํ ๊ธฐ์ฌ๋ OAuth ๋ฐ OIDC(OpenID Connect)๊ฐ ์๋ํ๋ ๋ฐฉ์์ ๊ฐ๋จํ๊ณ ๋ช ํํ๊ฒ ์ค๋ช ํฉ๋๋ค. ์ด ์ง์์ ๊ฐ๋ฐ์, ์์คํ ๊ด๋ฆฌ์, ์ฌ์ง์ด ๋ค๋ฅธ ์๋น์ค์ ๊ธฐ๋ฐ ๋ฐ์ดํฐ๋ฅผ ๊ตํํ ๊ฐ๋ฅ์ฑ์ด ๊ฐ์ฅ ๋์ ์ธ๊ธฐ ์๋ ์น ์ ํ๋ฆฌ์ผ์ด์ ์ "์ผ๋ฐ ์ฌ์ฉ์"์๊ฒ๋ ์ ์ฉํ ๊ฒ์ ๋๋ค.
์ธํฐ๋ท ์๊ธฐ์๋์๋ ์๋น์ค ๊ฐ ์ ๋ณด ๊ณต์ ๊ฐ ์ฌ์ ๋ค. ํ ์๋น์ค์์ ๋ค๋ฅธ ์๋น์ค๋ก ๋ก๊ทธ์ธ๊ณผ ์ํธ๋ฅผ ์ ๊ณตํ๊ธฐ๋ง ํ๋ฉด ๊ทธ๊ฐ ๊ทํ์ ๊ณ์ ์ ๋ค์ด๊ฐ ํ์ํ ์ ๋ณด๋ฅผ ๋ฐ์ ์ ์์ต๋๋ค.
"์ํ๊ณ์ข๋ฅผ ์ฃผ์ธ์." โ๋น๋ฐ๋ฒํธ์ ๋๋ง ์์ผ๋ฉด ๋ชจ๋ ๊ฒ์ด ์ ๋ ๊ฒ์ ์ฝ์๋๋ฆฝ๋๋ค. ์ ์งํ๋ค, ์ ์งํ๋ค!" *ํํ*
๊ณตํฌ! ์ด๋ ๋๊ตฌ๋ ์ฌ์ฉ์์๊ฒ ์ฌ์ฉ์ ์ด๋ฆ๊ณผ ์ํธ๋ฅผ ๊ณต์ ํ๋๋ก ์๊ตฌํด์๋ ์ ๋ฉ๋๋ค. ์ ์์ฅ, ๋ค๋ฅธ ์๋น์ค์ ํจ๊ป. ์ด ์๋น์ค๋ฅผ ์ ๊ณตํ๋ ์กฐ์ง์ด ๋ฐ์ดํฐ๋ฅผ ์์ ํ๊ฒ ์ ์งํ๊ณ ํ์ ์ด์์ ๊ฐ์ธ ์ ๋ณด๋ฅผ ์์งํ์ง ์๋๋ค๋ ๋ณด์ฅ์ ์์ต๋๋ค. ์ด์ํ๊ฒ ๋ค๋ฆด์ง ๋ชจ๋ฅด์ง๋ง ์ผ๋ถ ์ฑ์ ์ฌ์ ํ โโ์ด ๋ฐฉ๋ฒ์ ์ฌ์ฉํฉ๋๋ค!
์ค๋๋ ํ๋์ ์๋น์ค๊ฐ ๋ค๋ฅธ ์๋น์ค์ ๋ฐ์ดํฐ๋ฅผ ์์ ํ๊ฒ ์ฌ์ฉํ ์ ์๋๋ก ํ๋ ๋จ์ผ ํ์ค์ด ์์ต๋๋ค. ๋ถํํ๊ฒ๋ ๊ทธ๋ฌํ ํ์ค์ ๋ง์ ์ ๋ฌธ ์ฉ์ด์ ์ฉ์ด๋ฅผ ์ฌ์ฉํ์ฌ ์ดํด๋ฅผ ๋ณต์กํ๊ฒ ๋ง๋ญ๋๋ค. ์ด ์๋ฃ์ ๋ชฉ์ ์ ๊ฐ๋จํ ์ฝํ๋ฅผ ์ฌ์ฉํ์ฌ ์๋ ๋ฐฉ์์ ์ค๋ช ํ๋ ๊ฒ์ ๋๋ค(์ ๊ทธ๋ฆผ์ด ์์ด๋ค์ ์น ํ๊ธฐ์ ๋น์ทํ๋ค๊ณ ์๊ฐํ์ญ๋๊น? ์ค ๊ทธ๋ ๊ตฐ์!).
๊ทธ๋ฐ๋ฐ ์ด ๊ฐ์ด๋๋ ๋น๋์ค ํ์์ผ๋ก๋ ์ ๊ณต๋ฉ๋๋ค.
์ ์ฌ ์๋ ์ฌ๋ฌ๋ถ ํ์ํฉ๋๋ค: OAuth 2.0
์๋ฅผ ๋ค์ด "Unlucky Pun of the Day"๋ผ๋ ์ฌ์ดํธ๋ฅผ ๋ฐ๊ฒฌํ๋ค๊ณ ๊ฐ์ ํด ๋ณด๊ฒ ์ต๋๋ค. [์ค๋์ ๋์ฐํ ๋ง์ฅ๋] ์ ํ๋ก ๋ฌธ์ ๋ฉ์์ง ํํ๋ก ๋งค์ผ ๋ง์ฅ๋์ ๋ฐ๊ธฐ ์ํด ๋ฑ๋กํ๊ธฐ๋ก ๊ฒฐ์ ํ์ต๋๋ค. ์ฌ์ดํธ๊ฐ ์ ๋ง ๋ง์์ ๋ค์๊ณ ๋ชจ๋ ์น๊ตฌ๋ค๊ณผ ๊ณต์ ํ๊ธฐ๋ก ๊ฒฐ์ ํ์ต๋๋ค. ๊ฒฐ๊ตญ, ๋ชจ๋๊ฐ ์๋ฆ ๋ผ์น๋ ๋ง์ฅ๋์ ์ข์ํฉ๋๋ค, ๊ทธ๋ ์ฃ ?
โ์ค๋์ ๋ถํํ ๋ง์ฅ๋: ์ผ์ชฝ ๋ฐ์ ์ ์์ ์ฌ๋์ ๋ํด ๋ค์์ด? ์ด์ ๊ทธ๋ ํญ์ ์ณ์ต๋๋ค!โ (๋๋ต์ ์ธ ๋ฒ์ญ, ์๋ณธ์๋ ๊ณ ์ ํ ๋ง์ฅ๋์ด ์๊ธฐ ๋๋ฌธ์ ๋๋ต์ ์ธ ๋ฒ์ญ์
๋๋ค.)
์ฐ๋ฝ์ฒ ๋ชฉ๋ก์์ ๊ฐ ์ฌ๋์๊ฒ ํธ์ง๋ฅผ ์ฐ๋ ๊ฒ์ ์ ํ ์ฌํญ์ด ์๋์ด ๋ถ๋ช ํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ๋น์ ์ด ๋์ ์กฐ๊ธ์ด๋ผ๋ ๊ฐ๋ค๋ฉด ๋ถํ์ํ ์ผ์ ํผํ๊ธฐ ์ํด ๋ฌด์จ ์ง์ด๋ ํ ๊ฒ์ ๋๋ค. ๋คํ์ค๋ฝ๊ฒ๋ ์ค๋์ ๋์ฐํ ๋ง์ฅ๋์ ํผ์์ ๋ชจ๋ ์น๊ตฌ๋ค์ ์ด๋ํ ์ ์์ต๋๋ค! ์ด๋ ๊ฒ ํ๋ ค๋ฉด ์ฐ๋ฝ์ฒ์ ์ด๋ฉ์ผ์ ๋ํ ์ก์ธ์ค๋ฅผ ์ด๋ฉด ๋ฉ๋๋ค. ์ฌ์ดํธ ์์ฒด์์ ์ด๋์ฅ์ ๋ณด๋ ๋๋ค(OAuth ๊ท์น)!
โ๋ชจ๋ ๋ง์ฅ๋์ ์ข์ํฉ๋๋ค! - ์ด๋ฏธ ๋ก๊ทธ์ธํ์
จ์ต๋๊น? โTerrible Pun of the Day ์น ์ฌ์ดํธ์์ ์ฐ๋ฝ์ฒ ๋ชฉ๋ก์ ์ก์ธ์คํ๋๋ก ํ์ฉํ์๊ฒ ์ต๋๊น? - ๊ฐ์ฌํฉ๋๋ค! ์ง๊ธ๋ถํฐ ์ฐ๋ฆฌ๋ ์๊ฐ์ด ๋๋ ๋๊น์ง ๋น์ ์ด ์๋ ๋ชจ๋ ์ฌ๋์๊ฒ ๋งค์ผ ์๋ฆผ์ ๋ณด๋ผ ๊ฒ์
๋๋ค! ๋น์ ์ ์ต๊ณ ์ ์น๊ตฌ์
๋๋ค!"
- ์ด๋ฉ์ผ ์๋น์ค๋ฅผ ์ ํํ์ธ์.
- ํ์ํ ๊ฒฝ์ฐ ๋ฉ์ผ ์ฌ์ดํธ๋ก ์ด๋ํ์ฌ ๊ณ์ ์ ๋ก๊ทธ์ธํฉ๋๋ค.
- ๋์ฐํ ๋ง์ฅ๋์ ์ฐ๋ฝ์ฒ์ ์ก์ธ์คํ ์ ์๋ ๊ถํ์ ๋ถ์ฌํ์ธ์.
- ์ค๋์ ๋์ฐํ ๋ง์ฅ๋ ์ฌ์ดํธ๋ก ๋์๊ฐ๋๋ค.
๋ง์์ด ๋ฐ๋ ๊ฒฝ์ฐ๋ฅผ ๋๋นํ์ฌ OAuth๋ฅผ ์ฌ์ฉํ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ก์ธ์ค ๊ถํ์ ์ทจ์ํ ์ ์๋ ๋ฐฉ๋ฒ๋ ์ ๊ณตํฉ๋๋ค. ๋ ์ด์ ์ค๋์ ๋์ฐํ ๋ง์ฅ๋๊ณผ ์ฐ๋ฝ์ฒ๋ฅผ ๊ณต์ ํ์ง ์๊ธฐ๋ก ๊ฒฐ์ ํ๋ฉด ๋ฉ์ผ ์ฌ์ดํธ๋ก ์ด๋ํ์ฌ ์น์ธ๋ ์์ฉ ํ๋ก๊ทธ๋จ ๋ชฉ๋ก์์ ๋ง์ฅ๋ ์ฌ์ดํธ๋ฅผ ์ ๊ฑฐํ ์ ์์ต๋๋ค.
OAuth ํ๋ฆ
์ฐ๋ฆฌ๋ ์ผ๋ฐ์ ์ผ๋ก ๋ถ๋ฆฌ๋ ๊ฒ์ ๋ฐฉ๊ธ ํต๊ณผํ์ต๋๋ค. ํ๋ฆ [ํ๋ฆ] OAuth. ์ด ์์์ ์ด ํ๋ฆ์ ๋ ์๋น์ค๊ฐ ์์ ํ ์ ๋ณด ๊ตํ์ ๋์ํ๋ ๋ช ๊ฐ์ง ๋ณด์ด์ง ์๋ ๋จ๊ณ๋ฟ๋ง ์๋๋ผ ๋ณด์ด๋ ๋จ๊ณ๋ก ๊ตฌ์ฑ๋ฉ๋๋ค. ์ด์ ์ ๋์ฐํ ๋ง์ฅ๋ ์๋ "๊ถํ ๋ถ์ฌ ์ฝ๋" ํ๋ฆ์ผ๋ก ์๋ ค์ง ๊ฐ์ฅ ์ผ๋ฐ์ ์ธ OAuth 2.0 ํ๋ฆ์ ์ฌ์ฉํฉ๋๋ค. ["์ธ์ฆ ์ฝ๋" ํ๋ฆ].
OAuth ์๋ ๋ฐฉ์์ ๋ํด ์์ธํ ์์๋ณด๊ธฐ ์ ์ ๋ช ๊ฐ์ง ์ฉ์ด์ ์๋ฏธ์ ๋ํด ์ด์ผ๊ธฐํด ๋ณด๊ฒ ์ต๋๋ค.
- ๋ฆฌ์์ค ์์ ์:
๊ทธ๊ฑด ๋๋ค! ๊ทํ๋ ๊ทํ์ ์๊ฒฉ ์ฆ๋ช ๊ณผ ๋ฐ์ดํฐ๋ฅผ ์์ ํ๊ณ ๊ทํ์ ๊ณ์ ์์ ์ํ๋ ์ ์๋ ๋ชจ๋ ํ๋์ ์ ์ดํฉ๋๋ค. - Client:
์ฌ์ฉ์๋ฅผ ๋์ ํ์ฌ ํน์ ์์ ์ ์ก์ธ์คํ๊ฑฐ๋ ์ํํ๋ ค๋ ์ ํ๋ฆฌ์ผ์ด์ (์: ์ค๋์ ๋์ฐํ ๋ง์ฅ๋ ์๋น์ค) ๋ฆฌ์์ค ์์ ์'์. - ์ธ์ฆ ์๋ฒ:
์๋ ์ฑ ๋ฆฌ์์ค ์์ ์'a ๊ทธ๋ฆฌ๊ณ u ๋ฆฌ์์ค ์์ ์์ด๋ฏธ ๊ณ์ ์ด ์์ต๋๋ค. - ๋ฆฌ์์ค ์๋ฒ:
์ ํ๋ฆฌ์ผ์ด์ ํ๋ก๊ทธ๋๋ฐ ์ธํฐํ์ด์ค(API) ๋๋ ์๋น์ค Client ๋์ ์ฌ์ฉํ๊ณ ์ ๋ฆฌ์์ค ์์ ์'์. - ๋ฆฌ๋๋ ์
URI:
๊ทธ ๋งํฌ ์ธ์ฆ ์๋ฒ ๋ฆฌ๋๋ ์ ํฉ๋๋ค ๋ฆฌ์์ค ์์ ์' ๊ถํ์ ๋ถ์ฌํ ํ Client'์. "์ฝ๋ฐฑ URL"์ด๋ผ๊ณ ๋ ํฉ๋๋ค. - ์๋ต ์ ํ:
๋ฐ์ ๊ฒ์ผ๋ก ์์๋๋ ์ ๋ณด์ ์ ํ Client. ๊ฐ์ฅ ์ผ๋ฐ์ ์ธ ์๋ต ์ ํ'์ด์ ์ฝ๋์ ๋๋ค. Client ๋ฐ์ ๊ฒ์ผ๋ก ๊ธฐ๋ํ๋ค ์ธ์ฆ ์ฝ๋. - ๋ฒ์:
ํ์ํ ๊ถํ์ ๋ํ ์์ธํ ์ค๋ช ์ ๋๋ค. Client๋ฐ์ดํฐ ์ก์ธ์ค ๋๋ ํน์ ์์ ์ํ๊ณผ ๊ฐ์ 'y. - ๋์:
์ธ์ฆ ์๋ฒ ๊ฑธ๋ฆฐ๋ค ๋ฒ์์์ฒญ Client์ด, ๊ทธ๋ฆฌ๊ณ ๋ฌป๋๋ค ๋ฆฌ์์ค ์์ ์'a, ๊ทธ๊ฐ ์ ๊ณตํ ์ค๋น๊ฐ ๋์์ต๋๊น? Client'์ ์ ํ ๊ถํ์ด ์์ต๋๋ค. - ๊ณ ๊ฐ ID:
์ด ID๋ ์๋ณํ๋ ๋ฐ ์ฌ์ฉ๋ฉ๋๋ค. Client์ ์ธ์ฆ ์๋ฒ'์ด์ํ. - ๊ณ ๊ฐ ๋น๋ฐ:
๋ณธ์ธ๋ง ์๋ ๋น๋ฐ๋ฒํธ์ ๋๋ค Client๋์ ์ธ์ฆ ์๋ฒ'์. ๋น๊ณต๊ฐ๋ก ์ ๋ณด๋ฅผ ๊ณต์ ํ ์ ์์ต๋๋ค. - ์ธ์ฆ ์ฝ๋:
์ ํจ ๊ธฐ๊ฐ์ด ์งง์ ์์ ์ฝ๋๋ก, Client ์ ๊ณต ์ธ์ฆ ์๋ฒ๋์ ์ ์ก์ธ์ค ํ ํฐ. - ์ก์ธ์ค ํ ํฐ:
ํด๋ผ์ด์ธํธ๊ฐ ํต์ ์ ์ฌ์ฉํ ํค ๋ฆฌ์์ค ์๋ฒ์ด. ์ ๊ณตํ๋ ์ผ์ข ์ ๋ฐฐ์ง ๋๋ ํค ์นด๋ Client'๋ฐ์ดํฐ๋ฅผ ์์ฒญํ๊ฑฐ๋ ์์ ์ ์ํํ ๊ถํ์ด ์์ต๋๋ค. ๋ฆฌ์์ค ์๋ฒ๋น์ ์ ๋์ ํด.
์ฃผ์: Authorization Server์ Resource Server๊ฐ ๋์ผํ ์๋ฒ์ธ ๊ฒฝ์ฐ๊ฐ ์์ต๋๋ค. ๊ทธ๋ฌ๋ ๊ฒฝ์ฐ์ ๋ฐ๋ผ ๋์ผํ ์กฐ์ง์ ์ํ์ง ์๋๋ผ๋ ์๋ก ๋ค๋ฅธ ์๋ฒ์ผ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด ๊ถํ ๋ถ์ฌ ์๋ฒ๋ ๋ฆฌ์์ค ์๋ฒ๊ฐ ์ ๋ขฐํ๋ ํ์ฌ ์๋น์ค์ผ ์ ์์ต๋๋ค.
์ด์ OAuth 2.0์ ํต์ฌ ๊ฐ๋ ์ ๋ค๋ฃจ์์ผ๋ฏ๋ก ์์ ๋ก ๋์๊ฐ OAuth ํ๋ฆ์์ ์ด๋ค ์ผ์ด ๋ฐ์ํ๋์ง ์์ธํ ์ดํด๋ณด๊ฒ ์ต๋๋ค.
- ๋น์ , ๋ฆฌ์์ค ์์ ์, ์ค๋์ ๋์ฐํ ๋ง์ฅ๋ ์๋น์ค(Clienty) ๋ชจ๋ ์น๊ตฌ์๊ฒ ์ด๋์ฅ์ ๋ณด๋ผ ์ ์๋๋ก ์ฐ๋ฝ์ฒ์ ์ก์ธ์คํฉ๋๋ค.
- Client ๋ธ๋ผ์ฐ์ ๋ฅผ ํ์ด์ง๋ก ๋ฆฌ๋๋ ์ ์ธ์ฆ ์๋ฒ'a ๋ฐ ์ฟผ๋ฆฌ์ ํฌํจ ๊ณ ๊ฐ ID, ๋ฆฌ๋๋ ์ URI, ์๋ต ์ ํ ๊ทธ๋ฆฌ๊ณ ํ๋ ์ด์ ๋ฒ์ (๊ถํ) ํ์ํฉ๋๋ค.
- ์ธ์ฆ ์๋ฒ ํ์ํ ๊ฒฝ์ฐ ์ฌ์ฉ์ ์ด๋ฆ๊ณผ ์ํธ๋ฅผ ์์ฒญํ์ฌ ์ฌ์ฉ์๋ฅผ ํ์ธํฉ๋๋ค.
- ์ธ์ฆ ์๋ฒ ์์์ ํ์ํฉ๋๋ค ๋์ (ํ์ธ) ๋ชจ๋์ ๋ชฉ๋ก ์ฒจ๋ถ ๋ฒ์์์ฒญ Client์ด. ๋น์ ์ ๋์ํ๊ฑฐ๋ ๊ฑฐ์ ํฉ๋๋ค.
- ์ธ์ฆ ์๋ฒ ์ฌ์ดํธ๋ก ๋ฆฌ๋๋ ์ ํฉ๋๋ค. Client', ์ฌ์ฉ ๋ฆฌ๋๋ ์ URI ํจ๊ป ์ธ์ฆ ์ฝ๋ (์ธ์ฆ ์ฝ๋).
- Client ์ ์ง์ ์ํตํ๋ค ์ธ์ฆ ์๋ฒ'์ด(๋ธ๋ผ์ฐ์ ์ฐํ ๋ฆฌ์์ค ์์ ์'a) ๊ทธ๋ฆฌ๊ณ ์์ ํ๊ฒ ๋ณด๋ธ๋ค ๊ณ ๊ฐ ID, ๊ณ ๊ฐ ๋น๋ฐ ะธ ์ธ์ฆ ์ฝ๋.
- ์ธ์ฆ ์๋ฒ ๋ฐ์ดํฐ๋ฅผ ํ์ธํ๊ณ ์๋ต ์ก์ธ์ค ํ ํฐ'om(์ก์ธ์ค ํ ํฐ).
- ์ง๊ธ Client ์ฌ์ฉํ ์ ์์ต๋๋ค ์ก์ธ์ค ํ ํฐ ~์๊ฒ ์์ฒญ์ ๋ณด๋ด๋ค ๋ฆฌ์์ค ์๋ฒ ์ฐ๋ฝ์ฒ ๋ชฉ๋ก์ ๊ฐ์ ธ์ต๋๋ค.
ํด๋ผ์ด์ธํธ ID ๋ฐ ๋น๋ฐ
์ค๋์ ๋์ฐํ ๋ง์ฅ๋์ด ์ฐ๋ฝ์ฒ์ ์ก์ธ์คํ๋๋ก ํ์ฉํ๊ธฐ ์ค๋ ์ ์ ํด๋ผ์ด์ธํธ์ ๊ถํ ๋ถ์ฌ ์๋ฒ๋ ์์ ๊ด๊ณ๋ฅผ ์ค์ ํ์ต๋๋ค. ์ธ๊ฐ ์๋ฒ๋ ํด๋ผ์ด์ธํธ ID์ ํด๋ผ์ด์ธํธ ์ํฌ๋ฆฟ(์ข ์ข ํธ์ถ๋จ)์ ์์ฑํ์ต๋๋ค. ์ฑ ID ะธ ์ฑ ๋น๋ฐ) OAuth ๋ด์์ ์ถ๊ฐ ์ํธ ์์ฉ์ ์ํด ํด๋ผ์ด์ธํธ์ ์ ์กํ์ต๋๋ค.
"- ์๋
ํ์ธ์! ๋๋ ๋น์ ๊ณผ ํจ๊ป ์ผํ๊ณ ์ถ์ต๋๋ค! - ๋ค, ๋ฌธ์ ์์ต๋๋ค! ์ฌ๊ธฐ ํด๋ผ์ด์ธํธ ID์ ๋น๋ฐ์ด ์์ต๋๋ค!โ
์ด๋ฆ์ Client Secret์ด Client์ Authorization Server๋ง ์ ์ ์๋๋ก ๋น๋ฐ๋ก ์ ์ง๋์ด์ผ ํจ์ ์์ํฉ๋๋ค. ๊ฒฐ๊ตญ Authorization Server๊ฐ ํด๋ผ์ด์ธํธ์ ์ง์ค์ ํ์ธํ๋ ๊ฒ์ ๊ทธ์ ๋์์ ๋๋ค.
ํ์ง๋ง ๊ทธ๊ฒ ๋ค๊ฐ ์๋๋๋ค... OpenID Connect๋ฅผ ํ์ํด์ฃผ์ธ์!
OAuth 2.0์ ๊ถํ ๋ถ์ฌ - ํ ์์ฉ ํ๋ก๊ทธ๋จ์์ ๋ค๋ฅธ ์์ฉ ํ๋ก๊ทธ๋จ์ผ๋ก ๋ฐ์ดํฐ ๋ฐ ๊ธฐ๋ฅ์ ๋ํ ์ก์ธ์ค๋ฅผ ์ ๊ณตํฉ๋๋ค.
OpenID Connect๋ฅผ ์ฌ์ฉํ๋ฉด ์ฌ๋ฌ ์ ํ๋ฆฌ์ผ์ด์ ์์ ๋จ์ผ ๋ก๊ทธ์ธ์ ์ฌ์ฉํ ์ ์๋ ์๋๋ฆฌ์ค๋ฅผ ๊ตฌํํ ์ ์์ต๋๋ค. ์ฑ๊ธ ์ฌ์ธ์จ (SSO). ์๋ฅผ ๋ค์ด ์ ํ๋ฆฌ์ผ์ด์ ์ Facebook ๋๋ Twitter์ ๊ฐ์ ์์ ๋คํธ์ํฌ์์ SSO ํตํฉ์ ์ง์ํ์ฌ ์ฌ์ฉ์๊ฐ ์ด๋ฏธ ๊ฐ์ง๊ณ ์๊ณ ์ ํธํ๋ ๊ณ์ ์ ์ฌ์ฉํ ์ ์๋๋ก ํฉ๋๋ค.
ํ๋ฆ(flow) OpenID Connect๋ OAuth์ ๊ฒฝ์ฐ์ ๋์ผํ๊ฒ ๋ณด์
๋๋ค. ์ ์ผํ ์ฐจ์ด์ ์ ๊ธฐ๋ณธ ์์ฒญ์์ ์ฌ์ฉ๋๋ ํน์ ๋ฒ์๊ฐ openid
, - ใ
Client ๊ฒฐ๊ตญ ๊ฐ์์ง๋ค ์ก์ธ์ค ํ ํฐ๊ณผ ID ํ ํฐ.
OAuth ํ๋ฆ๊ณผ ๋ง์ฐฌ๊ฐ์ง๋ก ์ก์ธ์ค ํ ํฐ OpenID Connect์์ ์ด๊ฒ์ ๋ช
ํํ์ง ์์ ๊ฐ์
๋๋ค. Client'์. ๊ด์ ์์ Client'์ ์ก์ธ์ค ํ ํฐ ๊ฐ ์์ฒญ๊ณผ ํจ๊ป ์ ๋ฌ๋๋ ๋ฌธ์์ด์ ๋ํ๋
๋๋ค. ๋ฆฌ์์ค ์๋ฒ'y, ํ ํฐ์ด ์ ํจํ์ง ๊ฒฐ์ ํฉ๋๋ค. ID ํ ํฐ ์์ ํ ๋ค๋ฅธ ๊ฒ์ ๋ํ๋
๋๋ค.
ID ํ ํฐ์ JWT์ ๋๋ค.
ID ํ ํฐ JSON ์น ํ ํฐ ๋๋ JWT๋ก ์๋ ค์ง ํน์ ํ์์ ๋ฌธ์์ด์ ๋๋ค. (์ข ์ข JWT ํ ํฐ์ "jots"์ฒ๋ผ ๋ฐ์๋ฉ๋๋ค.). ์ธ๋ถ ๊ด์ฐฐ์์๊ฒ๋ JWT๊ฐ ์ดํดํ ์ ์๋ ํก์ค์์ค์ฒ๋ผ ๋ณด์ผ ์ ์์ง๋ง Client JWT์์ ID, ์ฌ์ฉ์ ์ด๋ฆ, ๋ก๊ทธ์ธ ์๊ฐ, ๋ง๋ฃ ๋ ์ง์ ๊ฐ์ ๋ค์ํ ์ ๋ณด๋ฅผ ์ถ์ถํ ์ ์์ต๋๋ค. ID ํ ํฐ'a, JWT๋ฅผ ๋ฐฉํดํ๋ ค๋ ์๋์ ์กด์ฌ. ๋ฐ์ดํฐ ๋ด๋ถ ID ํ ํฐ'๋ผ๊ณ ๋ถ๋ฅธ๋ค ์ ํ๋ฆฌ์ผ์ด์ [์ฃผ์ฅ].
OIDC์ ๊ฒฝ์ฐ ํ์ค ๋ฐฉ์๋ ์์ต๋๋ค. Client ๊ฐ์ธ์ ๋ํ ์ถ๊ฐ ์ ๋ณด๋ฅผ ์์ฒญํ ์ ์์ต๋๋ค. [์ ์] ๋ถํฐ ์ธ์ฆ ์๋ฒ์๋ฅผ ๋ค์ด ๋ค์์ ์ฌ์ฉํ๋ ์ด๋ฉ์ผ ์ฃผ์ ์ก์ธ์ค ํ ํฐ.
OAuth ๋ฐ OIDC์ ๋ํด ์์ธํ ์์๋ณด๊ธฐ
๊ทธ๋์ OAuth์ OIDC๊ฐ ์ด๋ป๊ฒ ์๋ํ๋์ง ๊ฐ๋ตํ๊ฒ ์ดํด๋ณด์์ต๋๋ค. ๋ ๊น์ด ํ๊ณ ๋ค ์ค๋น๊ฐ ๋์ จ๋์? ๋ค์์ OAuth 2.0 ๋ฐ OpenID Connect์ ๋ํด ์์ธํ ์์๋ณด๋ ๋ฐ ๋์์ด ๋๋ ์ถ๊ฐ ๋ฆฌ์์ค์ ๋๋ค.
-
๋๋์ฒด OAuth๊ฐ ๋ฌด์์ ๋๊น? -
์๋ฌด๋ OAuth ๋๋ OpenID Connect์ ๊ด์ฌ์ด ์์ต๋๋ค. -
PKCE ํ๋ฆ์ผ๋ก OAuth 2.0 ์ธ์ฆ ์ฝ๋ ๊ตฌํ -
OAuth 2.0 ๋ถ์ฌ ์ ํ์ด๋ ๋ฌด์์ ๋๊น? -
๋ช ๋ น์ค์์ OAuth 2.0 -
SQL Server๋ก ๋ณด์ Node.js ์ฑ ๋น๋
์ธ์ ๋ ๊ทธ๋ ๋ฏ์ด ์์ ๋กญ๊ฒ ์๊ฒฌ์ ๋งํ์ญ์์ค. ์ต์ ๋ด์ค๋ฅผ ์ต์ ์ํ๋ก ์ ์งํ๋ ค๋ฉด ๊ตฌ๋
ํ์ญ์์ค.
๋ฒ์ญ๊ฐ์ ์ถ์
๋ธ๋ก๊ทธ์์๋ ์ฝ์ด๋ณด์ธ์.
- ยซ
Kubernetes ๋ณด์์ ABC: ์ธ์ฆ, ๊ถํ ๋ถ์ฌ, ๊ฐ์ฌ "; - ยซ
Kubernetes์ ์ฌ์ฉ์ ๋ฐ ๊ถํ ๋ถ์ฌ RBAC "; - ยซ
33๊ฐ ์ด์์ Kubernetes ๋ณด์ ๋๊ตฌ "; - ยซ
Docker ์ปจํ ์ด๋ ๋ณด์ ".
์ถ์ฒ : habr.com