Two Factor

Описание

Плагин «Two-Factor» обеспечивает дополнительный уровень безопасности при входе в систему WordPress, требуя от пользователей ввода второго средства аутентификации в дополнение к паролю. Это помогает защитить систему от несанкционированного доступа даже в случае утечки паролей.

Инструкции по установке

Важно: Каждый пользователь должен самостоятельно настроить параметры двухфакторной аутентификации.

Для частных пользователей

  1. Перейти в свой профиль: В админ-панели WordPress перейдите в раздел «Пользователи» «Профиль»
  2. Найти настройки Two-Factor: Прокрутите страницу вниз до раздела «Настройки двухфакторной аутентификации»
  3. Choose your methods: Enable one or more authentication providers (noting a site admin may have hidden one or more so what is available could vary):
    • Приложение-аутентификатор (TOTP) — Используйте такие приложения, как Google Authenticator, Authy или 1Password
    • Email коды — Получайте одноразовые коды по email
    • Резервные коды — Сгенерируйте одноразовые резервные коды на случай чрезвычайных ситуаций
    • Фиктивный метод — Исключительно для тестирования (требует WP_DEBUG)
  4. Настроить все методы: Следуйте инструкциям по настройке для каждого включенного поставщика
  5. Установить основной метод: Выберите метод, который будет использоваться в качестве метода аутентификации по умолчанию
  6. Сохранить изменения: Нажмите «Обновить профиль», чтобы сохранить свои настройки

Для администраторов сайтов

  • Настройки плагина: Плагин имеет страницу настроек в разделе «Настройки Two-Factor», на которой можно отключить определённых провайдеров на всём сайте.
  • Управление пользователями: Администраторы могут настроить двухфакторную аутентификацию для других пользователей, отредактировав их профили
  • Советы по безопасности: Рекомендуйте пользователям включать резервные методы, чтобы предотвратить блокировку учетных записей

Доступные методы аутентификации

Приложение-аутентификатор (TOTP) — рекомендуется

  • Безопасность: Высокая — одноразовые пароли, зависимые от времени
  • Настройка: Отсканируйте QR-код с помощью приложения-аутентификатора
  • Совместимость: Работает с Google Authenticator, Authy, 1Password и другими TOTP приложениями
  • Оптимально для: Большинства пользователей, обеспечивает отличную безопасность и удобен в использовании

Резервные коды — рекомендуется

  • Безопасность: Средняя — одноразовые коды
  • Настройка: Создайте 10 резервных кодов для доступа в экстренных случаях
  • Совместимость: Работает везде, не требует специального оборудования
  • Оптимально для: Экстренный доступ в случаях, когда другие способы недоступны

Коды электронной почты

  • Безопасность: Средняя — одноразовые коды, отправляемые по email
  • Настройка: Автоматическая — используется ваш email адрес WordPress
  • Совместимость: Работает с любым устройством, поддерживающим email
  • Оптимально для: Пользователей, предпочитающих email-аутентификацию

Ключи безопасности FIDO U2F

  • Устарело и удалено в связи с прекращением поддержки со стороны браузеров.

Фиктивный метод

  • Безопасность: Отсутствует — всегда завершается успешно
  • Настройки: Доступно только при включенном параметре WP_DEBUG
  • Цель: Исключительно для тестирования и разработки
  • Оптимально для: Разработчиков, тестирующих плагин

Важные примечания

Требование HTTPS

  • Все методы работают как на сайтах с HTTP, так и HTTPS

Совместимость с браузерами

  • Методы TOTP и email работают на всех устройствах и во всех браузерах

Восстановление учётной записи

  • Всегда включайте резервные коды, чтобы избежать блокировки доступа к вашей учетной записи
  • Если у вас пропал доступ ко всем способам аутентификации, обратитесь к администратору сайта

Лучшие практики безопасности

  • По возможности используйте несколько методов аутентификации
  • Храните резервные коды в надёжном месте
  • Регулярно проверяйте и обновляйте свои настройки аутентификации

Для получения дополнительной информации о двухфакторной аутентификации в WordPress ознакомьтесь с Руководством по расширенной безопасности администрирования WordPress.

Подробную историю можно посмотреть в этом посте.

События и фильтры

Вот список хуков событий и фильтров, предоставляемых плагином:

  • Фильтр two_factor_providers переопределяет доступных поставщиков двухфакторной аутентификации, таких как email и одноразовые пароли на основе времени. Значения массива – это названия PHP классов поставщиков двухфакторной аутентификации.
  • two_factor_providers_for_user filter overrides the available two-factor providers for a specific user. Array values are instances of provider classes and the user object WP_User is available as the second argument.
  • Фильтр two_factor_enabled_providers_for_user переопределяет список поставщиков двухфакторной аутентификации, включенных для пользователя. Первый аргумент – это массив включенных имен классов поставщиков в виде значений, второй аргумент – это идентификатор пользователя.
  • Событие two_factor_user_authenticated получает авторизованный WP_User объект в качестве первого аргумента для определения вошедшего в систему пользователя сразу после рабочего процесса аутентификации.
  • two_factor_user_api_login_enable filter restricts authentication for REST API and XML-RPC to application passwords only. Provides the user ID as the second argument.
  • two_factor_email_token_ttl filter overrides the time interval in seconds that an email token is considered after generation. Accepts the time in seconds as the first argument and the ID of the WP_User object being authenticated.
  • Фильтр two_factor_email_token_length переопределяет значение по умолчанию, равное 8 символам, для токенов, отправляемых по электронной почте.
  • two_factor_backup_code_length filter overrides the default 8 character count for backup codes. Provides the WP_User of the associated user as the second argument.
  • two_factor_rest_api_can_edit_user filter overrides whether a user’s Two-Factor settings can be edited via the REST API. First argument is the current $can_edit boolean, the second argument is the user ID.
  • two_factor_before_authentication_prompt action which receives the provider object and fires prior to the prompt shown on the authentication input form.
  • two_factor_after_authentication_prompt action which receives the provider object and fires after the prompt shown on the authentication input form.
  • two_factor_after_authentication_input action which receives the provider object and fires after the input shown on the authentication input form (if form contains no input, action fires immediately after two_factor_after_authentication_prompt).
  • two_factor_login_backup_links фильтрует резервные ссылки, отображаемые в форме двухфакторного входа.

Перенаправление после проверки двухфакторной аутентификации

Чтобы перенаправить пользователей на определённый URL-адрес после прохождения двухфакторной аутентификации, воспользуйтесь встроенным в ядро WordPress фильтром login_redirect. Этот фильтр работает так же, как и в стандартном процессе входа в WordPress:

add_filter( 'login_redirect', function( $redirect_to, $requested_redirect_to, $user ) {
    return home_url( '/dashboard/' );
}, 10, 3 );

Скриншоты