Двухфакторная аутентификация в 1С через Telegram и Email

04.01.23

Администрирование - Информационная безопасность

1С, начиная с версии платформы 8.3.21, добавили в систему возможность двойной аутентификации. Как это работает: в пользователе информационной базы появилось свойство «Аутентификация токеном доступа» (АутентификацияТокеномДоступа во встроенном языке), если установить этот признак и осуществить ряд манипуляций на встроенном языке, то появляется возможность при аутентификации отправлять HTTP запросы, которые и реализуют этот самый второй фактор. Данное расширение позволяет организовать двухфакторную аутентификацию с помощью электронной почты или мессенджера Telegram.

Скачать файл

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование По подписке [?] Купить один файл
Двухфакторная аутентификация в 1С через Telegram и Email:
.cfe 41,95Kb
35
35 Скачать (2 SM) Купить за 2 150 руб.
Yandex Cloud Function отправка сообщения в чат через бота telegram
.txt 1,79Kb
4
4 Скачать (3 SM) Купить за 2 450 руб.
Yandex Cloud Function отправка сообщения через Email
.txt 2,18Kb
7
7 Скачать (3 SM) Купить за 2 450 руб.
Yandex Cloud Function обработка команд бота telegram
.txt 2,03Kb
4
4 Скачать (3 SM) Купить за 2 450 руб.

Установка расширения

Расширение устанавливается на конфигурацию 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мя параметрами:

  1. Идентификатор организации (для тестирования можете использовать тестовый GUID, приведенный в начале статьи)
  2. Идентификатор пользователя – адрес почты, ИД чата с ботом (в зависимости от способа аутентификации).
  3. Код аутентификации – уникальный цифровой код, формируемый платформой 1С через параметр &secret и высылаемый пользователю

Обновлено 4 янв 2023 г.

Добавлены коды процедур Yandex Cloud Functions на Node JS.

Двухфакторная аутентификация

См. также

Информационная безопасность Системный администратор Программист Платные (руб)

AUTO VPN (portable) - автоматизация подключения пользователей к удаленному рабочему месту или сети посредством создания автоматического VPN (L2TP или L2TP/IPSEC и т.д.) подключения без ввода настроек пользователем (с возможностью скрытия этих настроек от пользователя). Программа автоматически выполняет подключение к VPN серверу и после успешного коннекта , если необходимо, подключение к серверу удаленных рабочих столов (RDP).

1200 руб.

24.03.2020    15363    25    32    

35

Информационная безопасность Программист Платформа 1С v8.3 Конфигурации 1cv8 Россия Платные (руб)

Предлагается внешняя обработка для просмотра данных в формате ASN1. Есть 2 режима: загрузка из бинарного формата и из BASE64. Реализована функция извлечения всех сертификатов, которые можно найти в ASN1-файле. В дополнении к этому продукту предлагается методическая помощь по вопросам, связанным с технической реализацией криптографии и шифрования в 1С.

2400 руб.

29.08.2016    30053    9    1    

10

Информационная безопасность Пароли Платформа 1С v8.3 Бесплатно (free)

Все еще храните пароли в базе? Тогда мы идем к вам! Безопасное и надежное хранение секретов. JWT авторизация. Удобный интерфейс. Демо конфигурация. Бесплатно.

30.05.2024    6205    kamisov    17    

60

Информационная безопасность Программист Платформа 1С v8.3 Бесплатно (free)

Рассмотрим в статье более подробную и последовательную настройку аутентификации в 1С с использованием распространенной технологии JWT, которая пришла в программу в платформе версии 8.3.21.1302.

27.02.2024    7302    PROSTO-1C    10    

39

Информационная безопасность Программист Платформа 1С v8.3 Абонемент ($m)

Интеграционные решения стали неотъемлемой частью нашей жизни. Правилом хорошего тона в современных приложениях является не давать интегратору доступ к чувствительным данным. Device flow позволяет аутентифицировать пользователя, не показывая приложению чувствительные данные (например: логин и пароль)<br> Рассмотрим Device flow аутентификацию, в приложении, на примере OpenID провайдера Yandex.

1 стартмани

27.10.2023    2409    platonov.e    1    

23

