Как настроить сквозную доменную аутентификацию в веб-клиенте 1С на сервере IIS

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

Часто системные администраторы и разработчики 1С сталкиваются с ситуацией, когда доменная аутентификация (SSO) прекрасно работает в тонком клиенте или устаревшем Internet Explorer, но отказывается функционировать в современных браузерах, таких как Google Chrome, Яндекс.Браузер или Mozilla Firefox. Вместо автоматического входа пользователь видит окно ввода логина и пароля 1С или системное окно запроса учетных данных Windows. Рассмотрим подробно, как настроить серверную и клиентскую части для корректной работы сквозного входа.

Проверка настроек на стороне IIS

Первым делом проанализируем настройки веб-сервера Internet Information Services (IIS). Именно он выступает посредником между браузером и кластером серверов 1С — для этого подойдёт консоль для централизованного администрирования кластеров 1С. Для того чтобы аутентификация передавалась корректно, выполним следующие шаги:

  1. Откроем Диспетчер служб IIS и перейдем к нашей публикации 1С.
  2. В разделе IIS выберем пункт Проверка подлинности (Authentication).
  3. Убедимся, что Проверка подлинности Windows (Windows Authentication) включена, а Анонимная проверка подлинности отключена (если политика безопасности требует строго доменного входа).
  4. Зайдем в Поставщики (Providers) для Windows-аутентификации. Разберем порядок: обычно первыми стоят Negotiate и NTLM. Если Kerberos в домене настроен сложно или с ошибками, попробуем переместить NTLM на первое место для теста, однако для промышленной эксплуатации лучше оставить Negotiate.
  5. Обратим внимание на Расширенную защиту (Extended Protection). В некоторых конфигурациях современных браузеров значение "Принять" (Accept) может блокировать запросы. Попробуем установить значение Выкл (Off).
  6. Проверим Проверку подлинности в режиме ядра (Kernel-mode authentication). Если используются специфические SPN (Service Principal Names), этот параметр иногда требуется отключить в дополнительных настройках.

Конфигурация файла публикации default.vrd

Для того чтобы веб-клиент инициировал запрос на доменную аутентификацию, необходимо правильно настроить файл default.vrd, который находится в корневом каталоге вашей публикации на веб-сервере. Проанализируем содержимое этого XML-файла. Нам необходимо убедиться, что атрибут использования Windows-аутентификации установлен в значение true.

Пример корректной секции в файле 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="/MyBase"
       ib="Srvr=&quot;Server1C&quot;;Ref=&quot;MyBase&quot;;">
    <winAuth use="true"/>
</point>

Если строка <winAuth use="true"/> отсутствует, браузер не получит команду от платформы 1С на использование системных учетных данных.

Настройка SPN для работы Kerberos

Если мы хотим использовать протокол Kerberos (который подразумевается поставщиком Negotiate), необходимо зарегистрировать имена-службы (SPN). Это критически важно, если пул приложений IIS работает от имени доменной учетной записи, а не от NetworkService.

Выясним, от чьего имени запущен пул приложений, и выполним в командной строке от имени администратора следующие команды (заменив данные на свои):


setspn -a HTTP/ИмяВашегоСервера Домен\УчеткаПула
setspn -a HTTP/ИмяВашегоСервера.domain.local Домен\УчеткаПула

После регистрации SPN сервер сможет корректно проверять билеты Kerberos, приходящие от браузеров.

Настройка браузеров на базе Chromium (Chrome, Яндекс, Edge)

Современные браузеры в целях безопасности не передают доменные токены на все сайты подряд. Выясним, как добавить нашу базу в список доверенных. Самый надежный способ — использование групповых политик (GPO) или внесение изменений в реестр.

Рассмотрим настройку через реестр для Яндекс.Браузера или Chrome. Нам нужно создать строковые параметры в ветке политик:

Для Chrome: HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Google\Chrome

Для Яндекс.Браузера: HKEY_LOCAL_MACHINE\SOFTWARE\Policies\YandexBrowser

Настроим следующие параметры:

Значение параметров должно содержать FQDN-имя сервера, например: *.yourdomain.local или конкретный адрес server-1c.yourdomain.local. Посмотрим, как это выглядит в реестре:


[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\YandexBrowser]
"AuthServerAllowlist"="*.domain.local"
"AuthNegotiateDelegateAllowlist"="*.domain.local"

Также важно убедиться, что адрес базы добавлен в зону "Местная интрасеть" (Local Intranet) в настройках "Свойств обозревателя" (Internet Options) панели управления Windows. Браузеры на движке Chromium часто наследуют уровень доверия именно оттуда.

Настройка Mozilla Firefox

В браузере Firefox механизм настройки отличается. Разберем по шагам, как активировать SSO через внутренний редактор конфигурации:

  1. Введите в адресной строке about:config и подтвердите риск.
  2. Найдем параметр network.negotiate-auth.trusted-uris. Впишем туда адрес нашего веб-сервера (например, http://server-1c).
  3. Найдем параметр network.automatic-ntlm-auth.trusted-uris. Также добавим туда адрес сервера.

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

Диагностика процесса аутентификации

Если после всех настроек вход всё равно не выполняется, проанализируем ситуацию с помощью инструментов разработчика. Нажмем F12 в браузере и перейдем на вкладку Network (Сеть). Для этой задачи есть инструмент для диагностики и анализа HTTP-запросов.

  1. Обновим страницу с базой 1С.
  2. Используя инструменты тестирования http сервисов, найдем самый первый запрос к серверу.
  3. Посмотрим на заголовки ответа (Response Headers). Сервер должен прислать WWW-Authenticate: Negotiate.
  4. Посмотрим на следующий запрос от браузера (Request Headers). Если в нем появился заголовок Authorization: Negotiate [длинный_код], значит браузер успешно передал данные. Если заголовка нет — браузер по-прежнему не доверяет сайту.

Следуя этой инструкции и последовательно проверяя каждый узел — от настроек IIS до политик браузера — мы добьемся стабильной работы доменного входа в веб-клиенте 1С.

← На главную