Может ли Discourse предложить SSO/федеративный вход, аналогичный StackExchange?

Я всё чаще вижу Discourse повсюду, и я не могу быть счастливее! Кажется, что он быстро становится стандартным выбором для сообществ, которые хотят быстро создать новые форумы для обсуждений или заменить существующие форумы, построенные на устаревших платформах и с устаревшими паттернами UX.

Однако в некотором смысле это кажется жертвой собственного успеха — каждый раз, когда я хочу написать в новое сообщество Discourse, мне нужно создать учётную запись, установить пароль и так далее. Некоторые сообщества потрудились настроить OAuth через GitHub, социальные сети и т. д., но многие этого не сделали. Мне приходится создавать и подтверждать новую учётную запись на их сервере Discourse только для того, чтобы задать один вопрос, дать ответ или даже поставить :heart: ответу, который мне оказался полезен.

Сравните это с моим опытом работы в сети StackExchange, где мне предлагается кнопка «Присоединиться к этому сообществу» на сообществе, с которым я хочу впервые взаимодействовать. Когда я нажимаю эту кнопку, мне предлагают зарегистрироваться, используя вход из другого сообщества:

Новая учётная запись автоматически создаётся и авторизуется одним кликом.

Мне кажется, что проблема в том, что существует негласное предположение, будто каждое сообщество Discourse — это свой собственный остров, и пользователи сидят весь день, авторизованные на одном форуме, ожидая ответов и новых вопросов, получая удовольствие от получения значков и накопления привилегий. В реальности подавляющее большинство взаимодействий пользователей обусловлено необходимостью, и лишь очень небольшое число пользователей удерживают сообщества, участвуя в них регулярно. Я полагаю, что типичное взаимодействие пользователя с сообществом Discourse выглядит примерно так:

  1. Возникает проблема
  2. Поиск ответа в Google
  3. Невозможно найти решение нигде в интернете, включая форум группы на Discourse
  4. Решение, что проблема достаточно серьёзная, чтобы создать учётную запись на форуме
  5. Задаю свой вопрос или комментирую существующий вопрос
  6. Получаю ответ от кого-то или в конце концов решаю проблему самостоятельно
  7. Если я решил проблему самостоятельно и чувствую себя социально ответственным, сообщаю о своём решении обратно на форум Discourse
  8. Возвращаюсь к повседневной жизни
  9. Через несколько лет возникает новая проблема, и я пытаюсь вспомнить свои учётные данные, чтобы снова войти на форум
  10. Повторяю шаги 5–10

Значительная часть этого процесса затруднена необходимостью создавать новую учётную запись для каждого нового форума, в котором я хочу участвовать.

Я понимаю, что сообщества StackExchange управляются центральной компанией, тогда как сообщества Discourse размещаются полностью децентрализованно, но кажется, что это можно реализовать, если Discourse создаст собственный сервис провайдера идентификации. В отличие от интеграции с чем-то вроде GitHub или Facebook, где администратору форума необходимо предпринять активные действия на внешнем сайте для настройки OAuth с этими провайдерами, кажется, что необходимые токены для кнопки «Войти через Discourse» могли бы автоматически настраиваться в процессе стандартной установки.

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

2 лайка

Это другой вид федерации, связывающий Discourse с такими инструментами, как Mastodon, в отношении постов и ответов (в отличие от входа в систему).

Вам стоит ознакомиться с Discourse SSO, обсуждение которого ведется в различных темах на meta.

1 лайк

То, что вы описываете, активно обсуждалось в начале существования Discourse. Для этого есть тег: #discourse_hub

Самая свежая тема датирована 2014 годом:

(кстати, я только что заметил, что Джефф использует имя @david в качестве примера — это было много лет назад, ещё до того, как я вообще узнал о Discourse :joy:)

Это очень крутая идея, но на пути к её реализации есть множество препятствий.

6 лайков

Отлично, спасибо! Похоже, что SE за последние 6 лет или около того решила многие проблемы, описанные в той ветке (например, теперь для пользователей используется уникальный идентификатор в виде комбинации числа и имени пользователя).

Суть проблемы, как представляется, заключается в том, что, в отличие от SE, Discourse децентрализован: каждое сообщество полностью контролируется тем, кто управляет серверами, на которых оно работает. Я также считаю, что администраторы, не желающие отказываться от части контроля ради повышения доступности своего сообщества, безусловно, должны иметь возможность отказаться от участия в Discourse Hub, понимая, что такое решение имеет свою цену в виде снижения доступности и вовлечённости пользователей.

Мы, безусловно, могли бы включить по умолчанию вход через социальные сети для провайдера «DiscourseHub», активировав его изначально и добавив такие возможности, как полная поддержка всех стандартных полей (имя пользователя, имя, электронная почта, аватар, биография), а также предложить двустороннюю синхронизацию (попытаться извлечь данные только что созданной учётной записи пользователя и опубликовать некоторые сведения на центральном профиле, например, бейджи и лучшие публикации). Мы даже могли бы использовать это для продвижения передовых стандартов, таких как требование к минимальной длине пароля и обязательная двухфакторная аутентификация.

Однако вопрос о том, стоит ли это делать, остаётся открытым.

3 лайка

Сколько из этого решило бы централизованно управляемое (нами) каталогизирование?

Вам всё равно придётся создавать новую учётную запись на каждом сайте, и каждый сайт может требовать (например) разные поля при регистрации. Мы могли бы заполнить большинство из них, но вам всё равно нужно будет их подтвердить. Аватар уже хорошо поддерживается, например, через Gravatar.

Касательно попытки запомнить свои учётные данные: вход по электронной почте — лучший способ использовать те сообщества, в которые вы заходите редко. Я пользуюсь им, когда он доступен.

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

6 лайков

По этой теме… один компонент темы, который я полностью поддерживаю, — это изменение, которое делает авторизацию на 100% основанной на электронной почте.

  • Для регистрации… достаточно ввести адрес электронной почты, имя пользователя и имя… без пароля.
  • Для входа… достаточно ввести адрес электронной почты… без пароля.

Уже сейчас у нас есть поддержка входа без пароля через электронную почту, но эта функция несколько скрыта. Отказ от паролей сделает это полностью очевидным и устранит множество неудобств.

Очевидно, что пока это не стандартная настройка для Discourse, но, на мой взгляд, это очень интересный компонент темы.

1 лайк