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

18.05.22

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

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

Скачать файл

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

Наименование По подписке [?] Купить один файл
Двухфакторная аутентификация (8.3.21):
.rar 19,21Kb
85
85 Скачать (1 SM) Купить за 1 850 руб.

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    15376    25    32    

35

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

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

2400 руб.

29.08.2016    30060    9    1    

10

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

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

30.05.2024    6238    kamisov    17    

60

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

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

27.02.2024    7372    PROSTO-1C    10    

39

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

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

1 стартмани

27.10.2023    2420    platonov.e    1    

23

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

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

5 стартмани

24.04.2023    6264    20    soulner    8    

32

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

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

2 стартмани

08.12.2022    7292    50    Silenser    12    

24
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. vld1973 90 18.05.22 10:22 Сейчас в теме
Спасибо за подробное описание порядка подключения двухфакторной аутентификации.
Сами планируем переходить на некоторых конфигурациях на стандартную двухфакторную аутентификацию, после того, как версия режима их совместимости станет 8.3.21
cleaner_it; +1 Ответить
2. vov4ik1212 68 18.05.22 12:27 Сейчас в теме
(1) Пробовал запускать клиент УТ 11 (не последнюю) платформой 8.3.21, двухфакторная аутентификация работает
3. vld1973 90 18.05.22 12:47 Сейчас в теме
(2) Спасибо за информацию, я скачал вашу разработку для тестирования
4. insurgut 208 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 208 20.05.22 08:58 Сейчас в теме
(5) конечно нет. Приложение, которое работает автономно, не требуя подключения к сети интернет.
7. TMV 14 20.05.22 10:40 Сейчас в теме
(6) Как это приложение связано с 1С?
8. insurgut 208 20.05.22 10:43 Сейчас в теме
(7) а оно и не должно быть связано с 1С. Где вы видели двухфакторную аутентификацию на сайтах, чтобы пользователям необходимо было устанавливать 1С? Поэтому я и говорю, что описанное в статье - это не двухфакторная аутентификация, а аутентификация по токену.
9. TMV 14 20.05.22 10:45 Сейчас в теме
(8) Причем здесь какие-то сайты?
Тут речь о 2хфакторной авторизации в 1С - не могу понять, как это будет работать с приложением Google Authenticator - объясните?
10. insurgut 208 20.05.22 10:48 Сейчас в теме
(9) никак - она в 1С не реализована. Самим реализовывать только.
12. RocKeR_13 1366 20.05.22 17:08 Сейчас в теме
(8) Google Authenticator - это тоже аутентификация по одноразовому токену. В общем случае X-факторная аутентификация - это подтверждение личности пользователя X различными способами. Соответственно, двухфакторная аутентификация - это подтверждение авторизации двумя разными способами. В данном случае, первый способ - это постоянный пароль. Второй способ - это подтверждение входа по одноразовому ключу, отправленному на устройство пользователя. И тут неважно, каким способом доставляется ключ - с помощью Google Authenticator, по СМС или через бота телеги. Ключевое здесь - это доставка одноразового ключа на устройство, которым физически владеет пользователь. Об этом же все есть на сайте 1С
cleaner_it; consolerat; Somebody1; Award; swenzik; +5 Ответить
13. KOTzilla 22 27.05.22 10:29 Сейчас в теме
(4)
Это не двухфакторная аутентификация (по крайней мере в классическом её исполнении)


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

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


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

Это на случай, когда первый фактор, скомпрометирован.
18. vov4ik1212 68 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/
на правах рекламы ))
sskripatch; +1 Ответить
22. paladinum 11.12.23 17:47 Сейчас в теме
Спасибо за статью. Подскажите, а если реализовывать доставку кода через электронную почту (в 1С уже есть адрес пользователя и код 1С сама генерирует). Может ли 1С сразу отправить это сообщение на почту пользователя, или все равно нужно использовать какой-то сторонний сервис, который преобразует http(s) запрос (с почтой и кодом в заголовках) в электронное письмо пользователю?
23. vov4ik1212 68 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
26. kalyaka 1105 28.06.24 13:27 Сейчас в теме
Проблема двухфакторной аутентификации от 1С в том, что она возможна только при работе через веб-сервер, Т.е, даже в локальной сети компании для использования такого вида аутентификации потребуется развернуть кластер веб-серверов и весь трафик между тонким клиентом и сервером 1С пустить еще через одно промежуточное звено - веб-сервер.
27. digo 03.10.24 19:57 Сейчас в теме
Скачал, поднастроил под себя, но так и не смог запустить (
После ввода пароля выдается сообщение "Поставщик дополнительной проверки доступа вернул ошибку"
28. vov4ik1212 68 04.10.24 08:18 Сейчас в теме
(27) Проверьте адрес куда отправляете, там 200 код кажется должна страница вернуть.
29. digo 04.10.24 16:42 Сейчас в теме
В браузере обращение к http сервису выдает "GET ok"
В ЖР есть событие Сеанс. Ошибка аутентификации и больше ничего.
Отладчик нигде не срабатывает.
Не понимаю где искать
30. digo 04.10.24 17:48 Сейчас в теме
Вот инфо из ТЖ

Content-Encoding: zstd',Body=116
42:17.170000-30997,SCALL,0,process=1cv8c,OSThread=10400,ClientID=4,Interface=bc15bd01-10bf-413c-a856-ddc907fcd123,IName=IVResourceRemoteConnection,Method=0,CallID=16510,MName=send,DstClientID=197782
42:17.170001-0,VRSRESPONSE,3,process=1cv8c,OSThread=15060,Status=402,Phrase=Payment required,Headers='Content-Type: application/xml; charset=utf-8
Content-Length: 1963',Body=1963
42:17.170002-0,EXCP,3,process=1cv8c,OSThread=15060,Exception=580392e6-ba49-4280-ac67-fcd6f2180121,Descr='src\vrscore\src\VResourceSessionImpl.cpp(379):
580392e6-ba49-4280-ac67-fcd6f2180121: Ошибка при выполнении запроса POST к ресурсу /e1cib/login:
17ef6ddf-df7f-481d-b419-86b782720c2b: Поставщик дополнительной проверки доступа вернул ошибку'
42:17.170003-0,EXCP,3,process=1cv8c,OSThread=15060,Exception=17ef6ddf-df7f-481d-b419-86b782720c2b,Descr='src\mngcln\src\ClientPerformerImpl.cpp(3595):
17ef6ddf-df7f-481d-b419-86b782720c2b: Поставщик дополнительной проверки доступа вернул ошибку'
42:18.748001-0,EXCP,3,process=1cv8c,OSThread=15060,Exception=17ef6ddf-df7f-481d-b419-86b782720c2b,Descr='src\mngcln\src\ClientPerformerImpl.cpp(3513):
17ef6ddf-df7f-481d-b419-86b782720c2b: Поставщик дополнительной проверки доступа вернул ошибку'
42:18.748002-0,VRSREQUEST,3,process=1cv8c,OSThread=15060,Method=POST,URI=/e1cib/additionalAuthSettings,Headers='User-Agent: 1CV8C
31. vov4ik1212 68 05.10.24 06:22 Сейчас в теме
(30) post запрос куда то не туда отправляет. Проверьте шаблон отправки, постараюсь в понедельник обработку дополнить выводом пути запроса
Оставьте свое сообщение