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

18.05.22

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

Недавно в 1С появилась возможность двухфакторной аутентификации. Пример такой аутентификации можно увидеть при входе в клиент-банках (когда вначале пользователь вводит логин-пароль, а затем ему прилетает смс). Как это все настроить, мы и разберем. Кроме настройки авторизации приложил простенькую конфигурацию с http-сервисом и telegram-ботом, который будет присылать коды доступа.

Скачать исходный код

Наименование Файл Версия Размер
Двухфакторная аутентификация (8.3.21):
.rar 19,21Kb
68
.rar 19,21Kb 68 Скачать

1.1. Создаем "Шаблон Настроек Второго Фактора Аутентификации", для этого выполняем простой код, можно внешней обработкой по кнопочке

ШаблонПровайдера = ШаблоныНастроекВторогоФактораАутентификации.СоздатьШаблон();
	
Запрос = Новый HTTPЗапрос;
Запрос.АдресРесурса = "&host"; //в этот параметр на следующем шаге запишется адрес куда отправлять HTTP запрос
Запрос.УстановитьТелоИзСтроки("Ваш код &secret","utf-8"); //тут можно изменить текстовку, обязательно ставим кодировку
	
ШаблонПровайдера.HTTPЗапросНаАутентификацию = Запрос;
ШаблонПровайдера.МетодHTTPЗапросаНаАутентификацию = "POST"; //тут или GET, или POST, я в дальнейшем буду запрашивать пароли через POST
ШаблонПровайдера.Имя = "ИмяШаблона"; //задаем имя шаблона, который используем в дальнейшем для назначения пользователю
	
ШаблорПровайдера.Записать();

1.2. Ставим галочку в конфигураторе у пользователя (Администрирование->Пользователи->ищем кому поставить) "Аутентификация токеном доступа"

 

 

1. 3. Теперь необходимо назначить шаблон Второго фактора аутентификации, для этого выполняем код

П = ПользователиИнформационнойБазы.НайтиПоИмени("ИмяПользователя"); //ИмяПользователя - меняем на имя пользователя
Найстройка = Новый НастройкаВторогоФактораАутентификации;
Найстройка.ИмяШаблонаНастройки = "ИмяШаблона"; //Имя шаблона задавали на 1-ом этапе
	
