Установка Connector Server#

Предупреждение

Обратите внимание!

Установка данного компонента необязательна. Он используется в ситуациях, когда по какой-либо причине idmx-engine не может напрямую подключаться к управляемым им ресурсам. Например, если idmx-engine находится в другом контуре сети, или требования информационной безопасности запрещают такое подключение.

В таких ситуациях можно установить и подключить компонент Connector Server в том сегменте сети, где расположены управляемые ресурсы, и производить подключение от idmx-engine к Connector Server для обеспечения безопасности или проксирования запроса между разными контурами.

Компонент idmx-connector-server (далее Connector Server) предназначен для подключения IDMX к ресурсам, расположенным вне контура, в котором находится инсталляция IDMX. Connector Server устанавливается на сервер или виртуальную машину с ОС на базе Linux (рекомендуется ОС Alt 8 СП), либо с ОС Windows 10 (опционально).

Пререквизиты:

  1. Установлен OpenJDK версии не ниже 11.

  2. В переменные среды добавлена переменная JAVA_HOME.

Установка:

  1. Скопируйте из дистрибутива с бинарными файлами IDMX на сервер архив idmx-connector-server.zip, расположенный в директории дистрибутива <distrib>/bh/.

  2. Разархивируйте скопированный архив idmx-connector-server.zip в директорию idmx-connector-server.

  3. Если в директории <server>/idmx-connector-server/connid-connector-server/lib/ есть файл connector-common-1.5.0.0.jar, удалите его.

  4. Откройте командную строку (консоль), перейдите в директорию connid-connector-server и выполните следующую команду:

    • Если ОС — Альт 8 СП или Linux: bin/ConnectorServer.sh -setKey -key <SECRET_KEY> -properties conf/connectorserver.properties;

    • Если ОС — Windows 10: .\bin\ConnectorServer.bat /setkey <SECRET_KEY> /properties .\conf\connectorserver.properties;

      , где <SECRET_KEY> — ключ доступа (пароль) для подключения IDMX к Connector Server. При выборе ключа доступа руководствуйтесь требованиями кибербезопасности к паролям. Рекомендуется избегать спецсимволов в ключе доступа, так как могут возникнуть проблемы с подключением.

После выполнения шагов выше, Connector Server будет установлен. Затем, перед использованием, необходимо провести его настройку.

Установка нескольких экземпляров Connector Server в одно пространство имен#

Если необходимо развернуть несколько экземпляров Connector Server для подключения к разным управляемым ресурам, можно воспользоваться функциональностью «мультиКС» и развернуть эти экземпляры в одном пространстве имен. Для настройки данной функциональности следует:

  1. Заполнить группу параметров engine.multics в корневом файле конфигурации.

  2. Обновить конфигурацию и развернуть IDMX.

  3. Для каждого экземпляра Connector Server следует создать и заполнить отдельную конфигурацию (согласно разделу Импорт конфигурации Connector Server в IDMX), указав в hostname путь до соответствующего экземпляра Connector Server с постфиксом.

Настройка Connector Server#

Connector Server поддерживает работу как по стандартному HTTP протоколу через Web Socket, так и по HTTPS с защитой через TLS 1.2.

Перед настройкой самого Connector Server следует также заполнить параметры в блоках connectorServer, serviceMesh.ingressGateway.ingress.connectorServer и secman.pkiSecretsEngine.idmxConnectorServer (при использовании TLS 1.2 и хранении секретов в Secret Management System).

При использовании геобалансировки также следует заполнить параметр serviceMesh.ingressGateway.geobalancer.hostConnServ. Параметр может принимать несколько значений через вложенный параметр host. Пример заполнения:

hostConnServ:
  - host: "geo1.idm.mydomain.ru"
  - host: "geo2.idm.mydomain.ru"
  - host: "geo3.idm.mydomain.ru"

