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

15.03.2019      39696

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

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

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

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


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


См. также

Новость Зазеркалье

Официальный технологический блог продолжает рассказывать о том, как будет проходить миграция с интерфейса «Такси» на новый интерфейс. На этот раз речь идет о возможности совместного использования нового и старого интерфейса в одной конфигурации.

20.12.2024    1349    ЕленаЧерепнева    3       

2

Новость Зазеркалье

Несколько дней назад фирма «1С» сообщила о планах по переводу платформы и мобильных приложений 1С на новый, более современный интерфейс на базе «Элемента». Теперь появились подробности о механизме конвертации для перехода на новый интерфейс.

19.12.2024    4106    ЕленаЧерепнева    6       

0

Новость Платформа 1С v8.3 Зазеркалье

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

17.12.2024    443    ЕленаЧерепнева    1       

-1

Новость Платформа 1С v8.3 Зазеркалье

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

13.12.2024    5248    ЕленаЧерепнева    4       

2

Новость

С 1 января 2025 года изменятся цены на продукты Инфокрафт: Формула ЖКХ и услуги сопровождения. До 28 декабря включительно вы можете продлить использование продуктов и модулей по старым ценам.

13.12.2024    532    DaryaRasina    0       

1

Новость Зазеркалье

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

10.12.2024    17973    ЕленаЧерепнева    17       

5

Новость Зазеркалье Мобильные приложения

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

03.12.2024    651    ЕленаЧерепнева    0       

2

Новость Платформа 1С v8.3 Зазеркалье

Улучшенная система взаимодействия, развитие средств аутентификации и новый механизм уведомления пользователей – рассказываем о главных нововведениях, вошедших в очередной релиз технологической платформы 8.3.26.

29.11.2024    11238    ЕленаЧерепнева    3       

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


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