В Discourse уже встроена собственная система аутентификации, основанная на WebAuthn для двухфакторной аутентификации (2FA). На мой взгляд, единственное существенное упущение сейчас — это то, что мы пока не позволяем использовать 2FA как единственный фактор (опционально).
Я очень надеюсь сделать такую возможность доступной и в Discourse. Я действительно ненавижу пароли, и комбинация 2FA с проверочным вопросом кажется мне внутренне более надёжной, чем пароли, без сомнения.
Задача нетривиальная, зависит от того, насколько глубоко вы хотите погрузиться в тему. Прототип PR, добавляющий настройку сайта, был бы замечательным решением, но я прекрасно понимаю, что это может потребовать значительных затрат времени.
Небольшое обновление: поддержка ключей доступа в Discourse скоро появится. Я работал над этим в последние несколько недель, и у нас уже есть несколько черновых PR. Смотрите #23586, #23587 и #23591.
Я думаю, что примерно через 3–4 недели мы сможем объединить эти изменения (с включённой по умолчанию настройкой сайта). А если добавить ещё несколько недель на тестирование и исправление ошибок, то, вероятно, мы сможем вывести эту функцию в продакшн примерно через два месяца. Следите за новостями!
Я только что включил настройку сайта и добавил ключ доступа к своей учётной записи на форуме, который я помогаю администрировать, и всё работает идеально. Чтобы включить эту функцию на раннем этапе на сайте, выполните следующие команды:
cd /var/discourse
./launcher enter app
rails c
SiteSetting.experimental_passkeys=true
После включения, как кажется, вам нужно просто открыть https://forum.example.com/my/preferences/security, добавить ключ доступа, затем выйти из системы и использовать опцию «Войти с помощью ключа доступа», чтобы войти снова.
Привет, друзья! Да, мы объединили несколько PR с поддержкой ключей доступа и уже тестируем их внутренне.
Приведённые выше шаги верны, если вы хотите стать одним из самых ранних тестировщиков этой функции. Однако мы всё ещё дорабатываем несколько деталей, и официальное обновление/объявление скоро появится.
Ещё одно обновление перед официальным объявлением: passkeys теперь включены здесь, на Meta. Пожалуйста, попробуйте их и сообщайте о любых проблемах, отвечая в этой теме.
Мы планируем продолжить тестирование функции ещё около недели с включённым экспериментальным флагом. Затем мы официально объявим о её выпуске и отключим экспериментальную настройку сайта (т. е. поддержка passkeys будет включена по умолчанию на всех инстансах, использующих локальный вход).
Спасибо за отчет, @Arkshine. Я забыл включить небольшое изменение в мобильный компонент в коммите двухдневной давности. Это довольно неловкая ошибка — кнопка ничего не делала на всех мобильных устройствах.
В любом случае, это уже исправлено. Я только что протестировал на своём Android, и у вас всё должно работать.
Мы не блокируем это конкретно. Что именно подразумевается под «системой ChromeOS» — это Chrome на ChromeOS? Можете ли вы указать версию браузера и операционной системы?
Ах, интересно, спасибо за скриншот. Я подозреваю, что устройство не поддерживает проверку подлинности пользователя? Можете ли вы использовать Touch ID, Face ID или PIN-код для разблокировки устройства?
Согласно этой странице, поддержка Chrome OS действительно неравномерна.
Я использую пароль. Стоит отметить, что я могу добавить это устройство в качестве метода двухфакторной аутентификации для аккаунта через WebAuthn, но не могу добавить его в качестве ключа доступа.