При публикации веб-сервисов 1С:Предприятия на веб-сервере Internet Information Services (IIS) специалисты часто сталкиваются с ситуацией, когда при обращении к URL-адресу публикации (например, http://localhost/BPTTTTEST/ws/ws_upl_sf.1cws?wsdl) возникает бесконечный цикл запросов учетных данных. Браузер последовательно запрашивает сначала пароль узла localhost, затем учетные данные пользователя 1С, после чего снова повторяет запрос авторизации и завершает работу ошибкой HTTP 401.5 - Unauthorized.
В этой статье разберем причины такого поведения веб-сервера, проанализируем конфликт систем аутентификации и рассмотрим пошаговые способы исправления ошибки.
Код ошибки 401.5 информирует о том, что веб-приложение ISAPI или CGI, выполняющее проверку учетных данных до начала основной обработки данных, не смогло авторизовать пользователя. В случае 1С роль такого приложения выполняет модуль расширения веб-сервера wsisapi.dll.
Проанализируем основные факторы, вызывающие этот сбой:
Authorization: Basic логин и пароль кодируются в Base64. Из-за различий в кодировках (Windows-1251 и UTF-8) между браузером, IIS и платформой 1С кириллические символы искажаются, и платформа отклоняет авторизацию.localhost пытается применить сквозную авторизацию Windows, блокируя передачу заголовков HTTP Basic Auth.Практика показывает, что главной причиной сбоя авторизации при ручном вводе логина в окне браузера часто являются кириллические имена пользователей. Разберем по шагам решение этой проблемы:
ws_user вместо ВебПользователь).Чтобы исключить вмешательство встроенных механизмов безопасности Windows в процесс авторизации 1С, выполним корректную настройку параметров виртуального каталога в Диспетчере служб IIS:
BPTTTTEST).После этой настройки IIS начнет беспрепятственно пробрасывать HTTP-заголовки авторизации напрямую в модуль 1С, и проверка пользователя будет выполняться штатными средствами платформы.
Если веб-сервис используется для интеграции между системами и не требует интерактивного ввода пароля пользователем, пропишем учетные данные прямо в файле конфигурации публикации 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="C:\Base1C";Usr="ws_user";Pwd="MySecretPassword";">
<ws>
<point name="ws_upl_sf"
alias="ws_upl_sf.1cws"
enable="true"/>
<ws>
</point>
Параметры Usr и Pwd в строке соединения ib позволяют платформе автоматически подключаться к базе под указанной учетной записью без вызова всплывающих окон авторизации.
Если вызов WSDL по-прежнему завершается ошибкой, проверим соответствие разрядности модуля 1С и настроек пула IIS:
True. Если используется 64-разрядная платформа 1С, установим False.IUSR или NETWORK SERVICE) имеет права на чтение и выполнение для файла wsisapi.dll, а также права на чтение каталога с файлом default.vrd.Для корректного отображения схемы WSDL в различных браузерах (включая Mozilla Firefox, Chrome и Edge) необходимо убедиться, что IIS корректно отдает файлы с расширением .1cws. Разберем добавление MIME-типа:
.1cws, Тип MIME: text/xml или application/soap+xml.Применение комплексного подхода — включение анонимной аутентификации в IIS, использование латинского имени пользователя 1С и корректная настройка файла default.vrd — полностью устраняет ошибку HTTP 401.5 и обеспечивает стабильную работу веб-сервисов.