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

Старт! Честный VDS/VPS, на котором «Лунная База» живет уже 20+ лет

Задумываетесь о том, чтобы поднять свой pet-проект, сайт клиента или настроить окружение для разработки? Уже пора подумать, где арендовать железо.

Лунная База хостится на FirstVDS более 20 лет. Мыслей о том, чтобы перебраться на другой хостинг, не было ни разу (хотя опыт работы с другими вариантами, конечно, есть).

Бывали разные ситуации, но они бывают на любом железе. Главное, что нужно понять: здесь нет маркетинговой шелухи и сказок про «мы всё сделаем за вас». Если вы берете VDS — вам дают полный root, возможность накатить любую ОС и не лезут в ваши конфиги.

Если в саппорт написать с вопросом по вашему коду и получить ответ: «Читайте документацию и разбирайтесь сами» или «Обратитесь к профильному специалисту» — это не повод обижаться. Это повод углубить свои знания в DevOps и сайтостроении! Бегите от тех, кто пообещает: «Мы всё чиним и настраиваем абсолютно бесплатно!». Никто никогда не работает «по доброте душевной» в ущерб себе, а бесплатный сыр в администрировании обычно заканчивается сломанной базой данных.

Что по факту: Гибкое масштабирование ядер и RAM, экономия по сравнению с физическими серверами и адекватная панель ispmanager, если она вам нужна.



Обратная совместимость 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

Самый честный хостинг за 20+ лет существования Лунной Базы

Задумываешься о том, чтобы поднять свой сайт в Интернете? Уже пора подумать о том, какой хостинг выбрать?

Лунная База хостится 20+ лет на firstDVS. При этом, мыслей о том, чтобы перебраться на другой хостинг не было. (Но, при этом есть опыт работы с другими вариантами.)

Бывали с firstDVS разные ситуации, но, они бывают на всех хостингах. Единственное, что тут важно понять, - это то, что никто ничего тебе не будет впаривать... Но, и работать за тебя тоже никто не станет. Если в саппорт ответили: «Читайте по ссылке и разбирайтесь сами...» или вообще «Обратитесь за помощью к специалисту», - это повод углубить свои знания в области сайтостроения, а не бежать к тем, что пообещают: «Мы всё чиним и всё делаем за своих клиентов абсолютно бесплатно!» Никто никогда ничего ни за кого "по доброте душевной" не делал, не делает и не будет делать!

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