Как решить проблему с повторным запросом пароля и ошибкой HTTP 401.1 при доступе к 1С через веб-сервер IIS?

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

Разберем распространенную и крайне неприятную ситуацию, с которой часто сталкиваются системные администраторы при публикации баз данных 1С:Предприятие на веб-сервере Internet Information Services (IIS) в доменной сети. Представьте сценарий: база успешно опубликована, пользователи в течение нескольких недель без проблем заходят в систему, используя сквозную авторизацию (SSO). Вдруг в один день при запуске программы начинает всплывать окно авторизации Windows. При попытке нажать на кнопку отмены пользователи получают ошибку HTTP 401.1 - Unauthorized (Не авторизован). Если же они вводят свои доменные логин и пароль, то успешно проходят этот этап, но сразу же сталкиваются со вторым окном авторизации, в котором никакие учетные данные (ни доменные, ни внутренние от базы 1С) уже не принимаются. После многократного нажатия на кнопку отмены в базу всё же удается войти, однако начальная страница, содержащая новости, текущие дела и информационный центр, остается абсолютно пустой.

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

Выясняем причину: почему возникает «двойная» авторизация?

Для того чтобы эффективно устранить проблему, нам необходимо понять физику процесса. Описанное поведение системы указывает на конфликт между сквозной доменной авторизацией (SSO), настройками безопасности веб-сервера IIS и логикой работы встроенного клиента 1С.

Когда пользователь запускает 1С, его веб-браузер или тонкий клиент выполняет первый запрос к веб-серверу IIS. Если на веб-сервере включена проверка подлинности Windows, IIS запрашивает у клиента маркер безопасности. В нормальном режиме клиент отправляет его автоматически (происходит прозрачный вход).

Однако вкладка «Информация» (или «Информационный центр») на начальной странице 1С представляет собой встроенное в платформу поле HTML-документа. Этот компонент использует внутренний движок рендеринга (в зависимости от версии платформы это может быть Internet Explorer/Edge или WebKit). Когда этот встроенный браузер пытается загрузить интерактивные новости, обратиться к локальным HTTP-сервисам базы или выполнить фоновые запросы, он инициирует новые сессии к IIS. Поскольку этот встроенный веб-компонент работает в изолированном контексте, он часто не может автоматически передать доменные данные текущего сеанса пользователя. IIS видит новый неавторизованный запрос и выдает повторное системное окно авторизации. Если пользователь нажимает отмену, загрузка интерактивных блоков блокируется веб-сервером, из-за чего вкладка «Информация» остается пустой.

Рассмотрим детальные шаги по устранению этой проблемы с разных сторон: от настроек самого IIS до конфигурации клиентских мест и операционной системы.

Решение 1: Настройка удостоверения пула приложений в IIS

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

Выполним следующие шаги для настройки:

  1. Откроем диспетчер служб IIS. Для этого перейдем в Пуск — Панель управления — Администрирование — Диспетчер служб IIS (или выполним команду inetmgr в строке выполнить).
  2. В левой части окна развернем дерево подключений, перейдем к нашему сайту и выберем конкретную публикацию базы 1С.
  3. В центральной части окна дважды кликнем по разделу «Проверка подлинности» (Authentication).
  4. Выберем пункт «Анонимная проверка подлинности» (Anonymous Authentication) и в правом меню действий нажмем кнопку «Изменить...» (Edit...).
  5. В открывшемся диалоговом окне переставим переключатель в положение «Удостоверение пула приложений» (Application pool identity).
  6. Нажмем кнопку ОК для сохранения настроек.

После этого рекомендуется перезапустить веб-сервер IIS, выполнив в командной строке от имени администратора команду iisreset.

Решение 2: Настройка способа аутентификации в клиенте 1С

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

  1. Запустим окно выбора информационных баз 1С.
  2. Выделим нашу базу и нажмем кнопку «Изменить...».
  3. На первом шаге оставим параметры без изменений и перейдем на следующую вкладку настроек (где указываются параметры подключения к веб-серверу).
  4. Найдем параметр «Выберите способ аутентификации пользователя веб-сервера».
  5. Установим значение в положение «Выбирать автоматически». Если там было жестко принудительно задано другое значение, это могло вызывать конфликт при передаче доменного токена.

