Защита системной учётной записи

Системная учётная запись — учётная запись пользователя, от имени которого сервис (Web-клиент, СУБП и пр.) должен подключаться к серверу Docsvision при выполнении служебных операций.

Не рекомендуется авторизоваться на клиентских рабочих местах под системными учётными записями, т.к. это может привести к ошибкам в работе системы.

При необходимости можно защитить шифрованием пароли системной учётной записи и учётной записи для работы с LDAP. Имена учётных записей шифровать не требуется. В данном разделе приведено руководство по шифрованию.

Для шифрования паролей используется утилита EncryptionTool, которая может быть установлена на Linux или Windows.

Для шифрования паролей потребуется использовать сертификаты RSA.

Установка и запуск утилиты на Linux

В Linux утилита устанавливается следующей командой:

sudo apt-get install docsvision-encryption

После установки утилита располагается по пути: /usr/lib/docsvision/tools/encryption.

Запустить утилиту можно из командной строки следующим образом:

Запуск из директории установки:
./encryption [command] [options]
Запуск из любой директории:
/usr/lib/docsvision/tools/encryption/encryption [command] [options]

Установка и запуск утилиты на Windows

В ОС Windows утилита будет установлена вместе с серверной частью модуля Платформа и после установки располагается по пути C:\Program Files (x86)\Docsvision\Platform\Tools.

Запуск из директории установки:
encryption.exe [command] [options]
Запуск из любой директории:
"C:\Program Files (x86)\Docsvision\Platform\Tools\encryption.exe" [command] [options]

Создание сертификата шифрования в Linux

  1. Создайте пару ключей шифрования, выполнив следующие команды:

    cd ~
    openssl req -newkey rsa:2048 -nodes -keyout docsvision.key -x509 -days 3654 -out docsvision.crt

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

  2. Сгенерируйте и сохраните сертификат docsvision.pfx:

    openssl pkcs12 -inkey docsvision.key -in docsvision.crt -export -out docsvision.pfx

    Пароль на сертификат указывать не нужно. Имена файлов ключей и пути можно указывать произвольные.

    Полученный сертификат в формате .pfx необходимо скопировать в каталог ~/.dotnet/corefx/cryptography/x509stores/my. Если каталог отсутствует, создайте его самостоятельно.

Аналогичным образом сертификат можно сгенерировать в Windows и экспортировать в формате .pfx без пароля.

В Windows полученный сертификат необходимо установить в хранилище сертификатов текущего пользователя.

Шифрование пароля учётной записи

Чтобы зашифровать пароль, выполните следующие команды:
  1. Зашифруйте пароль при помощи сертификата, полученного на предыдущем шаге.

    ./encryption encrypt [отпечаток сертификата]

    Отпечаток сертификата можно получить, выполнив запрос

    openssl pkcs12 -in docsvision.pfx -nodes | openssl x509 -noout -fingerprint
  2. В окне терминала введите пароль учётной записи для шифрования.

    В ответ будет выведен зашифрованный пароль.

  3. Сохраните имя и пароль УЗ в зашифрованном виде:

    1. Сохраните данные системной УЗ:

      В виде переменных окружения на машине с Windows:
      • DV_SystemUserAccount — имя системной учётной записи.

      • DV_SystemUserPassword — пароль системной учётной записи.

      • DV_DataProtectCertificateThumbprint — отпечаток сертификата шифрования.

      В конфигурационном файле модуля Платформа на сервере Linux:

      Добавьте в конфигурационный файл программы appsettings.json три параметра на корневом уровне:

      • SystemUserAccount — имя системной учётной записи в формате user@domain.com.

      • SystemUserPassword — пароль системной учётной записи в зашифрованном виде.

      • DataProtectCertificateThumbprint — отпечаток сертификата шифрования.

    2. Данные УЗ для работы с LDAP сохраните в конфигурационном файле модуля Платформа и/или Web-клиент:

        "Ldap": {
          "AuthType": "Basic",
          "Credential": {
            "UserName": "user@domain.com", (1)
            "Password": "value" (2)
          }
        },
        "DataProtectCertificateThumbprint": "thumbprint", (3)
      1 Имя УЗ LDAP.
      2 Пароль системной УЗ LDAP в зашифрованном виде.
      3 DataProtectCertificateThumbprint — отпечаток закрытого ключа шифрования SHA1.
      Указывается без двоеточия, например, D8602179888DC8402B393F11DCA16A3376DDF879.
      Если шифровать пароль не планируется, параметр можно не указывать.
      • Использовать одну УЗ в качестве системной и для работы с LDAP необязательно, можно указывать разные УЗ в конфигурационных файлах модулей Платформа и Web-клиент. Главное условие — указать верный пароль УЗ в зашифрованном или открытом виде.

      • Параметр DataProtectCertificateThumbprint в конфигурационном файле необходимо указать только один раз. Для шифрования пароля системной УЗ и УЗ LDAP используется один отпечаток сертификата.

  4. Если этого не было сделано ранее, установите сертификат шифрования в хранилище сертификатов текущего пользователя в ОС Windows и в каталог ~/.dotnet/corefx/cryptography/x509stores/my в ОС Linux.

    Сертификат нужно добавлять в домашнюю папку пользователя, от имени которого запускается сервис. Например, для пользователя root (от имени пользователя ROOT службы запускаются по умолчанию) полный путь будет: /root/.dotnet/corefx/cryptography/x509stores/my.
    Если папка отсутствует, создайте её самостоятельно.