Перейти к основному содержимому

Indeed Core Server

Indeed Core Server (Core Server) — это основной модуль системы, который отвечает за:

  • централизованное хранение аутентификаторов, паролей и настроек пользователей;
  • централизованное управление и администрирование;
  • централизованный прием и обработку запросов от других модулей системы;
  • координирование действий отдельных модулей и системы в целом.

Core Server кеширует данные при получении пользователя, группы, контейнера, сценариев авторизации и бизнес логики. Основные запросы в каталог — получение пользователя, группы, контейнера по ID — отдаются из кеша. Все остальные запросы — по имени, по телефону, email и т.п. — только обновляют кеш данными из каталога. Первый запрос пользователя по ID также обновляет кеш, последующие берутся из кеша. Время жизни объекта в кеше — 10 минут.

Файлы для установки

Файлы для Indeed AM Server расположены в Indeed Access Manager Server/<номер версии>:

  • IndeedAM.Server-<номер версии>.x64.ru-ru.msi — пакет для установки Indeed AM Server;
  • /Misc\AccessManager.Tools.KeyGen.Console.exe — утилита для генерации пары ключей для подписи токена пользователя;
  • /Misc/AccessControlInitialConfig/EA.Server.AccessControlInitialConfig.exe — утилита первичной конфигурации;
  • /Misc/AccessControlInitialConfig/EA.Server.AccessControlInitialConfig.exe.config — файл для настройки утилиты конфигурации;
  • /Misc/EA.Config.Encryptor/EA.Config.Encryptor.exe — утилита для шифрования конфигурационного файла;
  • /Misc/EA.Config.Encryptor/encryptConfigs.bat — скрипт для шифрования всех секций конфигурационного файла;
  • /Misc/EA.Config.Encryptor/decryptConfigs.bat — скрипт для расшифровки всех секций конфигурационного файла.

Установка Core Server

Системные требования

Выполните установку Core Server через запуск пакета IndeedAM.Server-<номер версии>.x64.ru-ru.msi.

Привязка HTTPS в настройках в IIS Manager

Core Server является веб-приложением, которое работает на базе IIS, в процессе установки для него по умолчанию включается обязательное требование SSL в настройках, что в свою очередь требует включенной привязки HTTPS.

Как это сделать
  1. Запустите IIS Manager и раскройте пункт Сайты (Sites).
  2. Выберите сайт Default Web Site и нажмите Привязки (Bindings) в разделе Действия (Actions).
  3. Нажмите Добавить (Add):
    • Тип (Type) — https.
    • Порт (Port) — 443.
    • Выберите SSL-сертификат (SSL Certificate).
  4. Сохраните привязку.

Если вы не намерены использовать протокол HTTPS, отключите требование SSL в настройках IIS для core и в конфигурационном файле сервера (C:\inetpub\wwwroot\am\core\Web.config) измените значение параметра requireHttps на false.

Пример

<appSettings>
<add key="requireHttps" value="false" />
</appSettings>

Настройка с помощью мастера конфигурации

Мастер конфигурации по умолчанию запускается автоматически после установки Indeed AM Server, если запуск не был отключен пользователем.

Для запуска мастера вручную откройте файл C:\Program Files\Indeed AM\Wizard\EA.Server.Wizard.exe.

Информация

В мастере включена автоматическая проверка введенных данных, в случае успешного ввода поля будут подсвечены зеленым цветом и вы сможете перейти к следующему шагу, если данные введены некорректно, то поля будут подсвечены красным и вы не сможете перейти к следующему шагу пока не укажете корректные данные. 

Дальнейшие шаги зависят от используемой базы данных.