параметрыНастройки = новый Соответствие;
ПараметрыНастройки.Вставить("host","http://"127.0.0.1/otpavkod/hs/sendpass/?tel=123456789");//Задаем адрес на который будет отправлен HTTP Запрос с кодом для авторизации
Найстройка.Параметры = ПараметрыНастройки; //Задаем значение настройки

массивНастроек = Новый Массив;
массивНастроек.Добавить(Найстройка); //задаем массив настроек, тут важно, что это массив, а значит можно указать несколько настроек аутентификации
	
П.НастройкиВторогоФактораАутентификации = массивНастроек; //Устанавливаем настройки пользователю
п.ОбработкаНастроекВторогоФактораАутентификации = ТипОбработкиНастроекВторогоФактораАутентификации.ИспользоватьСледующуюПриОшибке; //что делать при некорректном вводе кода
П.Записать();

Второй этап. Провайдер для отправки сообщения пользователю. Можно выбрать любого, кто позволяет отправлять пользователю сообщения через HTTP запросы. Я пошел более сложным путем и сделал небольшую конфигурацию с http-сервисом. http-сервис получает HTTP запрос с кодом и пересылает через telegram пользователю.

Дальше небольшая инструкция по настройке конфигурации

2.1. 1-ое, что делаем, создаем бота telegramm, для этого пишем отцу всех ботов @BotFather и создаем нового бота, в ответ вам приходит token бота, токен задаем в константе "токкенбот"

2.2. Просим пользователя отправить сообщение нашему боту (бота можно найти через поиск в telegramm), лучше всего номер телефона

2.3. Заходим в режиме 1С-предприятие в обработку "Телеграмм Чат", дальше жмем "Получить ИД последнего сообщения", нам выходит сообщение и ид клиента, по которому с ним можно связаться, жмем "Записать клиента" (создается элемент справочника "Клиенты бота" Реквизит "Код" - ИД куда в дальнейшем будем отправлять сообщения с кодами доступа, Реквизит "Наименование" - сообщение пользователя, телефон)

2.4. Публикуем наш HTTP-сервис в конфигураторе Администрирование->Публикация на Веб-сервисе->Ставим галочку у "sendpass" (Закладка HTTP-Сервисы), Предварительно надо установить Apache, или ISS

2.5. Прописываем в шаблонах настройки пользователя из пункта (1.3.) Параметр "host" = "http://адрессервера/публикациябазы/hs/sendpass?tel=ТелефонПользователяИлиСообщениеКотороеОнОтправил

Проверено на платформе 8.3.21.

Двухфакторная аутентификация telegramm http-сервис

См. также

AUTO VPN (portable)

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

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

1200 руб.

24.03.2020    14611    23    32    

34

Хранение секретов в Hashicorp Vault для 1С

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

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

30.05.2024    2306    kamisov    14    

39

Настройка аутентификации в 1С с использованием стандарта RFC 7519 (JWT)

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

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

27.02.2024    3840    PROSTO-1C    10    

36

Device flow аутентификация, или туда и обратно

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

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

1 стартмани

27.10.2023    1922    platonov.e    1    

23

Анализатор безопасности базы сервера 1С

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

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

5 стартмани

24.04.2023    5682    18    soulner    7    

31

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

Информационная безопасность Системный администратор Программист Платформа 1С v8.3 1С:ERP Управление предприятием 2 Абонемент ($m)

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

2 стартмани

08.12.2022    6288    34    Silenser    12    

23
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. vld1973 86 18.05.22 10:22 Сейчас в теме
Спасибо за подробное описание порядка подключения двухфакторной аутентификации.
Сами планируем переходить на некоторых конфигурациях на стандартную двухфакторную аутентификацию, после того, как версия режима их совместимости станет 8.3.21
cleaner_it; +1 Ответить
2. vov4ik1212 66 18.05.22 12:27 Сейчас в теме
(1) Пробовал запускать клиент УТ 11 (не последнюю) платформой 8.3.21, двухфакторная аутентификация работает
3. vld1973 86 18.05.22 12:47 Сейчас в теме
(2) Спасибо за информацию, я скачал вашу разработку для тестирования
4. insurgut 207 19.05.22 22:25 Сейчас в теме
Это не двухфакторная аутентификация (по крайней мере в классическом её исполнении), даже 1С галочку назвала это своим именем. Главное отличие (достоинство) двухфакторной аутентификации в том, что никому ничего никуда отправлять не нужно. Открыл приложение, вроде Google Authenticator на своем смартфоне, ввел временный пароль. Все готово. Экономим трафик/смс, не зависим от работоспособности сервисов.
user802337; rabid_otter; +2 2 Ответить
5. TMV 14 20.05.22 00:41 Сейчас в теме
(4) Google Authenticator - это не сервис?
JohnyDeath; +1 Ответить
6. insurgut 207 20.05.22 08:58 Сейчас в теме
(5) конечно нет. Приложение, которое работает автономно, не требуя подключения к сети интернет.
7. TMV 14 20.05.22 10:40 Сейчас в теме
(6) Как это приложение связано с 1С?
8. insurgut 207 20.05.22 10:43 Сейчас в теме
(7) а оно и не должно быть связано с 1С. Где вы видели двухфакторную аутентификацию на сайтах, чтобы пользователям необходимо было устанавливать 1С? Поэтому я и говорю, что описанное в статье - это не двухфакторная аутентификация, а аутентификация по токену.
9. TMV 14 20.05.22 10:45 Сейчас в теме
(8) Причем здесь какие-то сайты?
Тут речь о 2хфакторной авторизации в 1С - не могу понять, как это будет работать с приложением Google Authenticator - объясните?
10. insurgut 207 20.05.22 10:48 Сейчас в теме
(9) никак - она в 1С не реализована. Самим реализовывать только.
12. RocKeR_13 1333 20.05.22 17:08 Сейчас в теме
(8) Google Authenticator - это тоже аутентификация по одноразовому токену. В общем случае X-факторная аутентификация - это подтверждение личности пользователя X различными способами. Соответственно, двухфакторная аутентификация - это подтверждение авторизации двумя разными способами. В данном случае, первый способ - это постоянный пароль. Второй способ - это подтверждение входа по одноразовому ключу, отправленному на устройство пользователя. И тут неважно, каким способом доставляется ключ - с помощью Google Authenticator, по СМС или через бота телеги. Ключевое здесь - это доставка одноразового ключа на устройство, которым физически владеет пользователь. Об этом же все есть на сайте 1С
cleaner_it; consolerat; Somebody1; Award; swenzik; +5 Ответить
13. KOTzilla 16 27.05.22 10:29 Сейчас в теме
(4)
Это не двухфакторная аутентификация (по крайней мере в классическом её исполнении)


1 этап - ввод логина и пароля
2 этап - подтверждение по коду

Чем это не классическая двухфакторная аутентификация? не важно сервис это или нет, смысл в разнородных механизмах аутентификации, даже если вам этот код, почтальон Печкин, принесет в конверте, это будет классической двухфакторной аутентификацией.
cleaner_it; +1 Ответить
14. insurgut 207 27.05.22 14:09 Сейчас в теме
(13) как это не важно, используется сервис или нет? Это прямо краеугольная разница между своим решением двухфакторной аутентификации "на коленке" и классической её версией, которая используется повсеместно на всех сайтах и основана на алгоритмах, которые генерируют временный пароль без наличия доступа к интернету или сотовой связи. Достаточно лишь открыть приложение на смартфоне и увидеть сразу временный пароль. Классическим я его называю из-за его повсеместности и массовости применения.
11. maksa2005 536 20.05.22 12:01 Сейчас в теме
1С явно нечем заняться, как придумывать 2х факторную защиту. Лучше бы методанные основной конфигурации и всех расширение было бы в видно в составе расширение
7OH; gvozditut; Mishanya; +3 5 Ответить
15. tl_pj 31.05.22 20:25 Сейчас в теме
Вы правда не знаете как пишется telegram, или это местный прикол такой?
16. DoReMu 6 03.06.22 06:53 Сейчас в теме
(15)
Вы правда не знаете как пишется telegram, или это местный прикол такой?


Вы решили прицепиться к двум буквам m в конце?
17. TVA_11 08.06.22 17:56 Сейчас в теме
А есть возможность настройки блокировки пользователя при ошибке на втором факторе аутентификации?

Это на случай, когда первый фактор, скомпрометирован.
18. vov4ik1212 66 10.06.22 12:48 Сейчас в теме
(17) Это по идее обработка умного сервиса
19. TVA_11 10.06.22 16:40 Сейчас в теме
(18) Когда пользователь заводит первый неправильный пароль, идет блокировка неверного ввода данных.

Не должно быть трудностей и с аналогичной блокировкой, в случае ошибок второго фактора?
21. efin 16.09.23 23:32 Сейчас в теме
(19) Нет, платформенная блокировка при нескольких неправильных вводах второго фактора не срабатывает.
20. Юрий-К 113 24.08.23 08:04 Сейчас в теме
Есть другое решение еще с 2016г https://infostart.ru/1c/tools/458286/
на правах рекламы ))
22. paladinum 11.12.23 17:47 Сейчас в теме
Спасибо за статью. Подскажите, а если реализовывать доставку кода через электронную почту (в 1С уже есть адрес пользователя и код 1С сама генерирует). Может ли 1С сразу отправить это сообщение на почту пользователя, или все равно нужно использовать какой-то сторонний сервис, который преобразует http(s) запрос (с почтой и кодом в заголовках) в электронное письмо пользователю?
23. vov4ik1212 66 12.12.23 14:59 Сейчас в теме
(22)Там отправляется именно http(s) запрос, т.е. в 1с в момент авторизации по 2-ому контуру 1с еще не запущена.
Т.е. надо будет куда то http(s) отправить и там уже разобрать его для отправки на эл-ку
24. SerJant_moscow 20.02.24 15:42 Сейчас в теме
Скажите пожалуйста, для того, чтобы сделать запрос с авторизацией в 1С (другая конфига работает как HTTP сервис) куда внести изменения?
25. SerJant_moscow 26.02.24 13:02 Сейчас в теме
(24) Сам себе ответил:

ШаблорПровайдера = ШаблоныНастроекВторогоФактораАутентификации.СоздатьШаблон();
	
	Запрос = Новый HTTPЗапрос;
	Запрос.АдресРесурса = "&host";
	Запрос.УстановитьТелоИзСтроки("&secret","utf-8");
	Запрос.Заголовки.Вставить("Authorization", "Basic AAAAAXXXCCCXCXCX");


Вместо AAAAAXXXCCCXCXCX должна быть связка логин/пароль в формате Base64, взять можно из того же postman, в разделе headers, key = Authorization
Оставьте свое сообщение