Для настройки Connector Server следует:

  • Для работы по HTTP через Web Socket:

    1. Откройте файл <server>/idmx-connector-server/connid-connector-server/conf/connectorserver.propertiesи внесите следующие изменения:

      • connectorserver.protocol=WEB_SOCKET

      • connectorserver.port=<порт, по которому будет доступен Connector Server>

    2. Откройте файл <server>/idmx-connector-server/connid-connector-server/lib/logback.xml, найдите в нем строку <root level="debug">, замените значение параметра с debug на info и сохраните изменения.

  • Для работы по HTTP с защитой TLS 1.2:

    1. Получите от администраторов или создайте хранилище ключей с соответствующими требованиям кибербезопасности серверными сертификатами для подключения IDMX к Connector Server по TLS. Для создания хранилища вручную:

      1. Получите серверные сертификаты connectorserver.crt, connectorserver.key и rootCA.crt от администраторов удостоверяющего центра, отвечающих за сегмент сети, в котором расположена машина с Connector Server.

      2. Объедините сертификаты в единое хранилище ключей в формате pkcs12. Для сборки потребуется утилита openssl. Перейдите в командной строке в директорию с сертификатами и выполните команду:

        openssl pkcs12 -export -in connectorserver.crt -inkey connectorserver.key -out connectorserver.p12 -name connhost -CAfile rootCA.crt -caname root

        , где:

        -in — файл сертификата, добавляемого в хранилище;

        -inkey — файл приватного ключа сертификата, добавляемого в хранилище;

        -out — имя генерируемого хранилища в формате pkcs12;

        -name — краткое имя (alias) для пары сертификат-приватный ключ;

        -CAfile — файл корневого сертификата удостоверяющего центра (CA);

        -caname — краткое имя (alias) корневого сертификата.

      3. При генерации утилита запросит ввод пароля, например changeit, для защиты генерируемого хранилища. Сохраните этот пароль. При формировании пароля учитывайте рекомендации по заданию стойких паролей (смотрите раздел Доступ к приложению Руководства пользователя).

      4. Зашифруйте созданное хранилище при помощи утилиты keytool следующей командой:

        keytool -importkeystore -deststorepass changeit -destkeypass changeit -destkeystore connector.jks -srckeystore connectorserver.p12 -srcstoretype PKCS12 -srcstorepass changeit

        , где:

        -deststorepass — пароль от генерируемого зашифрованного хранилища;

        -destkeypass — пароль для доступа к приватному ключу (connectorserver.key) в генерируемом зашифрованном хранилище;

        -destkeystore — имя генерируемого зашифрованного хранилища;

        -srckeystore — имя хранилища в формате pkcs12, которое шифруется;

        -srcstoretype — тип (формат) хранилища, которое шифруется;

        -srcstorepass — пароль от хранилища в формате pkcs12, которое шифруется.

    2. Откройте файл <server>/idmx-connector-server/connid-connector-server/conf/connectorserver.properties и внесите следующие изменения:

      • connectorserver.usessl=true

      • connectorserver.protocol=WEB_SOCKET

      • connectorserver.port=<порт, по которому будет доступен Connector Server>

    3. Сохраните изменения в connectorserver.properties.

    4. В директории <server>/idmx-connector-server/connid-connector-server/ и скорректируйте файлы запуска:

      • Для Альт 8 СП (Linux): найдите файл ConnectorServer.sh и внесите в него следующие изменения:

        • В строке java -Xmx500m -Dlogback.configurationFile=lib/logback.xml -classpath "$CLASSPATH" \ добавьте в строку перед параметром -classpath "$CLASSPATH" \ переменные -Djavax.net.ssl.keyStore=bin\connector.jks -Djavax.net.ssl.keyStoreType=jks -Djavax.net.ssl.keyStorePassword=changeit, где:

          -Djavax.net.ssl.keyStore — путь к хранилищу ключей, используемом для TLS подключения, относительно директории connid-connector-server;

          -Djavax.net.ssl.keyStoreType — тип хранилища ключей (возможные варианты — jks, jceks);

          -Djavax.net.ssl.keyStorePassword — пароль для доступа к хранилищу ключей.

      • Для Windows 10: найдите файл ConnectorServer.bat и внесите в него следующие изменения:

        • В строке set JAVA_OPTS=-Xmx500m "-Djava.util.logging.config.file=conf\logging.properties" "-Dlogback.configurationFile=lib\logback.xml" добавьте в конец строки переменные "-Djavax.net.ssl.keyStore=bin\connector.jks" "-Djavax.net.ssl.keyStoreType=jks" "-Djavax.net.ssl.keyStorePassword=changeit", где:

          -Djavax.net.ssl.keyStore — путь к хранилищу ключей, используемом для TLS подключения, относительно директории connid-connector-server;

          -Djavax.net.ssl.keyStoreType — тип хранилища ключей (возможные варианты — jks, jceks);

          -Djavax.net.ssl.keyStorePassword — пароль для доступа к хранилищу ключей.

    5. Откройте файл <server>/idmx-connector-server/connid-connector-server/lib/logback.xml, найдите в нем строку <root level="debug">, замените значение параметра с debug на info и сохраните изменения.

Запуск Connector Server#

Для запуска Connector Server откройте командную строку, перейдите в директорию <server>/idmx-connector-server/connid-connector-server и выполните команду:

  • Если ОС — Альт 8 СП или Linux: bin/ConnectorServer.sh -run -properties conf/connectorserver.properties;

  • Если ОС — Windows 10: .\bin\ConnectorServer.bat /run /properties .\conf\connectorserver.properties.

Если запуск успешен, в консоли командной строки будет отражена строка вида o.i.f.s.tcp.ConnectorServerImpl - Connector Server started at <дата> <время>. После этого окно командной строки нельзя закрывать, так как это завершит работу Connector Server.

Проверка подключения по TLS#

