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

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

В версии платформы «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-запроса закончилось ошибкой. Например, провайдер не работает, тогда можно попробовать другого провайдера, который умеет выполнять аналогичные действия (другой набор настроек).

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

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

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

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

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

См. также

Рассказываем об условиях обновления, а также о том, для чего и кому полезен переход на налоговый мониторинг как форму взаимодействия с ФНС.

сегодня в 16:07    121    ЕленаЧерепнева    0       

1

Официальный технологический блог «Заметки из Зазеркалья» рассказал о планах по развитию функциональности Хранилища двоичных данных для технологической платформы 8.5.3. Главным образом, новые возможности будут актуальны для крупных корпоративных проектов.

вчера в 17:15    278    ЕленаЧерепнева    0       

2

Поставки 1С:CRM для малого и среднего бизнеса «Базовая» и «Стандарт» будут комплектоваться новой версией продукта – 3.1, а не 2.0, как раньше. Рассказываем об ограничениях и возможностях, которые есть в этих обновленных вариантах.

вчера в 13:01    296    ЕленаЧерепнева    0       

16

Разработчики опубликовали перечень задач, которые планируется включить в очередной релиз технологической платформы. Пока в списке 19 пунктов. Традиционно часть задач включены в план развития на основании пожеланий профессионального сообщества.

21.04.2025    669    ЕленаЧерепнева    1       

2

В платформе 8.5.3 новые возможности Механизма копий баз данных позволят оптимально определить состав объектов, которые требуется добавить из основной базы в копию для ускорения наиболее нагруженных операций чтения.

17.04.2025    2909    ЕленаЧерепнева    0       

5

Фирма «1С» обновила решение для автоматизации управления проектами и портфелями проектов для крупных и средних компаний. Рассказываем о новых возможностях и об условиях сопровождения устаревшей версии 4.2.

15.04.2025    885    ЕленаЧерепнева    0       

3

Фирма «1С» анонсировала изменения в работе механизма лицензирования. Начиная с версии технологической платформы 8.5.2 для выдачи лицензий больше не используется HASP License Manager. При этом сами правила лицензирования остаются без изменений.

11.04.2025    13624    ЕленаЧерепнева    4       

11

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

09.04.2025    1443    ЕленаЧерепнева    0       

4

Комментарии

Инфостарт бот
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 Сейчас в теме
Возможно ли включение двухфакторной авторизации только для веб-клиента?

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