OpenID์ OIDC(OpenID Connect)
OpenID๋ ํ์ฌ์ ์ธ์ฆ ๊ถํ์ ์ ๊ณตํ๊ธฐ ์ํ ํ์ค์ ์ค ํ๋๋ค.
OAuth์ ๋ค๋ฅธ ํ๋กํ ์ฝ์ด์์ง๋ง ํ์ฌ๋ ์ฐ๊ด์ด ๋งค์ฐ ๊น๋ค. ์ ๋ชจ๋ฅธ๋ค๋ฉด ํจ๊ป ์์๋๋ ๊ฒ์ด ์ข๋ค.
๊ด๋ จ ํฌ์คํธ
https://blog.naver.com/sssang97/224084090134
OpenID vs OAuth
ํ ์์ ์์ OAuth์ OpenID๋ ๊ฑฐ์ ์ผ์ฒดํ์ผ๋ก ๋ถ์ด๋ค๋๊ธฐ์ ๊ตฌ๋ถํ๋๊ฒ ์๋ฏธ๊ฐ ์์ ์๋ ์์ง๋ง, ์์ฐํ ๋ค๋ฅธ ๋ช ์ธ๋ค.
OAuth๋ ๊ถํ์ ๋ถ์ฌํ๋ ๊ฒ ์์ฒด๋ฅผ ์ ์ํ๋ค. ๊ถํ์ด ํ์ ๋ ํ ํฐ์ ๋ฐ๊ธํด์ API ์ฌ์ฉ์ ๊ฐ๋ฅ์ผ ํด์ฃผ๋ ๊ฒ๊น์ง๊ฐ OAuth์ ์ญํ ์ธ ์ ์ด๋ค.
OpenID๋ ํด๋น ์ฌ์ฉ์๊ฐ ๋ง๋์ง๋ฅผ ๊ฒ์ฆํ๋ ์ญํ ์ ํ๋ค. ํธ์ํฐ์ SSO ๋ก๊ทธ์ธ์ ํ์๋, ํ์ฌ์๊ฒ ์ด ์ฌ์ฉ์๊ฐ ํธ์ํฐ์ "john.doe"๊ฐ ๋ง๋ค๋ ๊ฒ์ ํ์ธํ๋ ๊ฒ ์์ฒด๊ฐ OpenID์ธ ์
์ด๋ค.
๊ทธ๋ฆฌ๊ณ OpenID๋ฅผ ํตํด ํ ํฐ์ ๋ฐ์ผ๋ฉด ๊ทธ ํ ํฐ์ ๊น์ ์ฌ์ฉ์ ์ ์์ ํ์ธํ ์ ์๋ค. ์ํ๋ค๋ฉด ์ถ๊ฐ๋ก ์ก์ธ์คํ ํฐ์ผ๋ก User API๋ฅผ ์ฐ๋ฌ์ ์ถ๊ฐ ์ ๋ณด๋ฅผ ๋ฐ์์ฌ ์๋ ์์ผ๋, ์ด๊ฑด OpenID์ ๋ช
์ธ๋ ์๋๋ค.
OpenID 1 (2005)
์ด๊ฑด ๋ ๋ฆฝ์ ์ธ ์ธ์ฆ ํ๋กํ ์ฝ๋ก ์์๋์๋ค. "ํ๋์ ID๋ก ๋น๋ฐ๋ฒํธ ์์ด ์ฌ๋ฌ ์ฌ์ดํธ ๋ก๊ทธ์ธ"์ ๋ชฉํ๋ก ํ๋ค.
OpenID 1์ ์ฌ๊ฐํ ๊ฒฐํจ์ ๊ฐ๊ณ ์์ด์ ์ฌ์ฉ๋ ์ ๋ ๋ณ๋ก ์๊ณ ํ์ฌ๋ ์ ํ ์ฌ์ฉ๋์ง ์๋๋ค.
๋ณด์ ์ทจ์ฝ์ ๋ ๋ง๊ณ ๋ญ ์๋๊ฒ ๋ง์๋ค.
์ผ๋ถ ์๋น์ค(LiveJournal, Blogger ๋ฑ)์์ ์ ๊น ์ฌ์ฉ๋์์ผ๋ ๋ํ Provider๋ค์ ์ฑํ ๋ถ์กฑ์ผ๋ก ํ์ฐ๋์ง ๋ชปํ๋ค.
OpenID 2 (2007)
OpenID 2๋ OAuth 1์ ๋น์ทํ ์๊ธฐ์ ๋ง๋ค์ด์ก๋ค. ํต์ฌ ์๋ฆฌ๋ OpenID์ ํฌ๊ฒ ๋ค๋ฅด์ง ์์๋ค.
ํ ์์ ์์ ๋จ๋ ์ผ๋ก ์ฌ์ฉ๋๋ ์ผ์ ๊ฑฐ์ ์์ด์ก๋ค. OpenID 1๊ณผ ๋์ผํ๊ฒ ์ฌ์ฉ์ UX๊ฐ ๋๋ฌด ๋ถํธํ๊ธฐ ๋๋ฌธ์ด๋ค.
OAuth ์์ด OpenID๋ฅผ ํตํด์ ์ฐ๊ฒฐ์ ํ๋ ค๋ฉด, ์ฌ์ฉ์๋ ๋ค์๊ณผ ๊ฐ์ ์ก์ ์ ์ทจํด์ผ ํ๋ค.
- ํธ์ํฐ(OpenID Provider)์์ ๋ก๊ทธ์ธ์ฉ openid ๊ฒฝ๋ก๋ฅผ ์ ๊ณตํจ (joen.doe.openid.com)
- ๋ก๊ทธ์ธํ ํ์ฌ ์๋น์ค์์ ์ฌ์ฉ์๊ฐ ๊ทธ URL์ ์ ๋ ฅํจ
- ํ์ฌ ์๋น์ค๊ฐ URL์ ๊ธฐ๋ฐ์ผ๋ก ์ ๋ณด๋ฅผ ํ์ธํ๊ณ , ์ธ์ฆ์ ๋ฐ๊ธฐ ์ํด ํธ์ํฐ๋ก ๋ฆฌ๋๋ ์ ํจ
- ํธ์ํฐ ํ์ด์ง์์ ์ธ์ฆ ์๋ฃ.
๋น์ฐํ ์ด๋ฐ ์์ผ๋ก ๋ง๋ค์ด๋๋ฉด ์๋ฌด๋ ์ ์ธ ๊ฒ์ด๋ค. ๊ทธ๋ฆฌ๊ณ ์ค์ ๋ก ์ฌ์ฉ์ ์์ญ์์๋ ์์ด๋ค.
๋ฌผ๋ก ๊ฐ๋ฐ์๋ฅผ ์ํ ์ฐ๋ ๊ตฌ์กฐ์์๋ ๊ฐ๋ ์ฐ๊ธฐ๋ ํ๋๋ฐ... ์ผ๋ฐ์ ์ธ๊ฑด ์๋๋ค.
OpenID Connect (2014)
์ด๊ฑด ์ฌ์ค OpenID๋ผ๊ณ ๋ถ๋ฅด๊ธด ํ๋๋ฐ, ๊ธฐ์กด ๋ฒ์ ๋ค๊ณผ ํธํ๋์ง๋ ์๋ ๋ณ๊ฐ์ ํ๋กํ ์ฝ์ด๋ค.
OAuth 2์ ๊ธฐ๋ฐ์ผ๋ก ํด์ OpenID์ ํต์ฌ ๊ฐ๋
- ID Token์ ์น์ด์ ์ฌ์ฉํ๋ ๊ฒ์ ๋งํ๋ค.
ํ ์์ ์์๋ ์์ฐํ ํ์ค ๊ธฐ์ ์ด๋ค.
SNS ๋ก๊ทธ์ธ์ ๋น๋กฏํ ํ์ฌ ์ฐ๋ ์๋น์ค๋ค์ ์ ๋ถ ์ด ๊ตฌ์กฐ๋ฅผ ๋ฐํ์ผ๋ก ํ๋ค๊ณ ๋ณด๋ฉด ๋๋ค.
OAuth์ ๊ตฌ์กฐ๋ฅผ ์๊ณ ์๋ค๋ฉด ๊ตฌ์กฐ๋ฅผ ์ดํดํ๋ ๊ฒ์ ์ด๋ ต์ง ์๋ค.
๋ฐ์ง์๋ฉด, ์ธ๊ฐ ์ฝ๋๋ฅผ ๋ณด๋ด์ ์ก์ธ์คํ ํฐ์ ๋ฐ์์ฌ ๋, ID Token์ด๋ ๊ฒ์ ๋์์ ๋ฐ์์จ๋ค๋ ๊ฒ์ด ๋ค๋ฅผ ๋ฟ์ด๋ค.
์ด ID ํ ํฐ์ JWT ํ ํฐ์ด๊ณ , ์ด๊ฑธ ๊น๋ค๋ฉด ์ถ๊ฐ API ํธ์ถ ์์ด ์ฌ์ฉ์์ ๊ณ ์ ID ๋ฑ์ ์กฐํํ ์ ์๋ค.

์ฐธ์กฐ
https://en.wikipedia.org/wiki/OpenID
https://blog.logto.io/ko/what-is-oidc