- Введение
- Что делает многофакторная аутентификация в Joomla 4?
- Как работает многофакторная аутентификация в Joomla 4
- MFA против WebAuthn авторизации в Joomla 4
- Плагины многофакторной авторизации в Joomla 4
- Параметры пользовательской многофакторной аутентификации в Joomla 4
- Профиль пользователя многофакторной аутентификации в Joomla 4
Введение.
Система многофакторной аутентификации (MFA) Joomla 4 основана на Akeeba Loginguard, и большая часть этой документации была взята с разрешения Akeeba.
Что делает многофакторная аутентификация в Joomla 4?
Это решение добавляет несколько необязательных методов MFA для входа в Joomla. После входа в систему, используя только имя пользователя и пароль, пользователя попросят предоставить второй шаг верификации, например, код, сгенерированный Google Authenticator. Пока он не предоставит правильный второй шаг верификации, пользователь не сможет получить доступ ни к одной странице сайта. В этом случае пользователь всегда будет перенаправлен на страницу "captive login". Это похоже на то, что делает Google, когда вы пытаетесь войти в GMail.
Это отличается от первоначального метода двухфакторной аутентификации Joomla, который требовал ввода второго фактора аутентификации (например, кода, сгенерированного Google Authenticator) вместе с именем пользователя и паролем.
Преимуществами MFA являются:
- Он может работать с непарольными методами входа, такими как вход через социальные сети (например, Facebook), безопасный аппаратный токен, SSO (единый вход) и т.д. Уточнение: MFA может быть настроен на запрос после того, как пользователь вошел в систему с помощью метода входа без пароля. Он не реализует методы входа без пароля.
- Он обеспечивает лучший контроль доступа. В параметрах пользователя можно установить требование или отключение MFA для группы пользователей.
- Позволяет использовать альтернативные методы аутентификации в одной учетной записи. В учетной записи пользователя можно использовать несколько методов аутентификации. Например, можно установить приложение Google Authenticator и YubiKey.
- Поддерживаются методы, не требующие ввода кода. Например, донглы FIDO2, биометрическая верификация и т.д. Они должны взаимодействовать с браузером и/или операционной системой через встроенные API HTML5.
- Поддерживаются методы, требующие взаимодействия с пользователем. Например, отправка кода через push-сообщение, SMS или электронную почту. Эти методы требуют знания того, какой пользователь проходит аутентификацию, прежде чем отправить ему код аутентификации.
- Он является бесплатным. В отличие от сторонних служб, предоставляющих MFA, вам не нужно платить авансом за установку или ежемесячную/ежегодную плату за обслуживание каждого сайта или пользователя, использующего MFA. Программное обеспечение предоставляется бесплатно.
Как работает многофакторная аутентификация в Joomla 4.
Вход на сайт осуществляется обычным образом, например, с помощью имени пользователя и пароля. Важно отметить, что на этом этапе не нужно вводить учетные данные второго этапа аутентификации.
Система обнаруживает, что пользователь вошел в систему, но не выполнил второй этап аутентификации. Она сохраняет URL-адрес, который предполагалось отобразить, и немедленно перенаправляет пользователя на страницу входа в систему. Любая попытка перейти на другую страницу приведет к появлению страницы авторизации.
Модули на сайте могут содержать привилегированную информацию. Чтобы обеспечить конфиденциальность, модули принудительно отключаются во время рендеринга. Это означает, что ни одна позиция модуля не будет отображена на странице. Помните об этом, если вдруг вы заметите, что заголовок или другие ключевые области дизайна сайта отсутствуют на странице входа в систему.
Обратите внимание, что плагины, с другой стороны, НЕ отключены. Это связано как с тем, что Joomla делает чрезвычайно трудным удаление определенных плагинов после их загрузки, так и с тем, что большинство плагинов выполняют критически важные функции на сайте.
После подтверждения второго шага в сессии пользователя устанавливается флаг, указывающий на то, что он полностью авторизован для посещения сайта. Более того, пользователь будет перенаправлен на URL, который был сохранен сразу после первоначального входа на сайт.
MFA против WebAuthn авторизации.
Вход в систему с помощью WebAuthn является наиболее безопасным вариантом. При этом указывается только имя пользователя, которое должно считаться общедоступной, непривилегированной информацией. Сайт создает криптографический вызов, который подписывается браузером с помощью защищенного оборудования - внешнего защищенного аппаратного токена или Trusted Platform Module / Secure Enclave устройства - и возвращается на сервер. Сервер проверяет подпись. При проверке используется криптография с открытым ключом, причем сайт хранит только открытый ключ. Это делает вход практически не поддающимся взлому и чрезвычайно безопасным. Если воспользоваться этим способом, то второй фактор аутентификации не понадобится - но если очень хочется, то можно использовать WebAuthn и для него. Например, можно настроить WebAuthn как второй шаг в MFA, так что если по ошибке войти в систему с именем пользователя и паролем, то перед тем, как разрешить доступ к сайту, нужно будет пройти проверку.
За исключением использования каких-либо объединенных методов входа (например, вход с помощью учетной записи в социальных сетях, сервиса Single Sign-On, сервера LDAP и т.д.), обычный вход с именем пользователя и паролем ничуть не безопаснее, чем вход с помощью WebAuthn. Имя пользователя и пароль могут быть перехвачены, украдены или угаданы. Поэтому доверять только имени пользователя и паролю весьма небезопасно.
Для MFA нужно предоставить только имя пользователя и пароль. Успешная фишинговая атака получит только первый фактор аутентификации, но не второй. После успешного входа в систему пользователю открывается страница авторизации. Пользователь не сможет делать что-либо еще на сайте, пока не введет второй фактор. Поскольку ввод второго фактора представлен на собственной странице, он может быть интерактивным (например, WebAuthn), асинхронным (например, получение одноразового пароля (OTP) по электронной почте, текстовым сообщением или push-уведомлением) или инициированным пользователем (например, ограниченный по времени одноразовый пароль (TOTP) или OTP Yubikey). Еще лучше, если пользователь может включить несколько методов второго фактора на своей учетной записи, чтобы предотвратить случайную блокировку сайта. Например, можно использовать WebAuthn с внешним защищенным аппаратным ключом в качестве основного, наиболее безопасного второго фактора. Можно также установить обычный TOTP на случай, если ключ потеряется или пользователь забудет взять его с собой. Некоторые методы второго фактора позволяют использовать несколько экземпляров, например, можно иметь несколько аутентификаторов WebAuthn, чтобы использовать встроенный аутентификатор на компьютере с Windows, iPhone и планшете Android, не забывая брать с собой аппаратный донгл и адаптеры каждый раз, когда нужно отойти от стола.
Подведем итоги. От наиболее безопасного к наименее безопасному варианты:
- WebAuthn как основной метод входа в систему с вторичным MFA.
- WebAuthn как единственный метод входа в систему.
- Имя пользователя и пароль как основной метод входа в систему с вторичным MFA.
- Только имя пользователя и пароль в качестве единственного метода входа в систему.
Плагины многофакторной авторизации в Joomla 4.
Каждый из факторов MFA реализуется с помощью плагинов. Они могут быть включены или отключены по мере необходимости. И добавлять новые, когда появляются новые методы. Плагины, поставляемые с ядром Joomla, включают:
- Verification Code:
- шестизначные проверочные коды, генерируемые приложением аутентификатора (Google Authenticator, Authy, LastPass Authenticator и т.д.), менеджером паролей (1Password, BitWarden, Keeper, KeePassXC, Strongbox и т.д.) или, в некоторых случаях, браузером.
- YubiKey:
- Позволяет пользователям сайта использовать MFA с помощью защищенного аппаратного токена YubiKey. Пользователям необходим собственный YubiKey, который можно приобрести на сайте www.yubico.com.
- Web Authentication:
- поддерживается всеми современными браузерами. Большинство браузеров предлагают аутентификацию с помощью устройств, защищенных паролем и/или биометрическими данными (датчик отпечатков пальцев, сканирование лица, ...).
- Authentication Code by Email:
- Используйте ограниченные по времени шестизначные коды безопасности, отправляемые пользователю по электронной почте. По умолчанию установлено 2 минуты.
- Fixed Code:
- этот код предназначен для тестирования и иллюстрации и по умолчанию отключен. Его не следует включать на рабочем сайте.
Обратите внимание, что существует отдельный плагин System - WebAuthn Passwordless Login для обработки входа с кнопки Web Authentication в форме входа.
Параметры пользовательской многофакторной аутентификации в Joomla 4.
В разделе Пользователь: Параметры (The Users: Options) есть вкладка Многофакторная аутентификация (Mult-factor Authentication) для настройки работы MFA в Joomla. Для получения информации о каждой опции используйте кнопку Toggle Inline Help.
Профиль пользователя многофакторной аутентификации в Joomla 4.
В форме Administrator / Users: Edit Profile форма имеет отдельные вкладки для WebAuthn Login и Multi-factor Authentication, но последняя видна только владельцу учетной записи. Даже Суперпользователи не видят эту вкладку других пользователей.
В форме Site / Edit Your Profile вкладки бэкенд-формы расположены одна над другой, что может сбить с толку, поскольку Web Authentication появляется дважды, первая для входа без пароля, а вторая для MFA. На следующей иллюстрации показана часть формы, относящаяся к многофакторной аутентификации, после создания метода. Это автоматически устанавливает функцию в положение Включено и показывает возможность создания резервных кодов.
Как упоминалось выше, каждый из методов можно опробовать, выбрав кнопку + Добавить (Add ...), но в последующей форме можно выбрать Отмена (Cancel), если принято решение не продолжать.
Перевод с английского официальной документации Joomla 4:
https://docs.joomla.org/J4.x:Multi-factor_Authentication
Заберите ссылку на статью к себе, чтобы потом легко её найти!
Раз уж досюда дочитали, то может может есть желание рассказать об этом месте своим друзьям, знакомым и просто мимо проходящим?
Не надо себя сдерживать! ;)