Установка расширения
Расширение устанавливается на конфигурацию ERP 2.5.9 (скорее всего оно может встать и на другие конфигурации или другие версии ERP, т.к. измененные объекты касаются только БСП), флаги защиты от опасных действий и безопасного режима нужно отключить.
Далее идем в раздел «НСИ и Администрирование \ Сервис \ Настройки двойной аутентификации»
В окне настроек заполняем идентификатор организации - c33d06d0-a8f7-45d0-87ca-ca83f856a6d5 (это уникальный идентификатор для тестовой организации, прошу учесть, что функционал работает на базе Yandex Cloud и является платным, так что если вызовов будет много, я вынужден буду отключить этот GUID, чтобы не платить за эти удобства из своего кармана, а без верного идентификатора сообщения высылаться не будут). Далее жмем кнопку «Записать» и «Проверить доступ к функционалу». В случае успеха, у вас должно появится окно вида:
В противном случае проверяйте настройки файрволла или VPN на вашей стороне. Обрезать запросы может, например, Internet Security из Zscaler. Содержимое ошибки будет в сообщении. Полный текст HTTP запроса можно посмотреть в общем модуле расширения.
Настройка двойной аутентификации
Заходим в «НСИ и Администрирование \ Администрирование \ Настройки пользователей и прав \ Пользователи». В форме появятся новые поля, отмеченные зеленым прямоугольником.
Флаг «Аутентификация токеном доступа» включает двойную аутентификацию.
Поле «Вариант аутентификации» - выбирает тип второго фактора аутентификации (на текущий момент доступны два варианта: email или telegram, другие варианты требуют вложения денежных средств, которые я вкладывать в (пока) некоммерческий проект вкладывать не хотелось бы).
Поле «Идентификатор пользователя» - для варианта аутентификации по telegram это будет идентификатор чата с ботом, а для электронной почты (email) – адрес электронной почты.
После сохранения настроек двойная аутентификация применится автоматически.
ВНИМАНИЕ! Не применяйте двойную аутентификацию на единственную административную учетную запись в базе, в случае проблем с вторым фактором вы рискуете заблокировать доступ на уровне администратора, всегда оставляйте административную учетную запись, без второго фактора. Двойная аутентификация будет работать даже в режиме Конфигуратор, так что будьте внимательны.
Как происходит двойная аутентификация
Сначала система запрашивает для учетной записи первый фактор аутентификации. Если вы используете авторизацию с помощью учетной записи LDAP, то никакого окна не появится, а если с помощью стандартной авторизации 1С – то появится окно с запросом пароля.
Далее, система запросит второй фактор, который вы должны получить через email или от бота telegram, в зависимости от настроек пользователя. Если ввести код правильно, то система загрузится.
Настройка для Email
В настройках пользователя включите флаг «Аутентификация токеном доступа», установите «Вариант аутентификации» в Email и в поле «Идентификатор пользователя» укажите его адрес электронной почты пользователя.
Следует учесть, что поскольку для отправки используется почтовый сервис Yandex, что иногда сообщения могут восприниматься как спам, так что если вы не получили сообщение от MultiFactorAuthorize@yandex.ru в течение 1-2 мин, то в окне дополнительной проверки нажмите ссылку «Отправить заново». Так же рекомендую добавить этого отправителя в список надежных.
Настройка для Telegram
В Телеграм ищем бота с именем @MFA1Ci_Bot, подключаемся к нему и начинаем чат. У бота есть меню, можете им воспользоваться и выбрать пункт «ID пользователя». Бот сообщит вам уникальный идентификатор вашего чата с ботом, который нужно ввести в настройках пользователя в поле «Идентификатор пользователя».
В настройках пользователя включите флаг «Аутентификация токеном доступа», установите «Вариант аутентификации» в Telegram и в поле «Идентификатор пользователя» укажите идентификатор чата, который вы получили на предыдущем шаге.
Принцип работы функционала
Функционал работает на базе Yandex Cloud Functions (https://cloud.yandex.ru/docs/functions/operations/function/function-create). Для каждого способа аутентификации написана отдельная функция на Node JS. При авторизации пользователя платформа выполняет сформированный из шаблона второго фактора аутентификации http запрос с 3мя параметрами:
- Идентификатор организации (для тестирования можете использовать тестовый GUID, приведенный в начале статьи)
- Идентификатор пользователя – адрес почты, ИД чата с ботом (в зависимости от способа аутентификации).
- Код аутентификации – уникальный цифровой код, формируемый платформой 1С через параметр &secret и высылаемый пользователю
Обновлено 4 янв 2023 г.
Добавлены коды процедур Yandex Cloud Functions на Node JS.