При публикации HTTP-сервисов на веб-сервере IIS многие разработчики сталкиваются с ошибкой 401.5 — Unauthorized. Данная ошибка свидетельствует о том, что веб-сервер блокирует доступ к ресурсу на этапе обработки запроса модулем ISAPI или CGI. Простыми словами, IIS пытается проверить ваши учетные данные до того, как запрос будет передан на исполнение платформе 1С.
Давайте разберем по шагам, как настроить систему, чтобы обмен данными заработал стабильно.
Основная причина возникновения ошибки — конфликт между настройками безопасности веб-сервера и методами авторизации в 1С. Для того чтобы 1С могла самостоятельно обработать передаваемый логин и пароль (например, через Basic Auth в Postman), нам необходимо разрешить анонимный доступ на уровне веб-сервера.
Даже при правильных настройках IIS, параметры публикации в 1С могут блокировать выполнение запросов. Важно убедиться, что настройки аутентификации в конфигураторе не вступают в конфликт с вашими задачами.
default.vrd) (поможет расширение для реализации REST API с Basic Auth), снимите эту галочку. Использование доменной авторизации часто является избыточным при работе с HTTP-сервисами и приводит к ошибкам 401.Файл default.vrd — это «сердце» настроек публикации вашей базы. Если вам необходимо, чтобы сервис всегда работал под определенным пользователем 1С, вы можете задать его учетные данные непосредственно в этом файле. Это упрощает работу при интеграции, когда нет возможности передавать заголовки авторизации с клиента — для этого есть организация обмена данными через веб-сервисы.
Откройте файл default.vrd в корневом каталоге опубликованной базы и приведите строку подключения к следующему виду:
ib="Srvr="ИмяСервера";Ref="ИмяБазы";Usr=ИмяПользователя;Pwd=Пароль;"
Важное примечание: Если вы прописали пользователя в default.vrd, при тестировании запросов в Postman или других программах поле авторизации можно оставлять пустым, так как аутентификация происходит автоматически при обращении к ресурсу.
Если вы не используете жестко заданные данные в default.vrd, вам необходимо корректно передавать учетные данные через заголовок Authorization (популярный вариант — использование JWT-токенов) — для этого подойдёт инструмент логирования и анализа HTTP-запросов для 1С.
Если проблема носит эпизодический характер, причина, скорее всего, кроется в кэшировании данных аутентификации. Браузер или клиент могут запоминать старые, неверные учетные данные и автоматически отправлять их при последующих запросах. В таких ситуациях рекомендуем очистить куки (Cookies) в Postman или попробовать отправить запрос в режиме инкогнито. Также стоит проверить журнал событий Windows в разделе Windows Logs -> System — IIS часто записывает туда более подробную причину отказа, которая укажет, какой именно модуль блокирует ваш запрос.
Следуя этим рекомендациям, вы сможете локализовать и устранить конфликт уровней доступа и успешно публиковать свои HTTP-сервисы.