WebAuthn Беспарольная аутентификация в Joomla 4. Важные замечания от разработчиков.



Обратная совместимость WebAuthn.

Насколько можно судить, этот WebAuthn не оказывает негативного влияния на обратную совместимость.

Следует отметить, что модули входа должны будут поддерживать событие onUserLoginButtons для пользовательских плагинов, чтобы обеспечить полную совместимость с Joomla 4 и функцией WebAuthn. Однако любой модуль, не поддерживающий эту новую функцию, будет продолжать работать без каких-либо негативных последствий.

Наконец, com_ajax доступен на странице входа в админку Joomla без аутентифицированного пользователя. Если есть безумные разработчики, которые считают, что запрос com_ajax в бэкенде сайта означает, что кто-то вошел в систему, им следует изменить свой код и пересмотреть свой жизненный выбор, потому что, откровенно говоря, это признак того, что они не знают, что делают. Всегда используйте Factory::getApplication()->getIdentity() для получения текущего пользователя, чтобы выяснить, вошел ли он в систему и какие у него есть права.

Переводы на другие языки WebAuthn в Joomla 4.

Новый плагин требует перевода следующих файлов:

  • administrator/language/en-GB/en-GB.plg_system_webauthn.ini
  • administrator/language/en-GB/en-GB.plg_system_webauthn.sys.ini

Необходимые изменения в документации WebAuthn для Joomla 4.

Сам плагин, а также два небольших изменения в ядре, но имеющие обратную совместимость, будут нуждаться в документации.

Дополнительные кнопки входа в систему.

Модуль плагина и com_users теперь используют событие onUserLoginButtons, определенное и вызываемое в Joomla\CMS\Helper\AuthenticationHelper::getLoginButtons, для получения определений любых дополнительных кнопок, которые должны быть размещены после обычной кнопки входа.

Все разработчики, реализующие модуль входа или, в более общем случае, форму входа, должны также использовать публичный статический метод Joomla\CMS\Helper\AuthenticationHelper::getLoginButtons для получения определений и отображения этих кнопок, чтобы сделать свое программное обеспечение полностью совместимым с Joomla 4.

Разработчикам, желающим реализовать пользовательские кнопки, следует обратить внимание на то, как реализует эту функциональность системный плагин WebAuthn. Эти кнопки могут быть использованы для реализации сторонних сервисов единой регистрации или даже для входа в систему с помощью сторонних сервисов идентификации, таких как те, которые предлагают популярные социальные сети (Facebook, Google, Twitter, GitHub и т.д.).

Это изменение не оказывает негативного влияния на обратную совместимость. Сторонние модули входа и формы входа будут продолжать нормально функционировать, даже если в них не реализована функция дополнительных кнопок входа, за исключением интеграций, обеспечиваемых этой функцией, таких как Web Authentication. То есть они не перестанут функционировать, но они не будут полноценными. Поэтому последствия будут гораздо более благоприятными, чем, например, если в Joomla 3.2 отказаться от поля "Секретный код" (Secret Code) двухфакторной аутентификации.

Разрешение com_ajax на странице входа в админку.

В Joomla 3 com_ajax был ограничен для авторизованных и гостевых пользователей фронтенда, а также для авторизованных пользователей бэкенда. Этот PR WebAuthn вносит com_ajax в белый список в AdministratorApplication, чтобы он мог использоваться для обработки запросов гостевых пользователей, просматривающих страницу входа в бэкенд.

Это изменение не вызывает проблем с обратной совместимостью до тех пор, пока разработчики используют разумные методы и не считают, что вызов com_ajax в бэкенде является доказательством того, что пользователь вошел в бэкенд. Это было бы плохой практикой безопасности. Разумная практика заключается в использовании объекта User Joomla для определения того, является ли пользователь гостем, и если нет, то имеет ли он разрешение, необходимое для выполнения действия, запрашиваемого через com_ajax. Иными словами, если это изменение сломало ваш код, то ваш код уже был сломан шестью способами в воскресенье и в любом случае должен быть переработан. Не стоит благодарности за неожиданный аудит безопасности :)

Собственно сам плагин WebAuthn.

Очевидно, что кто-то, должен написать документацию для этого плагина. Хорошей идеей было бы взять за основу тесты и информацию, которые включены в этот PR WebAuthn, особенно FAQ, который следует за ним. Кто-нибудь, кто может перевести язык инженеров на язык пользователей, был бы просто замечателен для этой задачи :)


Перевод с английского официальной документации разработчиков Joomla 4:
https://github.com/joomla/joomla-cms/pull/28094

Заберите ссылку на статью к себе, чтобы потом легко её найти!
Раз уж досюда дочитали, то может может есть желание рассказать об этом месте своим друзьям, знакомым и просто мимо проходящим?
Не надо себя сдерживать! ;)

Старт! Горячий старт на просторы интернета
Старт! Горячий старт на просторы интернета
Старт! Меню