Принудительное включение многофакторной аутентификации без помощи

Недавно я начал требовать многофакторную аутентификацию (MFA) для всех пользователей на своём форуме, и мне сказали, что многие пользователи не смогут увидеть ветку с советами по использованию MFA (многие из них не являются техническими специалистами).

Хотя статья доступна анонимным пользователям, если пользователь вошёл в систему, но ещё не настроил MFA, он не может видеть содержимое сайта. Он застревает на странице настроек безопасности пользователя с вот таким сообщением:

Лично я считаю, что пользователь должен справиться с этим, но я уже давал инструкции пользователям, которые не используют приложения-аутентификаторы, а также параноидально настроенным в вопросах приватности, как использовать MFA «более приватным способом».
Не нужно мне читать лекции, я всё понимаю.

Было бы здорово, если бы я мог встроить в сообщение о принудительном включении MFA дополнительную информацию, которая помогла бы пользователям больше: например, рекомендовать менеджер паролей или приложение-аутентификатор, либо подсказать, чтобы на устройстве с аутентификатором было установлено точное время. В противном случае многие пользователи, честно говоря, не разбирающиеся в теме, столкнутся с негативным опытом и будут ещё сильнее сопротивляться.


Кстати, ключи доступа (passkeys) тоже являются формой MFA, этот вопрос должен быть решён.

1 лайк

Вы можете это сделать, настроив текст сайта через /admin/customize/site_texts?q=required%20to%20enable:

5 лайков

Редактирование текста сайта, как описано выше, — самый простой способ дать некоторые инструкции, но в этом контексте вы ограничены только текстом.

Если вы хотите добавить HTML (ссылки, изображения и т. д.), вы можете создать новый компонент темы в административном разделе «Темы и компоненты».

На вкладке компонентов (admin/config/customize/components) нажмите «Установить», затем «Создать новый», присвойте ему понятное имя… и после создания компонента выберите «Изменить код».

Далее перейдите на вкладку JS и добавьте что-то вроде этого:

  import { apiInitializer } from "discourse/lib/api";

  const CustomMessage = <template>
    <div class="custom-2fa-message">
       Ваш пользовательский контент здесь над существующим содержимым.
       <a href="#">Пример ссылки</a>
    </div>
  </template>;

  export default apiInitializer("1.0", (api) => {
    api.renderBeforeWrapperOutlet("user-second-factor-wrapper", CustomMessage);
  });

:backhand_index_pointing_up: Таким образом, вы можете добавлять ссылки или любой другой HTML-контент, который пожелаете.

Если у вас есть тема, на которую вы хотите добавить ссылку здесь, вы можете сделать её общедоступной, используя функцию Опубликованные страницы:

4 лайка

Из отдела «Не то, что вы просили», может быть, дайте людям неделю или месяц, чтобы включить двухфакторную аутентификацию, и напоминайте им, пока они этого не сделают. Да, в current_user есть поле second_factor_enabled, так что вы можете вывести большой баннер «КОНЕЦ БЛИЗОК» для тех, кто ещё не успел, с ссылкой на инструкции.

Я сделал это месяц назад.

Вот, что я, вероятно, ищу. Я создам этот компонент темы. Спасибо.

3 лайка