В платформе 1С реализовали механизм двухфакторной аутентификации пользователей

В платформе 1С реализовали механизм двухфакторной аутентификации пользователей
15.03.2019
39955

В версии платформы «1С:Предприятие» 8.3.15 реализовали механизм, который обеспечит дополнительную защиту информационной базы. При входе в базу механизм потребует подтвердить личность пользователя двумя разными способами.

Аутентификация

В системе «1С:Предприятия» аутентификация означает проверку логина и пароля пользователя на корректность. Платформа выполняет эту операцию самостоятельно, или пользуется помощью другого надежного ресурса, будь то операционная система или аутентификация OpenID.

OpenID – открытый стандарт децентрализованной системы аутентификации. Технология позволяет создавать единую учетную запись для аутентификации на множестве не связанных друг с другом интернет-ресурсов.

У такой системы есть недостаток: для своего удобства пользователи придумывают простые и короткие пароли. Но это противоречит сути «запароливания» данных, которые мы хотим защитить: простые пароли легко взломать.

Двухфакторная аутентификация – один из самых надежных способов защиты информации. Чтобы пройти проверку личности, пользователю нужны два из трех типов данных, например:

  • логин / пароль;
  • мобильный телефон;
  • отпечаток пальца.

Например, мы вводим логин и пароль, а затем входим по отпечатку пальца. Либо вводим присланный на мобильный телефон код.

Платформа «1С» проверит первый фактор  самостоятельно, а для второго ей потребуется помощник – провайдер.

Провайдер второго фактора аутентификации

Провайдер-помощник – веб-сервис, обладающий некоторым интерфейсом, состоящим из HTTP-запросов. Это может быть:

  • база «1С:Предприятия» с реализованным набором HTTP-сервисов, позволяющих пересылать сообщения или выполнять аутентификацию;
  • сторонний сервис, генерирующий коды для второго фактора аутентификации.

Для нас важно, чтобы провайдер умел общаться посредством HTTP-запросов.

Сценарии аутентификации

Существует два возможных сценария для второго фактора аутентификации: для «простых» и «умных» провайдеров.

В первом случае клиентское приложение показывает пользователю окно дополнительной аутентификации:

 

 

Сервер генерирует код второго кода и отправляет HTTP-запрос провайдеру с сообщение для пользователя: «Ваш аутентификационный код 94573». Провайдер пересылает СМС с кодом на мобильный телефон пользователя, его остается лишь ввести в специальном окне.

В этом случае генерирует код и формирует сообщения сервер. Провайдер только передает сообщение пользователю, а платформа ждет ввода кода.

«Умные» провайдеры сами генерируют секретный код, сообщение, умеют информировать пользователя и проверять его данные. Сервер сообщает клиентскому приложению о необходимости дополнительно проверить пользователя. Клиентское приложение покажет окно второго фактора аутентификации. 

 

Как работает «умный» провайдер

 

Сервер отправляет HTTP-запрос провайдеру с просьбой самостоятельно аутентифицировать пользователя. «Умный» провайдер просит у пользователя отпечаток пальца через специальное приложение. Пользователь сканирует палец и в окне дополнительной аутентификации указывает, что проверка пройдена. Провайдер сообщит серверу результаты, и при успешном завершении процедуры пользователь сможет начать работу.

Пользователи и провайдеры

Для каждого пользователя провайдер и способ аутентификации определяется отдельно. Чтобы описать HTTP-запросы, которые следует отправить провайдеру, в во встроенном языке платформы реализовали новый тип – ШаблонНастройкиВторогоФактораАутентификации.

Объекты этого типа – именованные объекты, которые можно сохранить в базе данных. Каждый шаблон используется для сохранения двух HTTP-запросов: один для запроса аутентификации, другой – для получения ее результата.

Оба этих запроса описываются с помощью привычных объектов HTTPЗапрос, но имеют две интересные особенности:

  • для каждого из запросов задается свой HTTP-метод в виде строки;
  • некоторые поля в запросах можно «параметризировать», используя «&» (например, &sms_phone_number). Запросы для разных пользователей будут одинаковыми, различаются лишь некоторые поля: номер телефона для отправки кода, например.

Шаблон для простого провайдера, отправляющего СМС, формируется по одному запросу – для аутентификации. Шаблон «умного» провайдера содержит два запроса: просьба выполнить аутентификацию и запрос результатов аутентификации.

