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๋ฅผ ํ†ตํ•ด์„œ ์—ฐ๊ฒฐ์„ ํ•˜๋ ค๋ฉด, ์‚ฌ์šฉ์ž๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์•ก์…˜์„ ์ทจํ•ด์•ผ ํ–ˆ๋‹ค.

  1. ํŠธ์œ„ํ„ฐ(OpenID Provider)์—์„œ ๋กœ๊ทธ์ธ์šฉ openid ๊ฒฝ๋กœ๋ฅผ ์ œ๊ณตํ•จ (joen.doe.openid.com)
  2. ๋กœ๊ทธ์ธํ•  ํƒ€์‚ฌ ์„œ๋น„์Šค์—์„œ ์‚ฌ์šฉ์ž๊ฐ€ ๊ทธ URL์„ ์ž…๋ ฅํ•จ
  3. ํƒ€์‚ฌ ์„œ๋น„์Šค๊ฐ€ URL์„ ๊ธฐ๋ฐ˜์œผ๋กœ ์ •๋ณด๋ฅผ ํ™•์ธํ•˜๊ณ , ์ธ์ฆ์„ ๋ฐ›๊ธฐ ์œ„ํ•ด ํŠธ์œ„ํ„ฐ๋กœ ๋ฆฌ๋””๋ ‰์…˜ํ•จ
  4. ํŠธ์œ„ํ„ฐ ํŽ˜์ด์ง€์—์„œ ์ธ์ฆ ์™„๋ฃŒ.

๋‹น์—ฐํžˆ ์ด๋Ÿฐ ์‹์œผ๋กœ ๋งŒ๋“ค์–ด๋‘๋ฉด ์•„๋ฌด๋„ ์•ˆ ์“ธ ๊ฒƒ์ด๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์‹ค์ œ๋กœ ์‚ฌ์šฉ์ž ์˜์—ญ์—์„œ๋Š” ์•ˆ์“ด๋‹ค.

๋ฌผ๋ก  ๊ฐœ๋ฐœ์ž๋ฅผ ์œ„ํ•œ ์—ฐ๋™ ๊ตฌ์กฐ์—์„œ๋Š” ๊ฐ€๋” ์“ฐ๊ธฐ๋„ ํ•˜๋Š”๋ฐ... ์ผ๋ฐ˜์ ์ธ๊ฑด ์•„๋‹ˆ๋‹ค.




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