Как настроить сквозную NTLM и Kerberos аутентификацию в веб-клиенте 1С?

Системный администратор 1С v8.3 (Управляемые формы) IT и автоматизация бизнеса
← На главную

Сквозная аутентификация (Single Sign-On / SSO) позволяет пользователям автоматически входить в веб-клиент 1С:Предприятие без повторного ввода логина и доменного пароля. Разберем по шагам, как правильно настроить веб-сервер, кластер серверов 1С и клиентские браузеры для работы протоколов NTLM и Kerberos.

1. Настройка веб-сервера (IIS или Apache)

Рассмотрим порядок включения Windows-аутентификации в зависимости от используемого веб-сервера:

Для веб-сервера IIS:

  1. В компонентах Windows Server убедимся, что установлена служба Проверка подлинности Windows (Windows Authentication).
  2. В диспетчере IIS перейдем к пулу приложений, в котором опубликована информационная база 1С, и установим значение свойства Версия среды .NET Framework в режим Без управляемого кода (No Managed Code).
  3. В разделе Аутентификация включим Проверку подлинности Windows и отключим анонимный доступ (если требуется строгий вход по доменным учетным записям).
  4. В настройках провайдеров аутентификации IIS на первое место поместим провайдер Negotiate (для поддержки Kerberos), а провайдер NTLM укажем вторым в качестве резервного.

Для веб-сервера Apache:

  1. Для 64-разрядных версий Apache 2.4 под управлением ОС Windows подключим модуль mod_authnz_sspi. Устаревший модуль mod_auth_sspi использовать не рекомендуется.
  2. На Linux-серверах настроим модуль mod_auth_gssapi (или mod_auth_kerb), сгенерировав предварительно файл keytab на контроллере домена Active Directory и связав его с именем службы (SPN).

2. Настройка делегирования учетных данных и решение проблемы «двойного прыжка»

Проанализируем ситуацию, когда веб-сервер и кластер серверов 1С разнесены на разные физические или виртуальные машины. Протокол NTLM принципиально не умеет передавать учетные данные пользователя на третий узел (проблема Double-Hop). В этом случае авторизация работать не будет.

Для решения этой задачи выполним следующие действия:

  1. Перейдем с протокола NTLM на протокол Kerberos.
  2. На контроллере домена Active Directory зарегистрируем имя службы (SPN) вида HTTP/fqdn_имени_сервера для учетной записи, под которой запущен веб-сервер.
  3. В оснастке Active Directory — Пользователи и компьютеры найдем учетную запись компьютера (или службы) веб-сервера и разберем настройки делегирования: включим опцию Доверять этому компьютеру для делегирования указанных служб (только Kerberos) (Kerberos Constrained Delegation / S4U2Proxy).

3. Проверка совпадения разрядности компонентов

Выясним частую причину ошибок при запуске веб-расширения 1С. Разрядность модуля расширения веб-сервера 1С должна строго совпадать с разрядностью самого веб-сервера:

  1. Для 64-битного Apache или IIS необходимо устанавливать 64-битные компоненты веб-сервера из дистрибутива 1С (файл wsapi.dll для Windows или wsap24.so для Linux).
  2. Для 32-битного веб-сервера используются 32-битные модули 1С.
  3. Разрядность самого кластера серверов 1С (при его наличии) может быть любой и не обязательно должна совпадать с разрядностью веб-сервера.

4. Настройки на стороне 1С:Предприятия

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

  1. В файле публикации default.vrd в секции аутентификации укажем разрешение операционной системы:
    
    <point xmlns="http://v8.1c.ru/8.2/virtual-resource-system"
           xmlns:xs="http://www.w3.org/2001/XMLSchema"
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
           base="/base"
           ib="Srvr=Server1C;Ref=BaseName;">
        <ws enable="true"/>
    </point>
    
  2. В Конфигураторе 1С залогинимся в базу и откроем карточку пользователя. Установим флажок Аутентификация операционной системы и введем доменное имя пользователя в поле Пользователь ОС в формате DOMAIN\user или user@domain.local.

5. Настройка клиентских браузеров

Проанализируем настройки на рабочих станциях пользователей. Чтобы браузер автоматически передавал доменные кредишнлы на веб-сервер, выполним настройку клиентского ПО:

  1. Chrome, Edge, Яндекс.Браузер: Добавим URL-адрес веб-сервера 1С в зону Местная интрасеть (Local Intranet) в системных свойствах браузера / свойствах интернета Windows.
  2. Mozilla Firefox: Перейдем на страницу служебных настроек about:config, найдем параметры network.automatic-ntlm-auth.trusted-uris и network.negotiate-auth.trusted-uris и внесем в них имя домена или URL-адрес веб-сервера 1С.
← На главную