Шифрование паролей к внешним системам
Пароли к внешним системам могут храниться как в открытом, так и в закрытом (зашифрованном) виде. По умолчанию шифрование паролей отключено.
- Включение шифрования
- Настройки внешних паролей после включения шифрования
- Настройки паролей, заданных через интерфейс администратора, после включения шифрования
- Выключение шифрования
- Шифрование паролей к внешним системам
Включение шифрования
Включение режима шифрования паролей выполняется в конфигурационном файле dbaccess.properties.
Чтобы включить шифрование паролей, выполните следующие действия:
-
В конфигурационном файле dbaccess.properties установите значение параметра encryption.enabled=true.
- Перезапустите приложение.
Настройки внешних паролей после включения шифрования
Описание внешних паролей
Пароли в открытом виде могут быть заданы в конфигурационных файлах dbaccess.properties, ldap-settings.xml, jms-settings.xml и external-settings.xml.
После включения шифрования, пароли, указанные ранее в открытом виде, автоматически не зашифровываются и будут обрабатываться не корректно.
Для файлов ldap-settings.xml и jms-settings.xml существует тег <encPassword>, в котором хранится зашифрованный пароль пользователя. Тег <encPassword> используется вместо <password>, если включено шифрование паролей в dbaccess.properties. Для файлов external-settings.xml используется тег <clientSecret>.
Параметры, которые подлежат шифрованию, в dbaccess.properties
В конфигурационном файле dbaccess.properties для следующих параметров указывается свойство "название свойства".enc:
db.password.enc=null; ru.naumen.core.authentication.ad-authenticator.user-password.enc=null ru.naumen.samlfilter.keystore.password.enc=null
Выполнение шифрования паролей, указанных ранее в открытом виде
-
Получите зашифрованное значение пароля, указанного ранее в открытом виде:
-
В консоли
В конфигурационных файлах dbaccess.properties, ldap-settings.xml, jms-settings.xml и external-settings.xml выберите свойства, хранящиеся в открытом виде (см. Параметры, которые подлежат шифрованию, в dbaccess.properties).
В консоли для каждого свойства определите зашифрованное значение методом api.encryption.encryptString. Например, если необходимо зашифровать пароль со значением password, в консоли нужно вызвать метод api.encryption.encryptString('password').
-
В логах приложения
В логах приложения найдите все записи вида "Encrypted value of property 'db.password' is 'lHdkJiHfOfiHhdosJH=='".
В данном случае lHdkJiHfOfiHhdosJH== - это зашифрованное значение пароля db.password
-
-
В конфигурационных файлах укажите полученное зашифрованное значение в виде строки %название свойства%.enc, например, db.password.enc, или <encPassword>, после чего незашифрованные значения можно удалить.
В строке "название свойства".enc нельзя задавать открытый пароль, приложение попытается его расшифровать.
- Перезапустите приложение.
Примеры
-
При включенном режиме шифрования в файле dbaccess.properties указан открытый пароль db.password=stand.
При запуске приложения в лог будет выведена запись вида "Encrypted value of property 'db.password' is 'lHdkJiHfOfiHhdosJH=='".
В конфигурационном файле замените строку "db.password=stand" на строку "db.password.enc=lHdkJiHfOfiHhdosJH==".
-
При включенном режиме шифрования необходимо зашифровать пароль со значением password.
В консоли вызовите метод api.encryption.encryptString('password').
Зашифрованное значение, полученное в ответе метода, укажите в конфигурационном файле.
Если режим шифрования уже включен, то пароли, заданные в открытом виде, не влияют на работу приложения. В лог приложения выводится запись вида "Encrypted value of property '"название свойства" is '"зашифрованный пароль"=='".
Настройки паролей, заданных через интерфейс администратора, после включения шифрования
К паролям, заданным через интерфейс администратора, относятся пароли для подключения к серверам входящей и исходящей почты, импорта и CTI.
С версии 4.15 учетные данные вновь созданных подключений для интеграций с почтой, CTI и для импорта хранятся в базе данных по умолчанию в зашифрованном виде, независимо от значения параметра encryption.enabled.
После включения режима шифрования пароли, заданные в открытом виде через интерфейс администратора, необходимо задать повторно через интерфейс администратора или зашифровать методом api.encryption.encryptAllPasswords().
Выключение шифрования
Выключение режима шифрования паролей выполняется в конфигурационном файле dbaccess.properties.
Чтобы отключить шифрование паролей, в конфигурационном файле dbaccess.properties установите значение параметра encryption.enabled=false или удалите строку со свойством. Перезапустите приложение.
Для продолжения работы после выключения шифрования паролей требуется:
-
Для замены паролей, задаваемых через интерфейс администратора, на незашифрованные (открытые), необходимо воспользоваться методом api.encryption.decryptAllPasswords().
- Для замены паролей из файла dbaccess.properties, необходимо перезаписать их в незашифрованном виде в соответствующих строках.
После замены паролей перезапустите приложение.