Заметки из Зазеркалья

14.01.2022

Развитие механизмов аутентификации

Данная статья является анонсом новой функциональности.
Не рекомендуется использовать содержание данной статьи для освоения новой функциональности.
Полное описание новой функциональности будет приведено в документации к соответствующей версии.
Полный список изменений в новой версии приводится в файле v8Update.htm.

Планируется в версии 8.3.22

В платформе появятся доработки, связанные с аутентификацией пользователей.

Улучшение аутентификации с использованием OpenID Connect

Некоторое время назад в платформу была добавлена возможность использования технологии OpenID Connect для аутентификации (на эту тему нами был проведен вебинар). Используя аутентификацию OpenID Connect можно проверить личность пользователя на основе аутентификации, выполненной сторонним провайдером (например, ЕСИА - в этом случае авторизация будет происходить через сайт Госуслуг gosuslugi.ru, или Google).

По результатам использования аутентификации OpenID Connect мы получили ряд пожеланий по доработке механизма:

  • При возникновении ошибок расследовать причину иногда бывает сложно, т.к. в сообщении об ошибке отображалось недостаточно информации, а в технологическом журнале логировались неинформативные тексты ошибок.
  • В каждом OpenID Connect-провайдере есть свой набор полей, которые могут выступать в качестве идентификатора для сопоставления пользователей информационной базы с пользователями конкретного провайдера, поэтому появилась потребность в сопоставлении пользователя с совершенно разными идентификаторами разных провайдеров. Например: email, телефон, СНИЛС, доменное имя компьютера, ID учетной записи и т.д. Текущая реализация такой возможности не предоставляет.

В версии 8.3.22 мы сделали механизм использования аутентификации OpenID Connect удобнее.

Изменение отображения ошибок

Мы поработали над повышением информативности текста ошибок и информации, помещаемой в технологический журнал, добавили подробные описания для наиболее распространенных ошибок.

Изменение параметров пользователя информационной базы

В тип данных ПользовательИнформационнойБазы добавлено новое поле КлючиСопоставленияПользователя (UserMatchingKeys) для сопоставления полей токена с полями пользователя информационной базы при аутентификации через OpenID Connect и аутентификации по JWT-токену.

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


Пользователь = ПользователиИнформационнойБазы.НайтиПоИмени("ИвановИИ");
Пользователь.КлючиСопоставленияПользователя.Вставить("google", "ivanov@gmail.com");
Пользователь.КлючиСопоставленияПользователя.Вставить("gosuslugi","123-456-789-10");
Пользователь.КлючиСопоставленияПользователя.Вставить("okta", "81234567890");

В данном примере один и тот же пользователь при аутентификации через Gmail сопоставляется с почтой, при аутентификации через Госуслуги - по СНИЛС, при использовании провайдера Okta - по номеру телефона.

Аутентификация в таком случае выполняется так же быстро, как и при сопоставлении по имени пользователя.

Возможность автоматической генерации паролей пользователей

В версии 8.3.22 появится возможность автоматической генерации паролей пользователей информационной базы.

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

img-01.png

Если в информационной базе настроено восстановление паролей, то в форме восстановления пароля пользователю также будет доступна автоматическая генерация пароля:

img-02.png

Генерация паролей будет также доступна из встроенного языка с помощью нового типа данных ГенераторСлучайныхПаролей с методом СлучайныйПароль().



Теги: 8.3.22 

Рассказать друзьям: