Настройка сквозной авторизации при использовании веб-фермы

Перед прочтением данной статьи необходимо ознакомиться с инструкциями по настройке веб-фермы и по настройке сквозной авторизации.

Для примеров настройки будем считать, что у нас есть:

  • домен 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. Настроить сквозную авторизацию в соответствии с инструкцией (https://www.elma-bpm.ru/kb/help/EleWise.ELMA.BPM.Web.Common/Content/Help/WebHelp/scr/Admin/Through_autorization/index.html). В  указанной инструкции необходимо изменить следующие настройки, чтобы обеспечить сквозную авторизацию на ферме серверов:

  • в диалоге выбора поставщиков Windows-авторизации (п. 4 в статье KB) поставить на 1-е место Negotiate и нажать ОК:

  • перейдите по ссылке Дополнительные параметры в правом меню и в открывшемся диалоговом окне установите флаг в поле Включить проверку подлинности в режиме ядра и нажмите Ок:

  • далее перейти в раздел «Редактор конфигураций» добавленного приложения SSPI;

 

  • затем в выпадающем списке выбрать раздел «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. Проверить работу сквозной авторизации сначала на каждом из серверов, а затем через сервер контроллера.

Внимание!
Если осуществляется настройка сквозной авторизации для фермы веб-серверов с использованием протокола аутентификации Kerberos, то дополнительно следует произвести настройки, описанные ниже.
  • в п. 2 настоящей инструкции также указать поставщика Negotiate:Kerberos первым в списке;
  • в п. 4 следует на стороне контроллера выбрать авторизацию через Kerberos, т.е. оставить включенным только пункт «Проверка подлинности Windows» и в списке поставщиков выбрать Negotiate:Kerberos;
  • далее следовать пунктам 5 и 6;

На следующем шаге необходимо настроить делегирование Kerberos в AD. Для этого для контроллера необходимо добавить тип службы http и указать имена серверов фермы, а на серверах фермы - добавить тип службы http и указать имя контроллера:

 

Примечание
Kerberos не будет работать правильно, если одни и те же имена SPN используются различными записями домена.

Поэтому необходимо убедиться, что в домене нет повторяющихся имен. Для этого можно запустить cmd.exe и выполнить команду: setspn /x

Если дубликаты будут найдены, их необходимо будет удалить.

После этого производится настройка файла подключения к базе. Для этого следует открыть файл Configuration.config и добавить в него строку:

 
<add name="MainDB" connectionString="Data Source=testbigbase.elewise.local;Initial Catalog=ElmaFermBase;Integrated Security=SSPI;"/>

Также изменения необходимо внести в файл Web.config.xslt. В файл добавим строку:

 
<sessionState mode="SQLServer" sqlConnectionString="data source=TestBigBase.elewise.local;Integrated Security=SSPI;" cookieless="false" timeout="30"/>

Данную настройку не требуется производить для версий системы ELMA, начиная с 3.11 и выше!

Для работы программы ELMA Agent с Kerberos, необходимо первый раз запустить его с параметром USINGKERBEROSONWFBALANCE=True.

Настройки для работы с Kerberos произведены. Далее следовать п. 7.

 

 

Cтатьи в категории