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

Возврат к списку

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

15.03.2019     

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

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

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

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



Источник: https://infostart.ru/journal/news/mir-1s/v-platforme-1s-realizovali-mekhanizm-dvukhfaktornoy-autentifikatsii-polzovateley_1022216/
Автор:
Дарья Расина Редактор


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


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

См. также