После сохранения шаблонов для провайдеров, каждый из них присваивается определенному пользователю вместе с набором значений для параметров, которые должны подставляться в этот шаблон.

Для пользователя с шаблоном «простого провайдера» записывается один параметр:  адрес для отправки HTTP-запроса (host):

Пользователь, для которого используется «умный» провайдер, потребует больше параметров:

Важно: каждому пользователю можно задать не один «набор» настроек, а несколько (массив). Свойство ОбработкаНастроекВторогоФактораАутентификации позволяет применять их по очереди в том случае, если исполнение текущего HTTP-запроса закончилось ошибкой. Например, провайдер не работает, тогда можно попробовать другого провайдера, который умеет выполнять аналогичные действия (другой набор настроек).

Журнал регистрации

Для всех новых сценариев аутентификации в журнал регистрации добавили новые события и новые поля некоторым старым событиям. Поэтому контролировать можно не только двухфакторную проверку пользователя, но и связанные с ней действия: изменение шаблонов или настроек пользователей.

Подробнее о механизме

Если вам удобнее смотреть новости в телеграме, то вот наша группа – ИНФОСТАРТ.

Автор:
Редактор

См. также

Приложение «1С:Простые продажи 8.5» не предназначено для реального учета, но позволяет убедиться, что работать с обновленным UX мобильной платформы 1С стало удобнее и быстрее. Скачать приложение можно во всех популярных маркетах.

31.03.2025    795    Alisa_Brineva    0       

3

1С:MDM Управление НСИ на 90 дней с закрытым программным кодом поступила в продажу. Этот вариант поставки будет полезен для всех, кому необходимо ознакомиться с возможностями продукта и протестировать его работу внутри собственной ИТ-инфраструктуры.

26.03.2025    1577    ЕленаЧерепнева    1       

3

В 1С:Предприятие 8.5.3 планируется добавить возможность просмотра файлов Microsoft Office и документов некоторых других форматов. Об этом сообщил официальный технологический блог «Заметки из Зазеркалья».

12.03.2025    1014    ЕленаЧерепнева    2       

4

Фирма «1С» сообщила об успешном проведении нагрузочных испытаний 1С:ERP для 30 000 пользователей с использованием PostgreSQL под управлением ОС Linux. По методике APDEX система продемонстрировала индекс производительности 0.858, то есть «Хорошо».

04.03.2025    3074    ЕленаЧерепнева    4       

6

В экосистеме 1С появился продукт, создающий код с использованием искусственного интеллекта. Это 1С:Напарник, с помощью которого можно переводить человеческий язык в код 1С, создавать подсказки, объяснять написанное кем-то или делать код-ревью.

04.03.2025    13214    ЕленаЧерепнева    25       

13

Фирма «1С» сообщила о выходе рабочего релиза технологии 1С:Предприятие.Элемент 7.0 и поступлении в продажу облачных тарифов и лицензии для локальной инсталляции. Рассказываем о новой платформе для разработки консьюмерских приложений от фирмы «1С».

03.03.2025    10405    ЕленаЧерепнева    17       

24

Фирма «1С» опубликовала обновленный план задач для 1С:Предприятие 8.5.3. Большая часть пунктов уже имеет статус «Выполнено», некоторые перенесены на следующую версию. Рассказываем, чего ждать от 8.5.3 и что учитывать в своих проектах.

28.02.2025    1644    ЕленаЧерепнева    0       

2

Фирма «1С» сообщила о выходе новой редакции специализированного решения 1С:Производственная безопасность 2.0, о бесплатном переходе с 1С:StopCOVID на «Охрану окружающей среды», а также о новых ценах на лицензии для конфигурации уже с 1 апреля.

17.02.2025    1762    ЕленаЧерепнева    0       

2

Комментарии

