Шифрование паролей к внешним системам

Пароли к внешним системам могут храниться как в открытом, так и в закрытом (зашифрованном) виде. По умолчанию шифрование паролей отключено.

С версии 4.15 учетные данные вновь созданных подключений для интеграций с почтой, CTI и для импорта будут храниться в базе данных по умолчанию в зашифрованном виде, независимо от значения параметра encryption.enabled.

Включение шифрования

Чтобы включить шифрование паролей, в файле dbaccess.properties установите значение параметра encryption.enabled=true.

После включения encryption.enabled=true, пароли, указанные ранее в открытом виде, автоматически НЕ зашифровываются и будут обрабатываться не корректно. Для корректной обработки паролей выполнить действия, указанные ниже.

Пароли, заданные через интерфейс администратора

Пароли, заданные в открытом виде через интерфейс администратора (к ним относятся пароли для подключения к серверам входящей и исходящей почты, импорта и CTI), необходимо задать повторно через интерфейс администратора или зашифровать методом api.encryption.encryptAllPasswords().

Пароли из внешних файлов

Пароли в открытом виде могут быть заданы в файле dbaccess.properties, ldap-settings.xml, jms-settings.xml и external-settings.xml.

Пароли, заданные в открытом виде, при включении свойства encryption.enabled=true не влияют на работу приложения. В лог приложения выводится запись вида "Encrypted value of property '"название свойства" is '"зашифрованный пароль"=='".

Чтобы зашифровать пароли, необходимо указать полученное зашифрованное значение в виде строки "название свойства".enc - зашифрованный пароль, после чего старую строку можно удалить.

В строке "название свойства".enc нельзя задавать открытый пароль, приложение попытается его расшифровать.

Свойство "название свойства".enc указывается для следующих паролей:

Для файлов ldap-settings.xml и jms-settings.xml существует тег <encPassword>, в котором хранится зашифрованный пароль пользователя. Тег <encPassword> используется вместо <password>, если включено шифрование паролей в dbaccess.properties.

Пример. При включенном режиме шифрования в файле dbaccess.properties указан открытый пароль db.password=stand. При поднятии приложения в лог будет выведена запись вида "Encrypted value of property 'db.password' is 'lHdkJiHfOfiHhdosJH=='". Замените строку "db.password=stand" на строку "db.password.enc=lHdkJiHfOfiHhdosJH==".

Чтобы указать зашифрованные значения паролей без перезапуска приложения, можно использовать метод api.encryption.encryptString.

Выключение шифрования

Чтобы отключить шифрование паролей, в файле dbaccess.properties установите значение параметра encryption.enabled=false (или удалите строку со свойством).

Для продолжения работы после выключения шифрования паролей требуется:

  • Для замены паролей, задаваемых через интерфейс администратора, на незашифрованные (открытые), необходимо воспользоваться методом api.encryption.decryptAllPasswords().
  • Для замены паролей из файла dbaccess.properties, необходимо перезаписать их в незашифрованном виде в соответствующих строках.