Почему веб-сервис 1С на IIS выдает ошибку HTTP 401.5 Unauthorized и циклически запрашивает пароль?

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

При публикации веб-сервисов 1С:Предприятия на веб-сервере Internet Information Services (IIS) специалисты часто сталкиваются с ситуацией, когда при обращении к URL-адресу публикации (например, http://localhost/BPTTTTEST/ws/ws_upl_sf.1cws?wsdl) возникает бесконечный цикл запросов учетных данных. Браузер последовательно запрашивает сначала пароль узла localhost, затем учетные данные пользователя 1С, после чего снова повторяет запрос авторизации и завершает работу ошибкой HTTP 401.5 - Unauthorized.

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

Анализ проблемы: что означает ошибка HTTP 401.5

Код ошибки 401.5 информирует о том, что веб-приложение ISAPI или CGI, выполняющее проверку учетных данных до начала основной обработки данных, не смогло авторизовать пользователя. В случае 1С роль такого приложения выполняет модуль расширения веб-сервера wsisapi.dll.

Проанализируем основные факторы, вызывающие этот сбой:

  1. Конфликт способов аутентификации IIS и 1С: Если для виртуального каталога в IIS одновременно активированы «Windows-аутентификация» и «Основная аутентификация», веб-сервер пытаются проверить пользователя средствами ОС Windows еще до того, как запрос передается платформе 1С.
  2. Использование кириллицы в логине или пароле 1С: При передаче данных через заголовок Authorization: Basic логин и пароль кодируются в Base64. Из-за различий в кодировках (Windows-1251 и UTF-8) между браузером, IIS и платформой 1С кириллические символы искажаются, и платформа отклоняет авторизацию.
  3. Особенности работы NTLM в браузерах: Браузер Internet Explorer при обращении к узлу localhost пытается применить сквозную авторизацию Windows, блокируя передачу заголовков HTTP Basic Auth.

Способ 1. Использование латинских символов в имени пользователя 1С

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

  1. Откроем конфигуратор информационной базы 1С.
  2. Перейдем в меню Администрирование — Пользователи.
  3. Создадим отдельного пользователя для работы с веб-сервисом (или переименуем существующего), указав имя исключительно латинскими буквами (например, ws_user вместо ВебПользователь).
  4. Зададим пароль, состоящий только из символов латинского алфавита и цифр.
  5. Назначим пользователю необходимые роли для выполнения методов веб-сервиса.

Способ 2. Правильная настройка аутентификации в IIS

Чтобы исключить вмешательство встроенных механизмов безопасности Windows в процесс авторизации 1С, выполним корректную настройку параметров виртуального каталога в Диспетчере служб IIS:

  1. Откроем Диспетчер служб IIS (Internet Information Services Manager).
  2. В дереве подключений выберем опубликованный виртуальный каталог 1С (например, BPTTTTEST).
  3. В центральном окне откроем раздел Аутентификация (Authentication).
  4. Включим параметр Анонимная аутентификация (Anonymous Authentication).
  5. Отключим все остальные виды аутентификации: Windows-аутентификация, Основная аутентификация и Дайджест-аутентификация должны быть переведены в состояние Отключено.
  6. Нажмем правой кнопкой мыши по «Анонимная аутентификация», выберем Изменить... и установим параметр в положение Удостоверение пула приложений (Application pool identity).

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

Способ 3. Передача учетных данных в файле default.vrd

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

Рассмотрим пример настройки файла default.vrd, расположенного в каталоге публикации (например, C:\inetpub\wwwroot\BP_TTT\):


<?xml version="1.0" encoding="UTF-8"?>
<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="/BPTTTTEST"
       ib="File=&quot;C:\Base1C&quot;;Usr=&quot;ws_user&quot;;Pwd=&quot;MySecretPassword&quot;;">
    <ws>
        <point name="ws_upl_sf"
               alias="ws_upl_sf.1cws"
               enable="true"/>
    <ws>
</point>

Параметры Usr и Pwd в строке соединения ib позволяют платформе автоматически подключаться к базе под указанной учетной записью без вызова всплывающих окон авторизации.

Способ 4. Проверка разрядности пула приложений и прав доступа

Если вызов WSDL по-прежнему завершается ошибкой, проверим соответствие разрядности модуля 1С и настроек пула IIS:

  1. В Диспетчере IIS перейдем в раздел Пулы приложений (Application Pools).
  2. Выберем пул, обслуживающий публикацию 1С, и откроем Дополнительные параметры (Advanced Settings).
  3. Если используется 32-разрядная платформа 1С на 64-разрядной ОС Windows Server, установим параметр Разрешить 32-битные приложения (Enable 32-Bit Applications) в значение True. Если используется 64-разрядная платформа 1С, установим False.
  4. Убедимся, что учетная запись пула (например, IUSR или NETWORK SERVICE) имеет права на чтение и выполнение для файла wsisapi.dll, а также права на чтение каталога с файлом default.vrd.

Способ 5. Настройка MIME-типов в IIS

Для корректного отображения схемы WSDL в различных браузерах (включая Mozilla Firefox, Chrome и Edge) необходимо убедиться, что IIS корректно отдает файлы с расширением .1cws. Разберем добавление MIME-типа:

  1. В Диспетчере IIS выберем узел сервера или конкретную публикацию.
  2. Откроем раздел Типы MIME (MIME Types).
  3. Добавим новое сопоставление: Расширение: .1cws, Тип MIME: text/xml или application/soap+xml.

Применение комплексного подхода — включение анонимной аутентификации в IIS, использование латинского имени пользователя 1С и корректная настройка файла default.vrd — полностью устраняет ошибку HTTP 401.5 и обеспечивает стабильную работу веб-сервисов.

← На главную