Инфостарт бот
1. Darklight 15.03.19 14:59 Сейчас в теме
Программный API это конечно хорошо, но я думал двухфакторную аутентификацию встроят прямо в платформу - чтобы можно было использовать без программирования.
batyaevyug; kyzen1c; igor_k39; mnemchinov; w.r.; +5 Ответить
2. s22 15.03.19 15:41 Сейчас в теме
(1) А по факту так и сделано.
Только сделали, что бы было удобно через БПС
3. w.r. 15.03.19 16:56 Сейчас в теме
(2) сомнительное какое-то «удобство». Все-равно надо пилить напильником конфигурацию похоже
4. s22 15.03.19 18:05 Сейчас в теме
(3) Те, у кого конфа на БСП получат данное улучшение без дополнительного программирования.
На мой взгляд 1с приняла наилучшее решение.
A_Max; Артано; +2 Ответить
5. _anton3077944_ 15.03.19 19:06 Сейчас в теме
Вообще неплохо было бы, если бы сделали аутентификацию по сертификату ЭЦП.
Причём аутентификацию не только пользователя, но и компьютера.
Потому как клиент поставил задачу сделать доступ в базу, расположенную во fresh, только с определённых компьютеров (в том числе и некоторых личных ноутбуков), а как это организовать - не знаю
6. s22 15.03.19 20:23 Сейчас в теме
(5)
Потому как клиент поставил задачу сделать доступ в базу, расположенную во fresh, только с определённых компьютеров (в том числе и некоторых личных ноутбуков), а как это организовать - не знаю


Доступ только через ВПН.
А ВПН настраивается через сертификат.
dobryiden; _anton3077944_; +2 Ответить
9. insurgut 16.03.19 15:28 Сейчас в теме
(6) а причем тут fresh?
7. androgin 16.03.19 01:15 Сейчас в теме
непонятно, как будут теперь мобильные приложения отрабатывать авторизацию.
Если в тонком клиенте я сделаю двойную авторизацию, а для мобильного мне это не нужно - то как это реализовать?)))
У меня в мобильном приложении авторизация проходит при запуске, так как приложение хранить учетные записи пользователя. Это будет сильно раздражать и замедлять запуск приложения.
Мобильное приложение создано в XCode, а не сборщиком 1С
8. PerlAmutor 16.03.19 08:08 Сейчас в теме
А как сделать другой тип авторизации - собственный? Я хочу, чтобы всех пользователей без разбора, без какой-либо авторизации сразу запускало в базу, а там я уже сам спрошу с помощью диалогов всю необходимую мне информацию и обработаю собственными алгоритмами.
12. Артано 18.03.19 06:32 Сейчас в теме
(8) Руками =) Такие проверки реализовывались еще на семерке, так что проблемы не вижу. Или неверно понял вопрос
13. PerlAmutor 18.03.19 06:38 Сейчас в теме
(12) Не знаю в 1С такой настройки для полного отключения типовой авторизации. После запуска конфигурации я хочу, чтобы пользователя сразу пускало в базу без выбора пользователя и ввода (пусть даже пустого) пароля. Чтобы он мог в ней полазить с какими-то минимальными правами, а затем оттуда же, например, авторизоваться под конкретной учетной записью, где бы я ему создал новую сессию с уже другим набором прав (ролей и их RLS).
14. Артано 18.03.19 06:41 Сейчас в теме
(13) Понял, такого нет. Подобные вещи реализованы в некоторых конфигурациях, за счет дублирования функциональности. Т.е. все заходят под одной универсальной ролью типа "пользователь", а далее уже по итогам авторизации подключается система контроля по профилю полномочий. РЛС работать не будет, но при подходящей архитектуре решения, это и не потребуется
10. insurgut 16.03.19 15:29 Сейчас в теме
Нескромный вопрос - а за СМС кто платит? Сама 1С?
15. androgin 19.03.19 14:05 Сейчас в теме
(10) указано, что сторонние сервисы
16. insurgut 19.03.19 15:06 Сейчас в теме
(15) вообще странное нововведение - самому в 5-10 строчек кода это реализуется. На месте 1С можно было бы выпустить свой веб-сервис аутентификации + приложение для мобильных устройств, аналогично Google.Authenticator. Тогда и платить никому ни за что не пришлось бы. 1 раз зарегался и все, пароль всегда под рукой.
17. androgin 19.03.19 21:20 Сейчас в теме
(16) очень сомневаюсь, что никому и ни за что))))
это же 1С ))
сами будут тарифицировать)
11. Идальго 16.03.19 16:15 Сейчас в теме
Блин, лучше бы они оптимизацией своего кода занимались, чтобы упр.формы тормозили поменьше.
Skolkovo; anderson; IllayDevel; asupsam; zakiap; +5 Ответить
18. Hokner 12.01.21 10:15 Сейчас в теме
Возможно ли включение двухфакторной авторизации только для веб-клиента?

Оставьте свое сообщение