Разберем распространенную и крайне неприятную ситуацию, с которой часто сталкиваются системные администраторы при публикации баз данных 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 до конфигурации клиентских мест и операционной системы.
Очень часто сбой происходит из-за некорректной настройки анонимного доступа на уровне IIS, из-за чего веб-сервер не может правильно сопоставить внутренние запросы службы с пулом приложений.
Выполним следующие шаги для настройки:
inetmgr в строке выполнить).После этого рекомендуется перезапустить веб-сервер IIS, выполнив в командной строке от имени администратора команду iisreset.
Проанализируем параметры запуска информационной базы у пользователей. Нам необходимо убедиться, что тонкий или толстый клиент 1С настроен на автоматический выбор метода авторизации на веб-сервере.
Также важно зайти в базу через Конфигуратор, открыть свойства конкретного пользователя и убедиться, что на вкладке «Аутентификация» установлена галочка «Аутентификация операционной системы» и корректно указано имя пользователя домена в формате Domain\Username.
Если система работала корректно, а затем внезапно начала требовать авторизацию у всех пользователей, это верный признак того, что операционная система Windows на клиентских ПК перестала считать адрес веб-сервера 1С доверенным. Безопасность Windows блокирует автоматическую отправку доменных учетных данных (SSO) на узлы, которые она считает внешними (зона «Интернет»).
Чтобы принудительно заставить Windows передавать доменные данные без запроса пароля, выполним настройку зон безопасности:
http://имя_сервера, https://имя_сервера или его IP-адрес) и нажмем кнопку «Добавить».Полезный совет: Чтобы не проделывать эту операцию вручную на каждом клиентском компьютере в крупной сети, системный администратор может настроить это централизованно через групповые политики домена (GPO), добавив адрес публикации 1С в список сайтов зоны интрасети (параметр Site to Zone Assignment List).
В ситуациях, когда веб-сервер IIS и сервер приложений 1С (или файловая база данных) развернуты на одной физической машине (или если пользователи запускают 1С непосредственно через терминальный сервер, где установлен IIS), операционная система Windows включает встроенную защиту от атак отражения (Loopback Check). Этот механизм блокирует локальные сетевые запросы к самому себе, если они выполняются по доменному имени, возвращая ошибку 401.1.
Для решения этой проблемы на сервере с IIS необходимо внести изменения в системный реестр:
Win + R, введем команду regedit и нажмем Enter для запуска редактора реестра.
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa
DisableLoopbackCheck.1 (в десятичной или шестнадцатеричной системе счисления).iisreset в консоли.По умолчанию служба Windows-авторизации в IIS использует протокол Negotiate (который в первую очередь пытается задействовать безопасный Kerberos), а в случае неудачи откатывается на более старый протокол NTLM. Если в домене Active Directory произошли изменения (например, сбросился пароль учетной записи службы, изменились политики контроллера домена или обновились SPN-имена), протокол Kerberos начинает возвращать ошибки авторизации, вынуждая IIS запрашивать пароль вручную.
Для проверки и исправления этой ситуации выполним перенастройку провайдеров:
Частой причиной ошибки 401.1 является банальное отсутствие прав доступа учетной записи пула приложений к физическому каталогу, в котором опубликован файл конфигурации базы default.vrd. Это часто случается после обновления платформы 1С или переноса каталогов.
Проанализируем права доступа:
ApplicationPoolIdentity.C:\inetpub\wwwroot\имя_публикации).IIS_IUSRS имеет как минимум права «Чтение и выполнение» (Read & execute), «Список содержимого папки» (List folder contents) и «Чтение» (Read) на эту папку и все вложенные файлы.IIS_IUSRS на каталог установки исполняемых файлов платформы 1С (обычно это папка C:\Program Files\1cv8\ или C:\Program Files (x86)\1cv8\), так как веб-сервер обращается к библиотекам платформы (например, к файлу расширения веб-сервера wsisapi.dll) для обеспечения работы публикации.Практический опыт веб-публикаций 1С показывает, что IIS крайне чувствителен к регистру букв в URL-адресах, а также к наличию некоторых специальных символов в имени виртуального каталога. Использование знаков подчеркивания, дефисов или заглавных букв (например, публикация с именем My_Base_1C) может приводить к непредсказуемым сбоям сессии авторизации во встроенном браузере 1С.
Рекомендуется переопубликовать базу с соблюдением простых правил:
IP_Klicko назовем публикацию ipklichko)._.При обновлении платформы 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="C:\Base1C\Accounting";">
<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 и вернем работоспособность интерактивной вкладки новостей на начальной странице системы.