Возможно ли создать плагин Sign in with Ghost для Discourse?

Полтора года назад было объявлено о интеграции Discourse с Ghost, которая позволяет членам Ghost беспрепятственно получать доступ к форуму сайта с теми же правами, что и на публикации. Одним из «недостатков» этой интеграции является необходимость установки на VPS — задача, которая может показаться многим пользователям Ghost и/или Discourse слишком сложной (как обсуждалось на форуме Ghost в последние несколько дней).

Здесь, на форуме Discourse, несколько дней назад было сказано следующее об интеграции двух платформ:

Хотя это было бы замечательно, ещё одним вариантом могла бы стать создание «готового к использованию» решения, которое можно было бы настроить с помощью Cloudflare Workers. Хотя это снизило бы некоторые барьеры для новичков, ещё лучшим вариантом могло бы стать создание плагина для Discourse, если, конечно, это вообще возможно. Учитывая, что уже существует плагин «Вход через Apple», не означает ли это, что технически возможен и плагин «Вход через Ghost»?

Это возможно, да. Есть ли где-нибудь документация по настройке Ghost в качестве провайдера идентификации? Если да и если поддерживается oAuth, вы, скорее всего, сможете использовать существующие инструменты для настройки этого без необходимости в отдельном плагине.

Мне сказали: «Нет, Ghost не совсем предназначен для работы в качестве IDP». Если это так, позволяют ли плагины добавлять новые конечные точки, делая такой маршрут возможным?

Редактирование:

Могут ли группы определяться плагином так, чтобы (при условии, что Ghost будет отправлять веб-хуки) при изменении подписки пользователя группы синхронизировались?

Таким образом, текущая интеграция Discourse-on-Ghost потребует лишь того, чтобы функциональность D-o-G работала на собственном хостинге, а не обязательно сам Ghost. Поскольку эта интеграция использует DiscourseConnect, она будет работать из коробки с любой установкой Discourse, независимо от способа её размещения.

Что потребовало бы размещения Discourse на собственном хостинге. Так какую проблему это решит? Бремя переместится с самостоятельного размещения относительно простого дополнения для Ghost на самостоятельное размещение Discourse.

Чёрт возьми, ладно, я не осознавал, что неофициальные и пользовательские плагины доступны только для корпоративных планов. Теперь я понимаю, что вы имеете в виду, когда говорите: «Бремя переместилось бы с самостоятельного хостинга относительно простого дополнения для Ghost на самостоятельный хостинг Discourse». Проблема в том, что, хотя самостоятельный хостинг «простого дополнения» может быть слишком обременительным для технически неподготовленных пользователей, некоторые хотят быть уверенными, что всё находится не в их руках, а все операции надёжно контролируются более компетентными специалистами.

Учитывая всё вышесказанное, @pmusaraj, раз пользовательские плагины доступны только для корпоративных планов, можно ли сказать, что с точки зрения плагинов остаются только два крайних варианта — либо самостоятельный хостинг, либо корпоративный план? Я полностью понимаю, почему пользовательские плагины недоступны для стартовых планов, так как Discourse должен зарабатывать деньги для поддержания своей работы, но неужели здесь нет какого-то промежуточного пути? Или, возможно, существует какой-то другой вариант, кроме использования плагина или «настройки Ghost в качестве провайдера идентификации», который ещё не был рассмотрен?

Не уверен, насколько это реалистично, но платформа Ghost, вероятно, могла бы внедрить DiscourseConnect для своих размещённых сайтов.

Другой вариант — создание официального плагина Discourse для Ghost и его добавление в список плагинов, доступных на размещённых сайтах Discourse.

В любом случае это, скорее всего, будет зависеть от наличия значительного спроса на интеграцию Discourse и Ghost.

Если бы только существовала компания кашель, которая предлагала бы как официальные, так и неофициальные плагины на доступных тарифах с хостингом :wink:

Но если серьезно, я считаю, что такое решение должно быть широко доступно и не зависеть от конкретного сервиса.

Похоже, что D-o-G использует интеграцию JWT с Ghost. Для Discourse существует плагин JWT (официальный, но доступен только в плане Enterprise?). Это может быть направление, которое стоит изучить.

Я недостаточно хорошо знаком с Ghost, чтобы дать здесь квалифицированный совет, но могу сказать следующее:

  • наш рекомендуемый подход — использовать существующие стандарты аутентификации, поскольку безопасность является ключевым фактором при работе с учётными записями и входами. Например, GitHub - discourse/discourse-oauth2-basic: A basic OAuth2 plugin for use with Discourse · GitHub или Discourse OpenID Connect (OIDC), доступные на бизнес-тарифе нашего официального хостинга. Или SAML для корпоративных клиентов.
  • Учитывая вышеупомянутые плагины, я не считаю, что специальный плагин аутентификации Ghost для Discourse необходим. Ghost должен поддерживать один из этих стандартов, и как только это произойдёт, отдельный плагин Ghost не понадобится. Мы открыты к сотрудничеству в этой области, но моё интуитивное ощущение таково, что Ghost должен взять на себя основную работу по добавлению функций провайдера идентификации (IDP) в своё предложение.
  • Вариант с JWT также возможен, как отметил @RGJ, плагин существует, и его, вероятно, можно настроить для выполнения тех же функций, что и промежуточный сервис D-o-G. Однако это несколько устаревший стандарт, и мы обычно рекомендуем OAuth, OpenID, SAML или DiscourseConnect.

Привет! Я новичок здесь и изучил все темы о интеграции Ghost и Discourse через SSO. Я использую тарифный план Ghost (Pro) с хостингом и хочу настроить собственную размещённую версию Discourse с SSO, где Ghost будет источником истины для аутентификации пользователей. Правильно ли я понимаю, что на данный момент мой единственный вариант — самостоятельно разместить и запустить приложение-посредник для SSO?

Вашим первым шагом должно стать обращение к Ghost с вопросом, поддерживают ли они роль провайдера идентификации через OAuth. Я не могу точно сказать по быстрому поиску на их форуме, поддерживается ли это; я нашел этот пост от апреля 2024 года, где упоминается OAuth, но не уверен, идет ли речь о том, чтобы Ghost выступал в роли провайдера входа (возможно, речь о том, чтобы Ghost использовал что-то другое в качестве провайдера входа).

Это был мой первый шаг. Поддержка Ghost зарегистрировала мою заявку на новую функцию, но по сути сказала, что это не произойдет скоро, если вообще когда-либо. Вместо того чтобы затаить дыхание, я нанял инженера, чтобы установить DoG на droplet. Он работает идеально, поэтому могу подтвердить, что это эффективное решение. Я не понимаю упрямства поддержки Ghost в этом вопросе.