Настройка сквозной авторизации при использовании веб-фермы
Перед прочтением данной статьи необходимо ознакомиться с инструкциями по настройке веб-фермы и по настройке сквозной авторизации (про настройку для ELMA3 читайте в справке по ELMA3, по настройке для ELMA4 версии 4.1.0 и выше читайте в справке по ELMA4, по настройке для ELMA4 ниже версии 4.1.0 читайте в Базе знаний).
Для примеров настройки будем считать, что у нас есть:
- домен Active Directory с именем mycompany (mycompany.com);
- имя компьютера контроллера ARR – elma;
- имена компьютеров с ELMA – elma1 и elma2;
- имя пользователя, под которым будет работать ELMA – mycompany\elma_user.
Предварительные действия:
- В домене Active Directory создать пользователя, под которым будут запускаться пулы приложений серверов ELMA, а также пул приложений на контроллере ARR. Либо использовать существующего пользователя из этого домена. В наших примерах – mycompany\elma_user.
- Убедиться, что и компьютер с контроллером ARR, и компьютеры с сервером ELMA находятся в том же домене, что и пользователь (в нашем примере – домен mycompany).
Для настройки необходимо сделать следующее:
1. Настроить ферму веб-серверов в соответствии с инструкцией (https://www.elma-bpm.ru/kb/article-694.html) и убедиться в ее работоспособности.
2. Настроить сквозную авторизацию в соответствии с инструкцией. При этом необходимо изменить следующие настройки, чтобы обеспечить сквозную авторизацию на ферме серверов:
- в диалоге выбора поставщиков Windows-авторизации поставить на 1-е место Negotiate и нажать ОК:
- далее перейти в раздел Редактор конфигураций корневого сайта (например, ELMA3-Enterprise);
- затем в выпадающем списке выбрать раздел system.webServer — security — authentication — windowsAuthentication;
- в настройках для параметров authPersistNonNTLM, authPersistSingleRequest, enabled, useAppPoolCredentials и useKernelMode установить значение True.
3. В дополнительных настройках пулов приложений указать запуск от имени mycompany\elma_user:
- для серверов ELMA (elma1 и elma2) – у пула сайта ELMA (для Корпоративной редакции по умолчанию ELMA3-Enterprise).
4. Для веб-сайта по умолчанию (Default Web Site) на стороне контроллера (сервер elma) нужно включить анонимную авторизацию (остальные типы авторизации выключить). Для этого необходимо перейти в раздел Проверка подлинности данного сайта и оставить включенным только пункт Анонимная проверка подлинности.
5. Следующим шагом является настройка пула приложений IIS. В дополнительных настройках пулов приложений укажем запуск от имени mycompany\elma_user:
- для контроллера (сервер elma) – у пула по умолчанию (DefaultAppPool);
6. Установить SPN для каждого сервера ELMA и контроллера (привязать их адреса к пользователю, под учетной записью которого будут работать пулы приложений). Сделать это можно либо через команду SETSPN (выполнять в командной строке), либо через консоль управления Редактирование ADSI (adsiedit.msc).
После установки SPN необходимо перезагрузить все сервера. Кроме того, даже после перезагрузки изменения могут примениться не сразу.
Пример использования командной строки:
SETSPN -S HTTP/elma.mycompany.com mycompany\elma_user
SETSPN -S HTTP/elma1.mycompany.com mycompany\elma_user
SETSPN -S HTTP/elma2.mycompany.com mycompany\elma_user
Пример использования консоли управления Редактирование ADSI:
Находим в дереве CN=Users пользователя elma_user и в контекстном меню нажимаем Свойства.
В появившемся окне на вкладке Редактор атрибутов необходимо найти атрибут servicePrincipalName, нажать Изменить и добавить туда имена всех серверов ELMA, а также имя контроллера.
7. Проверить работу сквозной авторизации сначала на каждом из серверов, а затем через сервер контроллера.
- в п. 2 настоящей инструкции также указать поставщика Negotiate:Kerberos первым в списке;
- в п. 4 следует на стороне контроллера выбрать авторизацию через Kerberos, т.е. оставить включенным только пункт Проверка подлинности Windows и в списке поставщиков выбрать Negotiate:Kerberos;
- далее следовать пунктам 5 и 6;
На следующем шаге необходимо настроить делегирование Kerberos в AD. Для этого для контроллера необходимо добавить тип службы http и указать имена серверов фермы, а на серверах фермы - добавить тип службы http и указать имя контроллера:
Поэтому необходимо убедиться, что в домене нет повторяющихся имен. Для этого можно запустить cmd.exe и выполнить команду: setspn /x
Если дубликаты будут найдены, их необходимо будет удалить.
После этого производится настройка файла подключения к базе. Для этого следует открыть файл Configuration.config и добавить в него строку:
Также изменения необходимо внести в файл Web.config.xslt. В файл добавим строку:
Данную настройку не требуется производить для версий системы ELMA, начиная с 3.11 и выше!
Для работы программы ELMA Agent с Kerberos, необходимо первый раз запустить его с параметром USINGKERBEROSONWFBALANCE=True.
Настройки для работы с Kerberos произведены. Далее следовать п. 7.
Для того, чтобы после обновления веб-фермы сквозная авторизация продолжала корректно работать, перед началом процедуры обновления необходимо:
- создать копию файла config, расположенного в папке ../<Общая папка с файлами системы ELMA>/Web/;
- произвести обновление веб-фермы;
- переименовать обновленный файл config, расположенный в папке ../<Общая папка с файлами системы ELMA>/Web/, следующим образом Settings_<номер_обновленной_версии_системы>.config. Например, Settings_3_13_13.config;
- скопированный ранее файл переместить в папку ../<Общая папка с файлами системы ELMA>/Web/.
См. также полезные статьи (на английском языке):