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.