Управление пользователями
Сервис хранит информацию о пользователях данных.
Внимание
Хранение данных в версии 3.1
Основной способ хранения данных сервиса Управление пользователями - DatareonDB. Подробности приведены в разделе Поддержка работы с СУБД MSSQL и PostgreSQL.
Внимание
Особенности при переходе c версии 3.0 на 3.1
При обновлении версии с 3.0 на 3.1 в качестве способа хранения будет использоваться DatareonDB. Для миграции данных используется дополнительный инструмент.
Внимание
Особенности работы в кластере
Обязательным условием для сервиса, работающего с DatareonDB в кластере, содержащем больше одного сервера, является привязка к одному из серверов кластера. В частности, при создании сервиса требуется привязать к одному из серверов и настроить резервирование данных.
Создание сервиса
Чтобы создать сервис:
В ЦН перейдите в раздел Сервисы.
Нажмите на кнопку + над таблицей сервисов. В рабочей области страницы отобразится интерфейс создания / редактирования сервиса.
На вкладке Основные заполните следующие поля:
Название: произвольное название сервиса, необязательно для заполнения.
Имя: уникальное имя сервиса, обязательно для заполнения.
Комментарий: описание сервиса, необязательно для заполнения.
Для создания сервиса выберите вариант Управление пользователями в разделе Настройка сервисов.
Для активации сервиса установите флажок Включен.
Нажмите на кнопку Сохранить изменения.
Нажмите на кнопку Применить конфигурацию.
Управление пользователями
Для управления пользователями данных могут быть использованы следующие инструменты:
методы на C#, которые можно вызывать из алгоритмов/функций. Описание методов в коде приведено в разделе Разработчику.
API узла, контроллер CredentialExternalUsers.
UI (формы типа Управление пользователями).
Примечание
В рамках одного кластера может быть создан только один сервис Управление пользователями.
Хранение данных
Для хранения данных используется DatareonDB. Файлы данных сервиса размещаются следующим образом:
Windows:
путь_к_каталогу_с_данными_ПлатформыPlatformDataDatareonPlatformCredentialидентификатор_Credential
Linux:
путь_к_каталогу_с_данными_Платформы/platform/data/DatareonPlatformCredential/идентификатор_Credential
Файлы с данным будут размещены на всех серверах, указанных при настройке резервирования данных сервиса.
Поддержка работы с СУБД MSSQL и PostgreSQL
Функциональность использования СУБД MSSQL и PostgreSQL для хранения данных сервиса поддерживается, но считается устаревшей. Новая функциональность сервиса, а также устранение ошибок выполняется только для способа хранения с использованием DatareonDB.
Вкладка Параметры с полями настроек подключения к СУБД убрана со страницы сервиса в ЦН, изменение настроек подключения к СУБД возможно в режиме редактирования конфигурации на странице сервиса в ЦН. В будущих релизах работа сервиса с СУБД MSSQL и PostgreSQL будет прекращена.
При работе с СУБД PosgreSQL сервис подключается по имени базы данных в регистре, указанном в настройках. По умолчанию подключение производится по имени базы данных в нижнем регистре. Если сервис подключен к базе данных, имя которой содержит символы верхнего регистра, рекомендуется выключить сервис, переименовать базу данных и включить сервис снова.
Миграция данных из MSSQL и PostgreSQL в DatareonDB
При установке версии 3.1 в качестве хранилища данных выбирается DatareonDB вне зависимости от текущих настроек. Для продолжения работы необходимо выполнить миграцию данных либо указать хранение данных в СУБД MSSQL и PostgreSQL и выполнить миграцию позже.
Миграция данных выполняется с помощью специальной утилиты-конвертера. Архив с утилитой и руководством по использованию доступен для скачивания на портале.
Чтобы переключить сервис на использование DatareonDB, на странице сервиса в ЦН в режиме редактирования конфигурации установите true в значении ключа internalStorage, сохраните изменения и примените конфигурацию.
Аутентификация для пользователей данных
Аутентификация может быть включена:
Во внешних системах Веб-сервис и REST API.
В custom-адаптерах.
В сервисе Веб-интерфейс.
При включении / выключении аутентификации все веб-сервисы перезапускаются, чтобы корректно включить / выключить функцию аутентификации.
Все остальные параметры аутентификации берутся из сервиса управления пользователями. Если сервис управления пользователями отсутствует, включение аутентификации невозможно.
При включенной аутентификации в веб-сервисах в swagger сверху отображается кнопка Authorize и контроллеры с методами для аутентификации. При этом методы (все или некоторые) перестают работать без аутентификации.
Как работает аутентификация:
Клиент вызывает метод для получения токена, передав логин и пароль.
Сервис отправляет запрос в сервис Управление пользователями, который проверяет все данные, и если все ок - записывает данные в таблицу sessions и возвращает сервису готовую сессию. Сервис сохраняет сессии в памяти. Данные о сессии возвращаются клиенту.
Если вы пользуетесь swagger, то полученный токен без кавычек необходимо вставить в поле, которое появляется при нажатии на кнопку Authorize в swagger, дописав перед ним Bearer, и нажать на кнопку Authorize.
Если сервис перезапускается, то при первом запросе от клиента данные о сессии будут заново загружены из сервиса Управление пользователями.
Обновление токена возможно, если эта опция включена в настройках сервиса Управление пользователями. Обновление также возможно через запрос к самому сервису (появляется еще один метод в контроллере аутентификации). Соответственно, если сервис Управление пользователями неактивен, аутентификация невозможна.
Если пользователя блокируют / удаляют, все сессии на сервисах должны прерваться не позднее указанного в настройках Управление пользователями времени (параметр CreditalsLifetime).
Если сервис Управление пользователями отсутствует, включение аутентификации невозможно. При этом Веб-сервис-клиент может использовать базовую и анонимную аутентификацию без помощи сервиса Управление пользователями.
При включенной аутентификации в веб-сервисах в swagger сверху отображается кнопка Authorize и контроллеры с методами для аутентификации. При этом методы (все или некоторые) перестают работать без аутентификации (для веб-обработчиков аутентификация настраивается включением флага Требуется авторизация).
Блокировка неактивных пользователей
Сервис поддерживает возможность отслеживания неактивных пользователей и отключения их в дальнейшем.
Если пользователь не использует учетную запись в течение установленного времени, он будет отключен. Данная настройка доступна в конфигурации сервиса:
Параметры:
"withoutLoginDays"
- количество дней без авторизации для пользователя в системе."userUpdatingProccessTime"
- периодичность выполнения обработчика.
Параметр «userUpdatingProccessTime» не является обязательным: по умолчанию процесс очистки срабатывает каждый день в полночь. Если параметр задан, поведение изменяется в соответствии с заданным интервалом. Значение параметра имеет формат 00:00:00 (часы, минуты, секунды).
Примечание
Пока не запустится нода, процесс может завершаться с таймаутом подключения.
Примечание
Пользователи Администратор и Система в обработке не участвуют.
Примечание
Если в параметре withoutLoginDays указано значение 0, обработка не выполняется.
Получение пользователей для отключения:
При выборке пользователей учитывается общее количество дней (текущий момент времени минус дата последнего входа в систему, значение LastLoginDateTime больше или равно указанному значению в withoutLoginDays).
Блокировка пользователя при неуспешных попытках входа
Параметр "maxFailedPasswordAttempts"
(Максимальное количество попыток входа) используется для контроля попыток ввода аутентификационных данных пользователя. Цифровое значение параметра определяет количество допустимых попыток введения неправильного пароля (при значении 0 параметр выключен). После исчерпания указанных попыток ввода аутентификационных данных пользователь будет заблокирован.
При неуспешной попытке входа в Центр мониторинга счетчик последовательных неудачных попыток входа увеличивается. Если количество попыток превышает заданный параметр, у пользователя снимается признак активности. В лог журнала сервиса Управление пользователями будет выведено предупреждение о блокировке пользователя.
Пример лога для обычных пользователей:
Примечание
Блокировка не распространяется на пользователей Администратор и Система.
Если количество неуспешных попыток входа у пользователей Администратор и Система превышает заданный параметр, в лог журнала сервиса Управление пользователями будет выведено сообщение об ошибке, при этом пользователь не будет заблокирован.
Пример лога для системных пользователей:
Срок действия пароля
При попытке аутентификации с использованием пароля с истекшим сроком действия происходит отказ в аутентификации пользователя и отображается соответствующая ошибка.
Параметр "isIndicationPasswordExpirationValidityPeriod"
имеет 2 варианта значений - true и false. Если значение равно true, включается отслеживание параметра "passwordExpirationDateCount"
. При значении false отслеживание не происходит.
Минимальное значение параметра "passwordExpirationDateCount"
- 0, максимальное - 365 дней.
Контроль повторного использования паролей
Для контроля повторного применения паролей используется параметр "numberOfLastBannedUserPasswords"
. Если новый пароль присутствует среди ранее введенных, будет отображено соответствующее сообщение об ошибке (Для [имя пользователя] нельзя установить данный пароль). Если пароль отсутствует в данных очереди хранения ранее введенных хешей паролей, новый пароль присваивается пользователю, а предыдущий попадает в список ранее введенных.
В очередь сохраняется список паролей со штампом времени использования. При значении параметра 0 в очередь хранения попадет объект с пустым списком паролей, а при авторизации проверка не будет выполняться. Перед сохранением, происходит добавление новой записи с предыдущим паролем в общий список, далее происходит сортировка списка по убыванию с учетом штампа времени использования пароля. В результате из этого списка берется количество записей, соответствующее значению, установленному в параметре. Далее этот список сохраняется в новой очереди.
Запрос принудительной смены пароля
Администратор ЦМ может запросить принудительную смену пароля для пользователя при аутентификации.
Примечание
Параметр недоступен для других пользователей.
Администратор также может изменить пароль для авторизованного пользователя. Для изменения пароля и / или запроса на смену пароля пользователем Администратору необходимо выбрать пользователя и внести изменения в следующем окне:

Внимание
При смене пароля пользователя Администратором текущая сессия пользователя будет завершена. При попытке аутентификации для пользователя будет отображено всплывающее окно для изменения пароля. Администратор обязан передать временный пароль пользователю для изменения на постоянный.
При установленном флажке Требовать смену пароля при следующем входе пользователь не сможет совершить вход, пока не пройдёт процедуру смены пароля в соответствующем всплывающем окне:

Пример конфигурации:
"lastLoginDateTime": "2024-12-12T13:49:59.0252802Z", "isPasswordExpired": false, "passwordTimestamp": "2024-12-12T13:49:59.0252802Z", "isPasswordAssignedByAdmin": false, "pwdToBeChanged": false
Резервирование данных
Резервирование данных используется для восстановления данных сервиса в случае выхода из строя одного из серверов.
Принцип работы
При включении резервирования данных на серверах создаются резервные копии данных, в которые будут реплицироваться сообщения при обмене данными. Количество серверов, на которые будут реплицироваться данные, настраивается параметром faultTolerance. Резервные данные могут быть созданы на любом из включенных в состав кластера сервере, при этом такой сервер продолжает выполнять назначенные ему функции работы с мастер-данными.
При выходе из строя одного из серверов, указанных в настройках конфигурации кластера, копии данных будут переданы в обработку Платформой.
Настройка
Включение и настройка резервирования данных осуществляется в конфигурации сервиса управления пользователями.
Параметры для резервирования данных находятся в поле hotRecoverySettingsGlobal.
Пример конфигурации:
"hotRecoverySettingsGlobal": {
"$type": "DT.HotRecovery.CredentialHotRecoverySettings, DT_Core",
"faultTolerance": 1,
"nodes": {
"$type": "System.Collections.Generic.Dictionary`2[[System.Guid, System.Private.CoreLib],[System.Collections.Generic.List`1[[System.Guid, System.Private.CoreLib]], System.Private.CoreLib]], System.Private.CoreLib",
"GuidOfСервер1": [
"GuidOfСервер2 "
],
"GuidOfСервер2 ": [
"GuidOfСервер3"
]
}
},
Где GuidOfСервер1, GuidOfСервер2, GuidOfСервер3 - это идентификаторы серверов в кластере.
Первым стоит сервер, данные которого резервируются (Master), вторым - сервер, на котором производится резервирование (Slave).
Информация о работе резервирования находится в ЦМ на вкладке Основные соответствующего сервера:

Мониторинг
В разделе ЦМ DebugCoveyor на вкладке Основные отображаются текущие параметры работы сервиса.

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