Настройка для базы данных Microsoft SQL

  1. На шаге Перед началом работы нажмите Далее.

  2. На шаге Восстановление настроек нажмите Далее.

  3. На шаге Каталог пользователей укажите следующие параметры:

    • Имя домена (FQDN) — укажите полное имя домена, например domain.local.
    • Сервисная учетная запись — укажите сервисную учетную запись, обладающую правами доступа к пользовательскому каталогу. Нажмите кнопку Изменить и укажите требуемые данные учетной записи.
    • LDAP путь к каталогу — укажите путь к каталогу с пользователями. Нажмите кнопку Выбрать и выберите требуемый контейнер или домен целиком.
  4. На шаге Хранилище данных выберите тип хранилища Microsoft SQL.

  5. Строка подключения к базе данных — нажмите Изменить, чтобы задать данные для подключения к базе данных, которая будет использоваться в качестве хранилища данных Indeed AM.  

    • Server name — имя сервера базы данных.
    • Выберите способ аутентификации SQL Use SQL Server Authentication и укажите данные сервисного пользователя с полными правами для базы данных.
    • В пункте Select or enter a database name выберите или укажите базу данных, которая будет использоваться в качестве хранилища Indeed AM.
    • После выполнения настройки нажмите Test Connection. При корректной конфигурации отобразится окно с Test connection succeeded.
    • Нажмите Ок во всех окнах.
  6. Шаг Ключ шифрования. Выберите алгоритм шифрования, нажмите Сгенерировать и нажмите Далее.

    Совет

    Настоятельно рекомендуется выполнить резервную копию ключа шифрования и сохранить в защищенном месте.

  7. На шаге Журнальный сервер укажите следующие данные: 

    Примечание

    Чтобы при тестировании соединения не возникало ошибок, требуется полностью настроенный Log Server с настроенной базой данных или установленным компонентом EventLog. Если журнальный сервер не готов к работе, вы можете пропустить этот шаг.

    • Адрес журнального сервера — URL для подключения к серверу в формате http(s)://полное_dns_имя_сервера/ls/, например http://logserver.demo.local/ls/.

    • Сертификат — сертификат для настройки двухстороннего TLS- соединения между сервером Indeed AM и Indeed AM Log Server.

    Важно

    Данную настройку не требуется указывать. В текущей версии системы Indeed AM не поддерживается работа двухстороннего TLS-соединения. 

    • Журналируемое поле объекта каталога — укажите формат, в котором будет осуществляться логирование имени пользователя.

    • Журналируемое поле компьютера — укажите формат, в котором будет осуществляться логирование поля Компьютер.

    Примечание

    Для логирования в формате DNS потребуется дополнительная настройка. Подробнее по настройке логирования в формате DNS.

  8. Шаг Сессионный секрет. Сгенерируйте пару ключей для подписи токена пользователя, для этого нажмите Сгенерировать.

    Публичный ключ сохраняется в файле SessionPublicKey.pub. Этот ключ необходимо распространить на все машины, на которых установлен Windows Logon или ESSO Agent. Для распространения используйте политику Настройки публичного ключа сеанса (расположена в каталоге indeed AM <номер версии>\Misc\ADMX Templates).

  9. Шаг Шифрование файла. Вы можете выполнить шифрование настроек конфигурационного файла.

    Совет

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

  10. Шаг Подтверждение. Убедитесь в корректности указанных данных и нажмите Применить.

    Совет

    Рекомендуется сделать резервную копию конфигурационного файла, по умолчанию параметр Сохранить резервную копию параметров конфигурации активен.

  11. Шаг Результаты. Осуществляется проверка настроек и тестирование подключения к Indeed AM Server.

Настройка администратора системы

Примечание

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

  1. На шаге Администратор системы задайте учетную запись администратора Indeed. Указанной учетной записи будут выданы первичные права администратора системы.

    Примечание

    Для настройки администратора требуется установленный Indeed AM Windows Password (indeed AM<номер версии>\Indeed AM Providers\Indeed AM Windows Password Provider\<номер версии>\), так как при выдаче первичных прав указанному пользователю осуществляется аутентификация на сервере Indeed AM.

  2. На шаге Результаты отображается статус настройки конфигурационного файла и статус настройки администратора системы.

Ручная настройка

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

Ошибки, возникшие при развертывании сервера Access Manager (например, ошибка в конфигурационном файле), будут логироваться исходя из настроек Log Server.

Требования к символам в пароле для сервисных пользователей

