В данной статье будет рассмотрен процесс установки и настройки Indeed Enterprise Server версии 7.0 в инфраструктуре, где в качестве хранилища данных используется SQL Server, в качестве каталога пользователей используется домен Active Directory.
Предварительные условия для установки:
- Наличие домена Active Directory (уровень функциональности леса и домена не ниже Windows Server 2008)
- Наличие у пользователя, под которым будет осуществляться установка и настройка системы прав на создание объектов в домене и выдачу прав для созданных объектов.
- Наличие выделенной виртуально или реальной серверной машины для развертывания Indeed Enterprise Server, включенной в домен.
- Наличие у пользователя прав локального администратора на серверной машине.
В статье установка будет производиться в домене indeed-id.local , а в качестве серверной машины будет выступать Windows Server 2012.
Создание базы данных и пользователя.
- Откройте SQL Server Management Studio.

- Подключитесь к SQL серверу указав данные для подключения.

- Создайте новую базу данных для хранения данных системы Indeed-id.
- Разверните компоненты вашего SQL сервера.
- Нажмите правой кнопкой мыши “Databases”.
- Выберите “New Database”.

- Введите имя для новой базы данных и нажмите “Ok”.

Создание учетной записи для работы с базой данных.
- Разверните узел “Security”, нажмите правой кнопкой мыши по “Logins”, выберите “New Login...”.

- На странице “General” выполните:
- Выберите “SQL Server authentication”.
- Введите имя пользователя и пароль.
- Отключите параметр “User must change password at the next login”.
- Выберите ранее созданную базу данных.

- На странице “Server Roles” добавьте роль “sysadmin”. Данная роль дает полные права пользователю на сервере.

- Нажмите “Ok”.
Создание служебной учетной записи для работы с каталогом пользователей.
- Необходимо определиться, какой объект в домене будет являться каталогом пользователей для нашей системы. Это может быть либо весь домен (в этом случае система будет работать с пользователями всего домена). Либо это может быть отдельное подразделение - в этом случае система будет "видеть" только пользователей данного подразделения (OU).
В нашем примере мы будем использовать в качестве каталога пользователей весь домен indeed-id.local.
- Необходимо создать служебную учетную запись для работы системы с каталогом пользователей. От имени этой учетной записи сервер Indeed EA будет подключаться к каталогу пользователей из предыдущего пункта и получать информацию по пользователям из Active Directory. Для данной учетной записи необходимо выдать права на чтение на весь каталог пользователей, который был определен в предыдущем пункте.
В нашем примере мы создадим пользователя IndeedCatalogUser, который и будет служебной записью для чтения данных пользователей домена. По-умолчанию у всех пользователей в домене есть права на чтение данных всех объектов в домене, если политикой безопасности не задано обратное, поэтому нашему пользователю не потребуется выдавать дополнительные права.
Установка и настройка EA Server 7.0.
- Выполнить вход на серверную машину, выделенную для установки и настройки Indeed Enterprise Server 7.0, под пользователем с правами локального администратора.
- Развернуть на серверной машине роль Web Server (IIS) со следующим списком компонентов:
– Статическое содержимое (Static Content) – Перенаправление HTTP (HTTP Redirection) – ASP.NET – Расширяемость .NET (.NET Extensibility) – Расширения ISAPI (ISAPI Extensions) – Фильтры ISAPI (ISAPI Filters) – Обычная проверка подлинности (Basic Authentication) – Windows-проверка подлинности (Windows Authentication) – Консоль управления службами IIS (IIS Management Console)
- Для ускорения и упрощения процесса установки роли IIS мы рекомендуем воспользоваться скриптом из следующей статьи: https://support.indeed-id.ru/Knowledgebase/Article/View/325/0/skript-dlya-avtomaticheskoi-ustanovki-roli-iis-dlya-dalneishei-korrektnoi-ustanovki-indeed-emcindeed-cm
После запуска скрипта Вы получите сервер с ролью IIS со всеми необходимыми компонентами.
- Выполнить на сервере установку .NET Framework 4.5.2
- Выполнить установку Indeed Enterprise Server 7.0 через запуск инсталлятора IndeedEA.Server-v7.0.x64.ru-ru.msi (каталог \Indeed Enterprise Server\<номер версии>\ дистрибутива)

- Выполнить установку необходимых провайдеров аутентификации, которые планируются к использованию (каталог \Indeed Providers дистрибутива).
Важно: для корректной работы всех провайдеров аутентификации (за исключением HOTP) требуется установка Indeed Bsp Broker (каталог \Indeed Providers\Indeed BspBroker\7.0.1\ дистрибутива).
Установка провайдеров аутентификации и Indeed Bsp Broker производится через запуск соответствующих пакетов msi.
В нашем примере мы выполним установку Indeed Software TOTP Provider (позволяет использовать для аутентификации OTP на мобильном устройстве сгенерированные, например, приложением Google Authenticator) и Indeed Bsp Broker (необходим для работы провайдера Indeed Software TOTP Provider, как отмечалось выше).