Если Connector Server был сконфигурирован для подключения по TLS, следует проверить, что настройка была проведена корректно. Для этого:

  • На Альт 8 СП (Linux):

    1. На другой машине в сети, имеющей подключение к серверу с Connector Server, откройте коммандную строку (терминал), и выполните команду echo | openssl s_client -showcerts -connect connectorserver.mynet.ru:8759 2>/dev/null | openssl x509 -inform pem -noout -text, где:

      -connect — FQDN и порт, по которым доступен Connector Server.

    2. Команда сделает запрос к Connector Server и вернет информацию о сертификате, которым защищен Connector Server. Например:

      Certificate:
          Data:
              Version: 3 (0x2)
          Signature Algorithm: ecdsa-with-SHA256
              Issuer: O=my.org, CN=my.org Intermediate CA
              Validity
                  Not Before: Nov 16 08:57:32 2022 GMT
                  Not After : Nov 16 08:58:32 2023 GMT
              Subject: CN=connectorserver.mynet.ru
              Subject Public Key Info:
                  Public Key Algorithm: rsaEncryption
                      Public-Key: (2048 bit)
      
    3. Настройка TLS будет корректной, если:

      1. От сервера с Connector Server был возвращен ответ;

      2. В ответ на команду сервер предлагает сертификат;

      3. CN, указанный в Certificate:Signature:Subject сертификате, равен FQDN сервера.

  • На Windows 10:

    1. Перейдите по адресу https://connectorserver.mynet.ru:8759 (URL и порт, на которых развернут Connector Server) в любом браузере.

    2. На вкладке должна открыться страница с фразой 404 WebSocket Upgrade Failure.

    3. Настройка TLS будет корректной, если:

      1. Средства браузера подтверждают, что подключение к данной странице защищено по протоколу TLS 1.2 (даже если выводится сообщение, что сертификат недоверенный).

      2. При просмотре сертификата инструментами браузера, удостоверяющий центр соответствует удостоверяющему центру, выдавшему сертификаты, использованные для создания keystore Connector Server.

Импорт конфигурации хоста Connector Server в IDMX#

Чтобы IDMX мог использовать установленный и запущенный Connector Server, необходимо добавить конфигурацию хоста этого компонента в IDMX. Для этого:

  1. Перейдите в любое IDE или текстовый редактор с возможностью создания xml-файлов.

  2. Создайте новый файл и вставьте в него следующий XML код, заменив соответствующие значения параметров значениями для своих стендов:

    <connectorHost xmlns="http://midpoint.evolveum.com/xml/ns/public/common/common-3" xmlns:t="http://prism.evolveum.com/xml/ns/public/types-3" xmlns:protocol="http://midpoint.evolveum.com/xml/ns/public/connector-host-protocol-extension" oid="d7c941c0-1cf4-4fe7-b231-32e1a1c40bcf">
    
        <name>My local connector</name> <!--- имя создаваемой конфигурации в IDMX -->
        <hostname>localhost</hostname> <!--- имя хоста на котором развернут Connector Server -->
        <port>9999</port> <!--- порт для подключения к Connector Server -->
        <sharedSecret>
            <t:clearValue>admin</t:clearValue> <!--- укажите здесь то же значение, которое было задано как ключ доступа к Connector Server во время установки -->
        </sharedSecret>
        <protectConnection>true</protectConnection> <!--- false, если для соединения не используется TLS -->
        <extension>
            <protocol:connectionProtocol>WEB_SOCKET</protocol:connectionProtocol>
            <protocol:path>/</protocol:path>
        </extension>
    
    </connectorHost>
    
  3. Сохраните файл в файловую систему сервера.

  4. Войдите в UI установленной инсталляции IDMX.

  5. Импортируйте созданный файл согласно инструкции из документа Руководство пользователя, раздел Параметры настройки, подраздел Импорт конфигурационных файлов.

Передача заголовка Doctype#

IDMX при взаимодействии с Connector Server по умолчанию использует заголовок Doctype для передачи некоторых метаданных. Использование данного заголовка может не соотвествовать политикам безопасности, установленным департаментами ИБ и КБ. В таких случаях, использование заголовка Doctype можно отключить.

Для отключения передачи заголовка Doctype можно воспользоваться одним из следующих методов:

  • Отключить заголовок в UI IDM. Для этого:

    1. Войдите в UI IDM и перейдите на вкладку Конфигурация -> Хосты коннекторов.

    2. Откройте конфигурацию требуемого хоста коннекторов.

    3. Выберите для параметра «includeHeaderDoctype» значение false.

    4. Сохраните изменения

  • Вручную изменить конфигурацию хоста коннектора. Для этого:

    1. Откройте XML-конфигурацию хоста коннектора требуемого Connector Server на редактирование.

    2. В блок <connectorHost> добавьте строку <includeHeaderDoctype>false</includeHeaderDoctype>, либо замените значение данного параметра на false, если он уже существует в конфигурации.

    3. Сохраните изменения.

    4. Импортируйте измененную конфигурацию хоста коннектора в IDM.