Версия 1.7.1 — 2026-07-30

Версия 1.7.1 — 2026-07-30

Мультифактор (Multifactor) остаётся обязательным только для админских учётных записей. Обычные пользователи (медсёстры) входят без второго фактора — быстрее и без телефона в руках.

Как работает

Раньше все входы шли через LDAP-прокси Мультифактора: bind → пуш «Подтвердите вход» → ожидание подтверждения. Теперь при вводе логина система смотрит на роли учётной записи:

  • Админские роли (super-admin, Admin + добавленные через MFA_REQUIRED_ROLES) — вход по-прежнему через Мультифактор, с подтверждением.
  • Все остальные — прямой bind в контроллер домена (LDAP_DIRECT_HOST), второй фактор не запрашивается.
  • Неизвестный логин (учётки ещё нет в локальной БД — первый вход) — безопасный дефолт: через Мультифактор.

Реализация: app/Ldap/MfaConnectionSelector.php (выбор LDAP-соединения на этапе AuthPipeline), второе подключение direct в config/ldap.php.

Включение на проде

Фича выключена по умолчанию: пока LDAP_DIRECT_HOST не задан, все входы идут через Мультифактор, как раньше.

LDAP_DIRECT_HOST=<адрес контроллера домена напрямую, минуя прокси Мультифактора>
LDAP_DIRECT_PORT=636       # если отличается от LDAP_PORT
LDAP_DIRECT_SSL=true       # если отличается от LDAP_SSL
MFA_REQUIRED_ROLES=        # доп. роли с обязательным MFA, через запятую

После правки env — php artisan config:cache.

Если Мультифактор в вашей инсталляции навешан не через LDAP-прокси (например, политиками на стороне сервиса) — отключение для неадминов настраивается в админке Мультифактора, приложение к этому готово.

Технические детали

  • Версия в config/journals.php: 1.7.0 → 1.7.1.
  • Новые файлы: app/Ldap/MfaConnectionSelector.php, тесты tests/Unit/MfaConnectionSelectorTest.php (5 тестов: обычный юзер без MFA, админские роли с MFA, неизвестный логин с MFA, фича выключена без хоста, eloquent-режим не затронут).
  • config/ldap.php: подключение direct + список mfa.admin_roles (база в коде, добавления через env).
  • Подсказка «Подтвердите вход в приложение Multifactor» и озвучка на странице входа показываются как раньше; для неадминов вход просто произойдёт сразу. Текст озвучки можно поменять в «Настройках озвучки входа».

Миграции

Не требуются.