- Добавить привязку https в настройка Default Web Site в IIS Manager (Indeed Enterprise Server 7.0 является Web приложением, которое работает на базе IIS, в процессе установки для него по умолчанию включается обязательно требование SSL в настройках, что в свою очередь требует включенной привязки https).
- Если будет использоваться протокол http, необходимо отключить в конфигурационном файле использование https по умолчанию. Для тега "appSettings key="requireHttps" установить значение "false".

Редактирование конфигурационного файла.
- Открыть конфигурационный файл сервера.
C:\inetpub\wwwroot\easerver\Web.config.
- Добавить секретный ключ для подписи токена.
<logonSettings secretKey="SECRET_KEY"/> Для генерации рекомендуется использовать утилиту keygen (Indeed Enterprise Server\7.0.2\Misc\EA.KeyGen.exe) выбрав произвольный алгоритм.  
- Задать каталог пользователя системы, для этого необходимо отредактировать тэг: adUserCatalogProvider.
- id - задать произвольный уникальный идентификатор каталога. Для данного примера задается: AD.
- serverName - имя домена Active Directory, в котором находится каталог. В данном примере используется: indeed-id.local.
- containerPath - путь к контейнеру в виде Distinguished Name или весь домен, если для хранения пользователей используется весь домен. Для данного примера:DC=indeed-id,DC=local.
- userName - имя сервисной учетной записи для подключения к каталогу пользователей. В данном примере используется: IndeedCatalogUser.
- password - пароль сервисной учетной записи каталога пользователей в AD. В данном примере используется: QWqw123.

- Указать корневой идентификатор провайдера работы с каталогом, необходимо отредактировать атрибут rootUserCatalogProviderId в теге userCatalogProviderSettings.
- rootUserCatalogProviderId - задать значение, которое уже было задано в тэге adUserCatalogProvider в атрибуте id. Для данного примера: AD.

- Задать хранилище данных системы. Для хранилища данных в SQL Server редактируем тег dbContextSettings.
- rootDbContextId - задать произвольно уникальное значение идентификатора хранилища. Для примера задается mysql.
- Заменить тег adDbContexts на mssqlDbContexts.
- Заменить тег adDbContext на mssqlDbContext.
- Редактирование атрибута mssqlDbContext.
- id - задать значение, которое уже было задано в тэге rootDbContextId в атрибуте id. Для данного примера: mysql.
- Добавить параметр connectionString, со встроенными параметрами:
- Задать ключ шифрования данных системы. Редактируем тег encryptionSettings. Для генерации рекомендуется использовать утилиту keygen (Indeed Enterprise Server\7.0.2\Misc\EA.KeyGen.exe) выбрав произвольный алгоритм.
- cryptoAlgName - указать использованный алгоритм шифрования.
- cryptoKey - значения ключа, сгенерированного утилитой.
- certificateThumbprint - Thumbprint сертификата, которым зашифрован ключ (чтобы не учитывать - нужно удалить атрибут).


- Задать администратора системы. Редактируем тег - accessControlAdminSettings.
- userId - идентификатор пользователя в формате: “Идентификатор каталога(rootUserCatalogProviderId); нижнее подчеркивание; идентификатор пользователя в каталоге”.
В данном примере: AD_84e9ccd9-73a2-43c7-abc6-604a16902037. Пользователь должен находится внутри каталога пользователей. Получить GUID можно с помощью команды PowerShell (Предварительно необходимо установить компонент Remote Server Administration Tools):
Get-ADUser ИмяПользователя -Properties * | Select ObjectGUID


- Задать log-сервер. Редактируем тег - logServer.
- URL - url для подключения к log серверу в формате http(s)://имя сервера/ils/api. Если используется несколько серверов, указываем адрес балансировщика нагрузки.
- CertificateThumbprint - если закрытый ключ в реестре, а сертификат в хранилище компьютера.
- CertificateFilePath - если ключевая пара в pfx.
- CertificateFilePassword - пароль от pfx.

Настройка утилиты первичной конфигурации. Утилита находится: indeed EA 7.0\Indeed Enterprise Server\7.0.2\Misc\AccessControlInitialConfig. Она необходима для базовой выдачи прав на AccessControl, а так же на EMC (чтобы иметь доступ к веб интерфейсу).
- Открыть для редактирования файл EA.Server.AccessControlInitialConfig.exe.config.
- Редактировать атрибут key - параметр value необходимо поставить в значение true, если для авторизации мы хотим использовать Windows Token.
- Если сервер находится не в домене, есть вариант использовать один из следующих провайдеров: windows password, emailOTP, smsOTP. Для этого value должно быть в положении false.

- Запустить на доменной машине утилиту EA.Server.AccessControlInitialConfig.exe под пользователем, GUID которого прописан в качестве администратора в тэге accessControlAdminSettings.

Для того, чтобы убедиться в корректности настроек и успешном запуске сервера нужно обратиться через браузер по адресу сервера (в данном примере: http://192.168.1.7/easerver/) и признаком успеха будет являться создание структуры хранилища внутри указанного подразделения для хранения данных (в данном примере - Indeed EA 7.0).

|