Если в пароле для сервисных пользователей используются следующие символы: &, ", ;, <, пробел, то пароль следует указывать так: 

  • Символ амперсанд (&) — при указании пароля для пользователя из AD или SQL символ требуется заменить на: &amp;. Пример(AD\SQL): password="Q1q2E3e4&"\Password='Q1q2E3e4&amp;';

  • Символ двойные кавычки (") — при указании пароля для пользователя из AD или SQL символ требуется заменить на: &quot; Для пользователя из SQL дополнительно требуется указать пароль в одинарных кавычках. Пример(AD\SQL): password="Q1q2E3e4""\Password='Q1q2E3e4&quot;';

  • Символ точка с запятой (;) — при указании пароля для пользователя из AD не требуется дополнительных действий, для пользователя из SQL требуется указать пароль в одинарных кавычках. Пример(AD\SQL): password="Q1q2E3e4;"\Password='Q1q2E3e4;';

  • Символ “меньше” (<) — при указании пароля для пользователя из AD или SQL символ требуется заменить на: &lt; Пример(AD\SQL): password="Q1q2E3e4<"\Password='Q1q2E3e4&lt;';

  • Символ “Пробел” — при указании пароля для пользователя из AD не требуется дополнительных действий, для пользователя из SQL требуется указать пароль в одинарных кавычках. Пример(AD\SQL): password="Q1q2E3e4 "\Password='Q1q2E3e4 ';

  • Символ "Одинарной кавычки" (') — при указании пароля для пользователя из AD не требуется дополнительных действий, для пользователя из SQL требуется указать пароль в &quot;, символ кавычки указать в обычном виде . Пример(AD\SQL): password="Q1q2E3e4'"\Password=&quot;Q1q2E3e4'&quot;.

  1. Откройте конфигурационный файл сервера Web.config (C:\inetpub\wwwroot\am\core\Web.config).

  2. В параметре sessionEncryptionSettings укажите публичный и секретный ключи для подписи токена пользователя.  Чтобы сгенерировать ключи, запустите утилиту AccessManager.KeyGen.Console.exe (расположена в каталоге Indeed Access Manager Server/<номер версии>/Misc).

    В параметре --name укажите имена файлов. Это обязательный параметр. Файлы генерируются с одинаковым именем, однако у файла публичного ключа указывается расширение PUB.

    В параметре --output-directory укажите путь к каталогу, в который сохранятся файлы ключевой пары. Вы можете указать относительный или абсолютный путь. Это необязательный параметр. Если вы не укажете путь, файлы ключевой пары сохранятся в каталоге Misc.

  3. Задайте каталог пользователя системы, для этого необходимо отредактировать параметры в теге adUserCatalogProvider:

    • id — произвольный уникальный идентификатор каталога.
    • serverName — имя домена Active Directory, в котором находится каталог.
    • containerPath — путь к контейнеру в виде Distinguished Name или весь домен, если для хранения пользователей используется весь домен.
    • userName — имя сервисной учетной записи для подключения к каталогу пользователей.
    • password — пароль сервисной учетной записи каталога пользователей в Active Directory.
    Пример
    <adUserCatalogProviders> 
    <adUserCatalogProvider id="UserId" serverName="indeed-id.local" containerPath="DC=demo,DC=local" userName="IndeedCatalogUser" password="Q1q2E3e4"/>
    </adUserCatalogProviders>
  4. Укажите корневой идентификатор провайдера работы с каталогом, необходимо отредактировать атрибут rootUserCatalogProviderId в теге userCatalogProviderSettings.

    • rootUserCatalogProviderId — задать значение, которое уже было задано в теге adUserCatalogProvider в атрибуте id.
    Пример
    <userCatalogProviderSettings rootUserCatalogProviderId="UserId">
  5. Задайте хранилище данных системы. Для хранилища данных в SQL Server редактируем тег dbContextSettings и создаем тег mssqlDbContext с параметрами id и connectionString

    • rootDbContextId — задать произвольно уникальное значение идентификатора хранилища.
    • id — задать значение, которое уже было задано в теге rootDbContextId.
  6. Добавьте параметр connectionString со встроенными параметрами:

    • Data Source — задает экземпляр сервера. Это свойство является обязательным для всех соединений. Допустимые значения — сетевое имя или IP-адрес сервера, local или localhost для локальных соединений.
    • Initial Catalog — определяет имя базы данных.
    • User Id — имя пользователя для подключения к базе данных.
    • Password — пароль пользователя для подключения к базе данных.
    Пример
    <dbContextSettings rootDbContextId="mssql"> <mssqlDbContexts> <mssqlDbContext id="mssql" connectionString="Data Source=EASERVER\EASERVER;Initial Catalog=AM_Server_7;User Id=Admin-DB;Password=Q1q2E3e4;"/> </mssqlDbContexts> </dbContextSettings>
  7. Задайте ключ шифрования данных системы. Отредактируйте параметры в теге encryptionSettings.

    • cryptoAlgName — укажите использованный алгоритм шифрования. Допустимые значения:
      • DES,
      • TripleDES,
      • RC2,
      • AES,
      • Rijndael.
    • cryptoKey — значение ключа, сгенерированного утилитой.
    • certificateThumbprint — отпечаток сертификата, которым зашифрован ключ (чтобы не учитывать, нужно удалить атрибут).
    Пример
    <encryptionSettings cryptoAlgName="Aes" cryptoKey="90ce7dbc3ff94a7867abc6672c23cce2c3717d38af42f04293130cb68a34ecc2"/>
  8. Задайте администратора системы. Отредактируйте параметр userId тега accessControlAdminSettings.

    • userId — идентификатор пользователя в формате Идентификатор каталога><нижнее подчеркивание><GUID Администратора Системы>.
    Примечание

    Пользователь должен находиться внутри каталога пользователей.

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

    Пример
    <accessControlAdminSettings userId="UserId_84e9ccd9-73a2-43c7-abc6-604a16902037"/>
    Информация

    Получить GUID можно с  помощью команды PowerShell. Предварительно необходимо установить компонент Remote Server Administration Tools:

    Пример
    Get-ADUser YouUserName -Properties * | Select ObjectGUID
  9. Задайте url для подключения к Log Server. Отредактируйте тег logServer.

    • URL — url для подключения к Log Server в формате http(s)://имя сервера/ls/api.
    Примечание

    Если используется несколько серверов, укажите адрес балансировщика нагрузки.

    • CertificateThumbprint — если закрытый ключ в реестре, а сертификат в хранилище компьютера.

    • CertificateFilePath — если ключевая пара в pfx.

    • CertificateFilePassword — пароль от pfx.

    Пример
    <logServer Url="http://log.indeed-id.local/ls/api/" CertificateThumbprint="" CertificateFilePath="" CertificateFilePassword=""/>

Шифрование/Расшифрование конфигурационного файла

  1. Запустите командную строку от имени администратора.

  2. В командной строке перейдите в папку с утилитой для шифрования.

    Совет

    Утилита шифрует секции logServer, logonSettings, userCatalogProviderSettings, encryptionSettings, dbContextSettings. Рекомендуется зашифровать все секции.

  • Шифрование/Расшифрование отдельных секций. Для шифрования отдельной секции выполните команду вида:

    EA.Config.Encryptor /encrypt "Путь к конфигурационному файлу сервера Имя секции"
    Пример команды
    EA.Config.Encryptor /encrypt "C:\inetpub\wwwroot\am\core\Web.config" "logServer"

    Для расшифровки отдельной секции выполните команду вида:

    EA.Config.Encryptor /decrypt "Путь к конфигурационному файлу сервера" "Имя секции"
    Пример команды
    EA.Config.Encryptor /decrypt "C:\inetpub\wwwroot\am\core\Web.config" "logServer"
  • Шифрование/Расшифрование всех секций. Для шифрования всех секций запустите скрипт encryptConfigs.bat.

    Для расшифровки всех секций выполните скрипт decryptConfigs.bat.