Также важно зайти в базу через Конфигуратор, открыть свойства конкретного пользователя и убедиться, что на вкладке «Аутентификация» установлена галочка «Аутентификация операционной системы» и корректно указано имя пользователя домена в формате Domain\Username.

Решение 3: Добавление адреса публикации в зону «Местная интрасеть» (Local Intranet)

Если система работала корректно, а затем внезапно начала требовать авторизацию у всех пользователей, это верный признак того, что операционная система Windows на клиентских ПК перестала считать адрес веб-сервера 1С доверенным. Безопасность Windows блокирует автоматическую отправку доменных учетных данных (SSO) на узлы, которые она считает внешними (зона «Интернет»).

Чтобы принудительно заставить Windows передавать доменные данные без запроса пароля, выполним настройку зон безопасности:

  1. На компьютере пользователя откроем Панель управления и перейдем в раздел «Свойства интернета» (или «Свойства обозревателя»).
  2. Перейдем на вкладку «Безопасность».
  3. Выберем зону «Местная интрасеть» (Local Intranet) и нажмем кнопку «Сайты» (Sites).
  4. В открывшемся окне нажмем кнопку «Дополнительно» (Advanced).
  5. В поле «Добавить следующий узел в зону» введем адрес нашего веб-сервера 1С (например, http://имя_сервера, https://имя_сервера или его IP-адрес) и нажмем кнопку «Добавить».
  6. Закроем все окна сохранения настроек кнопками ОК.

Полезный совет: Чтобы не проделывать эту операцию вручную на каждом клиентском компьютере в крупной сети, системный администратор может настроить это централизованно через групповые политики домена (GPO), добавив адрес публикации 1С в список сайтов зоны интрасети (параметр Site to Zone Assignment List).

Решение 4: Обход проверки петли обратной связи (DisableLoopbackCheck)

В ситуациях, когда веб-сервер IIS и сервер приложений 1С (или файловая база данных) развернуты на одной физической машине (или если пользователи запускают 1С непосредственно через терминальный сервер, где установлен IIS), операционная система Windows включает встроенную защиту от атак отражения (Loopback Check). Этот механизм блокирует локальные сетевые запросы к самому себе, если они выполняются по доменному имени, возвращая ошибку 401.1.

Для решения этой проблемы на сервере с IIS необходимо внести изменения в системный реестр:

  1. Нажмем сочетание клавиш Win + R, введем команду regedit и нажмем Enter для запуска редактора реестра.
  2. Перейдем по следующему пути: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa
  3. Кликнем правой кнопкой мыши по свободному месту в правой части окна, выберем Создать — Параметр DWORD (32 бита).
  4. Присвоим параметру имя DisableLoopbackCheck.
  5. Дважды кликнем по созданному параметру и установим его значение равным 1 (в десятичной или шестнадцатеричной системе счисления).
  6. Перезапустим веб-сервер IIS, выполнив команду iisreset в консоли.

Решение 5: Настройка провайдеров Windows-авторизации в IIS (Negotiate vs NTLM)

По умолчанию служба Windows-авторизации в IIS использует протокол Negotiate (который в первую очередь пытается задействовать безопасный Kerberos), а в случае неудачи откатывается на более старый протокол NTLM. Если в домене Active Directory произошли изменения (например, сбросился пароль учетной записи службы, изменились политики контроллера домена или обновились SPN-имена), протокол Kerberos начинает возвращать ошибки авторизации, вынуждая IIS запрашивать пароль вручную.

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

  1. В диспетчере IIS перейдем к нашей публикации базы 1С.
  2. Откроем раздел «Проверка подлинности» (Authentication).
  3. Выберем строку «Проверка подлинности Windows» (Windows Authentication) (она должна быть включена).
  4. В правой панели «Действия» нажмем на ссылку «Поставщики» (Providers...).
  5. В списке доступных провайдеров выделим NTLM и с помощью кнопки «Вверх» (Move Up) переместим его на самую первую строчку, сделав приоритетным. Это заставит IIS сразу использовать авторизацию NTLM, минуя проблемный Kerberos.
  6. Нажмем ОК.
  7. Дополнительно в панели действий справа откроем «Дополнительные параметры» (Advanced Settings...) и попробуем отключить параметр «Проверка подлинности в режиме ядра» (Kernel-mode authentication). Этот режим часто вызывает сбои интеграции, если пул приложений IIS работает не от имени системной учетной записи, а от имени выделенного доменного пользователя.

Решение 6: Проверка прав доступа NTFS на сервере

Частой причиной ошибки 401.1 является банальное отсутствие прав доступа учетной записи пула приложений к физическому каталогу, в котором опубликован файл конфигурации базы default.vrd. Это часто случается после обновления платформы 1С или переноса каталогов.

Проанализируем права доступа:

  1. Определим, под каким пользователем запущен пул приложений нашей публикации. Обычно это стандартное удостоверение ApplicationPoolIdentity.
  2. Перейдем в проводнике к папке публикации на диске сервера (по умолчанию это путь вида C:\inetpub\wwwroot\имя_публикации).
  3. Нажмем правой кнопкой мыши по папке публикации, откроем «Свойства» и перейдем на вкладку «Безопасность».
  4. Убедимся, что локальная группа пользователей сервера IIS_IUSRS имеет как минимум права «Чтение и выполнение» (Read & execute), «Список содержимого папки» (List folder contents) и «Чтение» (Read) на эту папку и все вложенные файлы.
  5. Аналогичные права на чтение обязательно должны быть предоставлены группе IIS_IUSRS на каталог установки исполняемых файлов платформы 1С (обычно это папка C:\Program Files\1cv8\ или C:\Program Files (x86)\1cv8\), так как веб-сервер обращается к библиотекам платформы (например, к файлу расширения веб-сервера wsisapi.dll) для обеспечения работы публикации.

Решение 7: Очистка имени публикации от спецсимволов и верхнего регистра

Практический опыт веб-публикаций 1С показывает, что IIS крайне чувствителен к регистру букв в URL-адресах, а также к наличию некоторых специальных символов в имени виртуального каталога. Использование знаков подчеркивания, дефисов или заглавных букв (например, публикация с именем My_Base_1C) может приводить к непредсказуемым сбоям сессии авторизации во встроенном браузере 1С.

Рекомендуется переопубликовать базу с соблюдением простых правил:

Решение 8: Анализ конфигурационного файла default.vrd

При обновлении платформы 1С или повторной публикации базы конфигуратор автоматически перезаписывает файл default.vrd, расположенный в папке публикации. При этом могут сброситься тонкие настройки веб-сервисов, необходимые для корректной фоновой авторизации.

Откроем файл default.vrd обычным текстовым редактором (например, Блокнотом) и проанализируем структуру корневого тега <point>. Нам важно убедиться, что параметры аутентификации объявлены корректно:


<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="/ipklichko"
       ib="File=&quot;C:\Base1C\Accounting&quot;;">
    <ws>
        <point name="WebServiceName" alias="ws1.1c" enable="true" reuseSessions="autouse"/>
    </ws>
    <httpServicesPublish defaultAnonymID="AnonymUser">
        <service name="MyService" rootUrl="service" enable="true"/>
    </httpServicesPublish>
</point>

Если в базе используются веб- или HTTP-сервисы, которые вызывают повторные окна ввода пароля во встроенных механизмах 1С, мы можем явно переопределить параметры авторизации для конкретных точек подключения в схеме vrd. Например, добавить параметры принудительного использования анонимного пользователя для фоновых запросов, чтобы веб-сервер не запрашивал доменные данные там, где они не могут быть корректно переданы платформой.

Таким образом, последовательно применив указанные решения, мы сможем полностью восстановить стабильную работу сквозной авторизации в нашей базе 1С, избавим пользователей от навязчивых окон ввода пароля, устраним ошибку HTTP 401.1 и вернем работоспособность интерактивной вкладки новостей на начальной странице системы.

← На главную