Информационная безопасность Системный администратор Платформа 1С v8.3 Конфигурации 1cv8 Россия Абонемент ($m)

Продукты на основе решений 1С уверенной поступью захватывают рынок учётных систем в стране. Широкое распространение программ всегда порождает большой интерес к ним со стороны злоумышленников, а пользователь 1С это одна из дверей в защищённый информационный контур предприятия. Обработка позволяет быстро и комплексно оценить настройки безопасности конкретной базы и возможности пользователя этой базы на сервере. Также можно оценить некоторые аспекты сетевой безопасности предприятия со стороны сервера 1С.

5 стартмани

24.04.2023    6251    20    soulner    8    

32
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. malikov_pro 1324 09.12.22 02:29 Сейчас в теме
Затея интересная, код функции Yandex Cloud опубликуете? А то тема с безопасностью с непрозрачным элементом глухая история.
2. Silenser 612 09.12.22 08:38 Сейчас в теме
(1)В принципе могу, конечно, но не вижу смысла, я просто взял готовый пример от Yandex и доработал под свои нужды. Эти варианты легко гуглятся, например вот https://cloud.yandex.com/en/docs/functions/tutorials/telegram-bot-serverless
Зачем вам текст самой функции - не очень ясно. Если с точки зрения безопасности, то при условии полного контроля над ресурсом с моей стороны, я могу эту самую функцию заменить как только мне будет нужно и вы об этом не узнаете. Ежели вы хотите как-то использовать мои изыскания в своем проекте - давайте договариваться :)
6. papami 56 27.12.22 21:36 Сейчас в теме
(2)
Немного не пойму... Почему бы в этом расширении просто напрямую не вызывать своего бота в Телеграм?
7. Silenser 612 28.12.22 08:09 Сейчас в теме
(6)боты в телеге не умеют слать сообщения кому попало, они могут писать только тем, кто начал с ними диалог, потому и нужен ИД этого чата, чтобы бот туда написал.
8. papami 56 28.12.22 09:01 Сейчас в теме
(7)
Я понимаю про ИД. Можно же слать сразу сообщение из платформы, минуя промежуточные сервисы.
9. Silenser 612 28.12.22 13:35 Сейчас в теме
10. papami 56 28.12.22 14:47 Сейчас в теме
(9) Можно настроить штатную двухфакторную проверку платформы, чтобы код проверки отправлялся сразу вызовом api.telegram.org
11. Silenser 612 29.12.22 07:15 Сейчас в теме
(10)понял, о чем вы. Мне показалось, что через бота будет более надежно и безопасно.
3. malikov_pro 1324 09.12.22 11:29 Сейчас в теме
(2)
"я просто взял готовый пример от Yandex и доработал под свои нужды." - ценность именно в том как собрано
Пример, сложность в понимании как собрать на стороне гугла https://infostart.ru/1c/articles/1283766/, исходники выложил чтобы коллеги могли разобраться и сделать что-то свое. В локальной сети через ONLYOFFICE так и не получилось собрать.

По решению аутентификации буду развивать направление обозначенное в https://infostart.ru/1c/articles/1538390/

Без исходников работать с черным ящиком или с неуправляемым сервисом продвинутые пользователи не будут.
4. Silenser 612 09.12.22 12:19 Сейчас в теме
(3)
Без исходников работать с черным ящиком или с неуправляемым сервисом продвинутые пользователи не будут.
Продвинутые сделают что-то свое, как сделал я. Не продвинутые будут работать с тем, что есть. Вы же используете Telegram, WhatsApp или приложение онлайн банкинга и не требуете, чтобы они открыли вам исходники?

(3)
По решению аутентификации буду развивать
удачи. Без иронии и лукавства, искренне желаю удачи любому интересному начинанию.
5. Silenser 612 09.12.22 12:39 Сейчас в теме
(3)Кстати, вот еще вариант, двойной аутентификации, на которую вы можете ориентироваться, там можно обойтись без внешних ресурсов https://infostart.ru/public/1660483/
malikov_pro; +1 Ответить
12. Silenser 612 06.01.23 00:51 Сейчас в теме
(3)работающий вариант оказался никому не нужен, так что выложил исходники
Оставьте свое сообщение