При настройке публикации информационных баз 1С на веб-сервере Internet Information Services (IIS) в операционной системе Windows Server 2019 многие пользователи сталкиваются с затруднениями при авторизации. Основные симптомы проблемы включают постоянный запрос логина и пароля, невозможность войти в систему даже с корректными учетными данными, а также появление ошибок вида 401.x в логах веб-сервера и сообщения о пользователе NT AUTHORITY\IUSR в журнале регистрации 1С. Давайте разберем эту ситуацию по шагам и выясним, какие настройки необходимо проверить и как устранить данную проблему.
Когда вы сталкиваетесь с проблемой авторизации, первым делом необходимо собрать максимум информации. Это поможет нам сузить круг потенциальных причин.
Пользователь ОС: NT AUTHORITY\IUSR, это сразу дает нам важный намек. Данная учетная запись по умолчанию используется IIS для анонимных запросов. Появление ее в логах 1С при попытке авторизации через веб-сервис обычно означает, что IIS успешно принял анонимный запрос, но сама платформа 1С не смогла идентифицировать пользователя, которого вы пытались ввести.wsisapi.dll от 1С) вернуло структурированный 401 ответ. Это означает, что проблема может быть глубже, чем просто настройки IIS, и лежит в области взаимодействия IIS с модулем 1С.На основе этих данных мы можем предположить, что проблема лежит в плоскости некорректной настройки IIS, его взаимодействия с модулем 1С или прав доступа.
Рассмотрим подробнее каждый этап настройки веб-сервера IIS для успешной публикации базы 1С. Даже если вы уже выполняли эти шаги, мы рекомендуем проверить каждый пункт, так как малейшая неточность может привести к ошибкам авторизации.
Прежде чем публиковать базу, убедитесь, что на Windows Server 2019 установлены все необходимые компоненты IIS. Мы выполняем установку следующих ролей и компонентов:
wsisapi.dll)Обращаем ваше внимание, что выбор версии .NET (3.5 или 4.7) зависит от конкретной версии платформы 1С и требований к другим веб-приложениям. Иногда сисадмины устанавливают обе версии, что само по себе не является проблемой, если это не вызывает конфликтов в пулах приложений.
Для корректной работы веб-сервисов 1С нам необходимо правильно настроить пул приложений в IIS:
DefaultAppPool, но для стабильности рекомендуется создавать отдельный пул).True, если вы используете 32-разрядную платформу 1С (а это очень частое требование). Если платформа 1С 64-разрядная, то может быть False, но для совместимости и по умолчанию чаще всего устанавливают True.No Managed Code (Без управляемого кода). Это особенно важно, если в пуле работают только ISAPI-приложения 1С, и мы хотим избежать наложения управляемого кода .NET.Без управляемого кода (No Managed Code) для пула, используемого исключительно для 1С, чтобы избежать потенциальных конфликтов и излишней нагрузки.ApplicationPoolIdentity. Это учетная запись по умолчанию для пула, которая предоставляет ему ограниченные, но достаточные права для взаимодействия с файловой системой и другими компонентами сервера. Это критически важно для безопасности и правильной работы.После изменения параметров пула приложений обязательно перезапустите его или весь IIS.
Некорректные права доступа к файлам и папкам — одна из самых распространенных причин ошибок 401. Мы должны убедиться, что веб-сервер имеет необходимые разрешения для чтения, выполнения и записи (при необходимости) файлов 1С.
Предоставляем следующие права:
C:\Bases\MyBase):
IUSR (учетная запись для анонимного доступа IIS) необходимо предоставить права на Чтение и выполнение, Список содержимого папки, Чтение.IIS_IUSRS (группа, к которой принадлежит ApplicationPoolIdentity) также необходимо предоставить права на Чтение и выполнение, Список содержимого папки, Чтение.IUSR и IIS_IUSRS) также потребуются права на Изменение, так как веб-сервер будет записывать данные в файлы базы. Если база клиент-серверная (SQL), то права на изменение файловой базы не нужны.bin установленной платформы 1С (например, C:\Program Files\1cv8\8.3.XX.XXXX\bin):
IUSR и IIS_IUSRS необходимо предоставить права на Чтение и выполнение, Список содержимого папки, Чтение. Это важно, так как именно в этой папке находится исполняемый модуль wsisapi.dll, который IIS использует для взаимодействия с платформой 1С.Мы настоятельно рекомендуем проверять наследование прав в этих папках, чтобы убедиться, что разрешения распространяются на все вложенные файлы и подпапки.
После всех настроек IIS и прав доступа, мы приступаем к публикации базы 1С:
C:\inetpub\wwwroot\My1CService).При использовании клиент-серверного варианта базы 1С публикация на веб-сервере более предпочтительна для обеспечения стабильной работы при одновременном доступе нескольких пользователей и минимизации блокировок файлов. Файловый вариант менее производителен и подвержен проблемам с блокировками при веб-доступе.
Очень важный аспект, который часто упускается из виду, особенно после обновления платформы 1С. Мы должны убедиться, что для расширений файлов 1С настроены корректные обработчики. Общий модуль для быстрой организации HTTP сервиса (набор функций и процедур)
*.1cws, *.1crs (для веб-сервисов и HTTP-сервисов).wsisapi.dll — указывает на актуальную версию платформы 1С.
C:\Program Files\1cv8\8.3.XX.XXXX\bin\wsisapi.dll, где 8.3.XX.XXXX — это конкретная версия вашей платформы.Если вы обновили платформу 1С, но не переопубликовали базу, или при публикации произошел сбой, старый путь к wsisapi.dll может остаться. В этом случае мы должны вручную исправить путь в сопоставлениях обработчиков или переопубликовать веб-сервис через конфигуратор 1С.
Проблемы с авторизацией (ошибки 401) напрямую связаны с тем, как настроена проверка подлинности в IIS и как она взаимодействует с механизмом авторизации 1С.
В большинстве случаев для веб-сервисов 1С достаточно включить Анонимную проверку подлинности (Anonymous authentication) в IIS. Это позволяет веб-серверу принимать входящие запросы без предварительной проверки учетных данных на уровне IIS. Дальнейшую проверку пользователя и пароля берет на себя сама платформа 1С.
Enabled).Появление пользователя NT AUTHORITY\IUSR в логах 1С, когда IIS запрашивает логин/пароль, но не пускает, как раз и указывает на то, что IIS успешно обрабатывает анонимный запрос (используя учетную запись IUSR по умолчанию), но затем 1С не может идентифицировать пользователя, введенного вами в окне авторизации.
Мы также должны проверить, не задействована ли модель доступа ASP.NET impersonation. При ее использовании иногда тоже случается зацикливание на учетной записи NT AUTHORITY\IUSR или некорректная передача учетных данных.
Для проверки:
Если включена аутентификация операционной системы, проблемы могут возникнуть, если описание текущего пользователя сеанса не совпадает с пользователями, заведенными в базе 1С.
Давайте рассмотрим дополнительные моменты, которые могут вызывать ошибки авторизации 401.x и как их диагностировать.
Эта ошибка, как мы уже упоминали, отличается от других 401 ошибок тем, что она возвращается не самим IIS, а ISAPI-расширением (wsisapi.dll). Это означает, что IIS успешно передал запрос модулю 1С, но модуль 1С по какой-то причине не смог обработать авторизацию и вернул свою собственную ошибку 401.
Причины могут быть разными:
Для диагностики этой ошибки мы должны внимательно изучать журнал регистрации 1С после появления 401.5, чтобы понять, на каком этапе платформа 1С отклоняет пользователя.
Если веб-сервис перестает работать после обновления платформы 1С, одной из частых причин является несоответствие пути к файлу wsisapi.dll в настройках IIS (в Сопоставлениях обработчиков) и текущей версии платформы. Мы должны всегда проверять, что путь указывает на правильную, установленную версию платформы.
Если запросы к веб-сервису проходят через прокси-сервер или сложный сетевой брандмауэр, они могут изменять заголовки аутентификации, прежде чем достигнут веб-сервера. Это может приводить к ошибкам 401.
Authorization).В некоторых случаях, особенно если требуется перенаправление трафика (например, с HTTP на HTTPS) или изменение URL-адресов, может использоваться модуль IIS URL Rewrite. Некорректные правила перенаправления могут влиять на процесс аутентификации, изменяя запросы или заголовки.
Иногда, несмотря на тщательную проверку всех настроек, проблема остается. Это может быть связано с тем, что в процессе предыдущих попыток настройки были внесены неочевидные изменения или системные файлы IIS оказались повреждены.
В таких случаях, как это произошло и в описываемой ситуации, наиболее эффективным решением является полная переустановка веб-сервера IIS. Это позволяет сбросить все его настройки к дефолтным значениям и исключить влияние ранее сделанных ошибок или конфликтов.
Мы рекомендуем следующий алгоритм:
Часто проблема заключается не в одной крупной ошибке, а в совокупности нескольких мелких неточностей, которые накопились в процессе настройки. Полная переустановка и пошаговая настройка с нуля по проверенной методике позволяют исключить эти скрытые проблемы и добиться стабильной работы веб-сервисов 1С.
Если после выполнения всех этих шагов проблема все еще сохраняется, мы можем обратиться к специалистам, предоставив им максимально подробную информацию из всех логов и описание выполненных действий.