๐Ÿ” Discourse์šฉ Yandex ID OAuth2 ์ธ์ฆ

:information_source: ์š”์•ฝ ์ด ํ”Œ๋Ÿฌ๊ทธ์ธ์€ Yandex ID๋ฅผ ํ†ตํ•œ OAuth2 ๋กœ๊ทธ์ธ์„ ํ™œ์„ฑํ™”ํ•˜์—ฌ ์‚ฌ์šฉ์ž๊ฐ€ Yandex ๊ณ„์ •์œผ๋กœ ์›ํ™œํ•˜๊ฒŒ ์ธ์ฆํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.
:hammer_and_wrench: ์ €์žฅ์†Œ ๋งํฌ GitHub - kaktaknet/discourse-yandex-oauth: ๐Ÿ” Yandex ID Authentication for Discourse. OAuth2 authentication plugin for Discourse using Yandex ID ยท GitHub
:open_book: ์„ค์น˜ ๊ฐ€์ด๋“œ Discourse์—์„œ ํ”Œ๋Ÿฌ๊ทธ์ธ ์„ค์น˜ ๋ฐฉ๋ฒ•

๊ธฐ๋Šฅ

  • Yandex ID๋ฅผ ํ†ตํ•œ ์•ˆ์ „ํ•œ OAuth 2.0 ์ธ์ฆ ํ๋ฆ„
  • ์›ํด๋ฆญ ์‚ฌ์šฉ์ž ๋กœ๊ทธ์ธ ๋ฐ ์ž๋™ ๊ณ„์ • ์ƒ์„ฑ
  • Yandex๋ฅผ ํ†ตํ•œ ์ด๋ฉ”์ผ ์ธ์ฆ
  • Yandex ํ”„๋กœํ•„์—์„œ ์•„๋ฐ”ํƒ€ ๊ฐ€์ ธ์˜ค๊ธฐ
  • ์ด๋ฉ”์ผ์„ ํ†ตํ•œ ๊ณ„์ • ์—ฐ๊ฒฐ
  • ์‚ฌ์šฉ์ž ์ด๋ฆ„ ์ •๋ฆฌ ๋ฐ ๊ฒ€์ฆ
  • ํฌ๊ด„์ ์ธ ์˜ค๋ฅ˜ ์ฒ˜๋ฆฌ ๋ฐ ์ƒ์„ธ ๋กœ๊น…
  • ๋‹ค๊ตญ์–ด ์ง€์› (์˜์–ด, ๋Ÿฌ์‹œ์•„์–ด)
  • ๊ฐ„๋‹จํ•œ ์„ค์ •๊ณผ ๋ช…ํ™•ํ•œ ๋ฌธ์„œํ™”๋ฅผ ํ†ตํ•œ ์‰ฌ์šด ํ†ตํ•ฉ

์„ค์ •

  1. Yandex OAuth์—์„œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋“ฑ๋ก

    • Yandex OAuth์— ์ ‘์†ํ•˜์—ฌ ์ƒˆ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.
    • Discourse ์‚ฌ์ดํŠธ์˜ ์ฝœ๋ฐฑ URL์„ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค:
      https://your-discourse-domain.com/auth/yandex/callback
      
    • ๋‹ค์Œ ๊ถŒํ•œ์„ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค:
      • login:email
      • login:info
      • login:avatar
  2. ์ปจํ…Œ์ด๋„ˆ์— ํ”Œ๋Ÿฌ๊ทธ์ธ ์ถ”๊ฐ€

  3. Discourse ์•ฑ ์žฌ๋นŒ๋“œ

cd /var/discourse
./launcher rebuild app
  1. Discourse ๊ด€๋ฆฌ์ž ํŒจ๋„์—์„œ ์„ค์ • ๊ตฌ์„ฑ
  • ๋‹ค์Œ ๊ฒฝ๋กœ๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค: ๊ด€๋ฆฌ์ž > ์„ค์ • > ๋กœ๊ทธ์ธ > Yandex
  • Yandex OAuth์—์„œ ์ œ๊ณต๋œ Client ID์™€ Secret์„ ์‚ฌ์šฉํ•˜์—ฌ ํ•„์š”ํ•œ ํ•„๋“œ๋ฅผ ์ž…๋ ฅํ•ฉ๋‹ˆ๋‹ค.

์„ค์ • ํ•ญ๋ชฉ

์ด๋ฆ„ ์„ค๋ช…
yandex_enabled Yandex ์ธ์ฆ ํ™œ์„ฑํ™” ๋˜๋Š” ๋น„ํ™œ์„ฑํ™”
yandex_client_id Yandex ์•ฑ์˜ OAuth Client ID
yandex_client_secret Yandex ์•ฑ์˜ OAuth Client Secret
yandex_email_verified Yandex์˜ ์ด๋ฉ”์ผ ์ธ์ฆ ์ •๋ณด ์‹ ๋ขฐ ์—ฌ๋ถ€
2๊ฐœ์˜ ์ข‹์•„์š”

์•ˆ๋…•ํ•˜์„ธ์š”, ํ”Œ๋Ÿฌ๊ทธ์ธ์ด ์ •์ƒ์ ์œผ๋กœ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค!

ํ•œ ๊ฐ€์ง€ ์งˆ๋ฌธ์ด ์žˆ๋Š”๋ฐโ€ฆ ์ œ Yandex ๊ณ„์ •์„ ์ธ์ฆํ•  ์ˆ˜ ์—†๋Š” ๊ฑด๊ฐ€์š”? ์•„๋‹ˆ๋ฉด ์ด ๋ฌธ์ œ๋กœ ์ธํ•ด ๋‚˜์ค‘์— ํฌ๋Ÿผ ์‚ฌ์šฉ์ž๋ฅผ ์œ„ํ•œ ๋กœ๊ทธ์ธ ๋ฒ„ํŠผ์ด ๊ฐ‘์ž๊ธฐ ์ž‘๋™ํ•˜์ง€ ์•Š๊ฒŒ ๋  ์ˆ˜๋„ ์žˆ์„๊นŒ์š”?

1๊ฐœ์˜ ์ข‹์•„์š”

์ด๊ฒƒ์€ Yandex์— ๋Œ€ํ•œ ์งˆ๋ฌธ์ด๋ฉฐ, ๋‚˜์—๊ฒŒ ๋ช…ํ™•ํ•œ ๋‹ต๋ณ€์€ ์—†์ง€๋งŒ, ๋ณดํ†ต ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ์„ค์ •ํ–ˆ๋‹ค๋ฉด ๊ณ„์† ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. Yandex๋Š” ์ด๋ฏธ ์„ค์ •๋œ ์„œ๋น„์Šค๋ฅผ ๋น„ํ™œ์„ฑํ™”ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

1๊ฐœ์˜ ์ข‹์•„์š”