DatareonPlatformCredential
DatareonPlatformCredential — это один из базовых сервисов Платформы. Он запускается на каждом сервере кластера автоматически и отвечает за хранение данных пользователей, ролей и матрицы доступа.
Примечание
Настройка политики безопасности выполняется в разделе Управление пользователями. Создание ролей и пользователей в разделе Управление доступом.
Внимание
С версии 3.2 DatareonSecurity в новой архитектуре больше не используется и не доступен в Центре настройки.
Основные функции сервиса Credential:
Хранение пользователей, ролей, связей между ними.
Формирование и актуализация матрицы доступа.
Обмен данными авторизации между серверами кластера.
Репликация таблиц с данными о доступе.
В конфигурации следующие параметры:
{
"$type": "DT.ClusterConfiguration.DefaultService, DT_Core",
"config": {
"$type": "DT.ConfigurationRepository.Configuration.ModuleConfiguration.CredentialConfig, DT_ConfigurationRepository",
"reuseAfter": 10,
"storeJournalPeriod": 7,
"loggingActions": [],
"tokenSettings": {
"$type": "DT.Credential.TokenConfig, DT_Core",
"tokenLifetime": 60,
"refreshTokenLifetime": 1440
},
"creditalsLifetime": 300,
"updateTime": 60,
"numberOfLastBannedUserPasswords": 0,
"withoutLoginDays": 0,
"maxFailedPasswordAttempts": 0,
"authDomainSettings": {
"$type": "DT.ConfigurationRepository.Configuration.ModuleConfiguration.AuthenticationDomainConfig, DT_ConfigurationRepository",
"enabled": false,
"serverAuthenticationAddress": "",
"serverAuthenticationPort": 0
},
"secretFields": [],
"additionalFields": [],
"passwordSettings": {
"$type": "DT.ConfigurationRepository.Configuration.ModuleConfiguration.PasswordSettings, DT_ConfigurationRepository",
"checkPassword": false,
"passwordLength": 0,
"needCapitalLetters": false,
"needSmallLetters": false,
"needSpecialCharacters": false,
"needNumbers": false,
"useCustomRegex": false,
"passwordRegex": "",
"passwordExpirationDateCount": 30,
"isIndicationPasswordExpirationValidityPeriod": false
},
"logoutAfterPswChanged": false,
"schedulerOptions": "*/10 * * * * *",
"storageDataReplicator": "ReplicationOn",
"maxArchiveSendSize": 1048576
},
"isActive": true,
"folderId": "12345678-1234-5678-0000-123456789000",
"entityId": "00000000-1234-5678-0000-123456789000",
"clusterId": "00000000-0000-0000-0000-000000000000",
"name": "УправлениеПользователями",
"description": "Управление пользователями",
"comment": "",
"version": 2,
"tagsCollection": [],
"fieldsFromGlobalBusiness": {
"$type": "System.Collections.Generic.Dictionary`2[[System.String, System.Private.CoreLib],[System.String, System.Private.CoreLib]], System.Private.CoreLib"
},
"className": "DefaultService",
"classNameStr": "Базовый сервис"
}
Настраиваемые параметры описаны в базовом сервисе Управление пользователями.
Взаимодействие с Центром настройки
Авторизация в Центре настройки в кластере выполняется через Credential. Для этого сервис поднимает pipe-сервер для локального взаимодействия с ControlServer. Дополнительно предусмотрен TCP-сервер — его можно использовать для удаленных вызовов.
Матрица доступа
Матрица доступов формируется на старте из внутренних таблиц сервиса для того, чтобы Платформа могла сразу применять базовые правила доступа. После подключения Центра настройки матрица пересобирается на основе присланной конфигурации и сохраняется в сервис.
Репликация между серверами
Credential синхронизирует таблицы с данными доступа между серверами кластера. Выполняется по настройке в конфигурации сервиса StorageDataReplicator.ReplicationOn.
Для синхронизации данных в таблицах реализован класс CredentialReplicatorJob.
С периодичностью, заданной в конфигурации schedulerOptions (формат cron-расписания), выполняется рассылка всех указанных таблиц:
_externalUsers.
_folders.
_journal.
_roleFolders.
_roleUsers.
_sessions.
_users.
_usersSecretFields.
_usersAdditionalFields.
_userOldPasswords.
_failedPasswordAttempts.
_roles.
_accesses.
_businessRoles.
_businessRoleToRoleTable.
_metadatas.
Схема взаимодействия между Credential
Токены аутентификации (tokenSettings)
Для работы с Центром настроек (ЦН) и Центром мониторинга (ЦМ) используются два типа токенов:
короткий токен (access token).
длинный токен (refresh token).
Короткий токен (tokenLifetime)
Параметр tokenLifetime определяет время жизни короткого токена и пользовательской сессии. Значение указывается в минутах (по умолчанию 60 минут).
Короткий токен используется для аутентификации запросов и обновляется автоматически при наличии активности пользователя в ЦН или ЦМ. При отсутствии активности по истечении заданного времени токен становится недействительным. Активностью считается наличие открытой вкладки браузера с ЦН или ЦМ и доступного сетевого подключения.
Длинный токен (refreshTokenLifetime)
Параметр refreshTokenLifetime определяет время жизни длинного токена. Значение указывается в минутах (по умолчанию 1440 минут = 24 часа).
Длинный токен используется для автоматического обновления короткого токена в рамках активной сессии. Если короткий токен обновляется в пределах времени жизни длинного токена, повторная авторизация не требуется.
Если в течение времени refreshTokenLifetime длинный токен не использовался (отсутствовала активность пользователя), дальнейшее обновление сессии становится невозможным, и для продолжения работы требуется повторная авторизация.
Примечание
При значениях по умолчанию короткий токен автоматически обновляется при активности пользователя и становится недействительным после 60 минут бездействия.
Длинный токен ограничивает общее время жизни сессии 24 часами и определяет момент, после которого требуется повторная авторизация.