При публикации информационной базы 1С:Предприятие на веб-сервере Microsoft Internet Information Services (IIS) системные администраторы и разработчики часто сталкиваются с ситуацией, когда окно авторизации отклоняет корректные учетные данные пользователей 1С или учетные записи операционной системы. При этом, если удалить всех пользователей из конфигурации 1С, вход в базу осуществляется без запроса пароля. Разберем детально, почему возникает такой конфликт и как правильно настроить веб-сервер и права в базе данных.
Основная причина циклического запроса логина и пароля заключается в том, кто именно выполняет проверку подлинности: сам веб-сервер IIS или модуль расширения веб-сервера 1С (wsisapi.dll). Если в параметрах опубликованного сайта в IIS активирована Проверка подлинности Windows (Windows Authentication) или Базовая проверка подлинности (Basic Authentication), веб-сервер пытается сопоставить вводимые логин и пароль с локальными или доменными пользователями операционной системы Windows, перехватывая HTTP-заголовок Authorization и не передавая его платформе 1С.
Для того чтобы аутентификация выполнялась средствами самой платформы 1С:Предприятие (по списку пользователей базы), разберем по шагам правильную настройку IIS:
inetmgr).iisreset в командной строке или через панель действий диспетчера IIS.Управление методами входа также задается в конфигурационном файле публикации default.vrd, который платформа 1С создает в каталоге публикации. Проанализируем ключевые атрибуты корневого узла <point>:
enableStandardAuthentication="true" разрешает использование стандартной проверки подлинности платформы 1С (по логину и паролю пользователя информационной базы).enableOSAuthentication="false" отключает сквозную аутентификацию средствами операционной системы, предотвращая лишние запросы со стороны браузера при отсутствии настроенного доменного окружения.Посмотрим на пример структуры файла default.vrd для корректной стандартной авторизации пользователей 1С:
<?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="/base_name"
ib="File="C:\Bases\MyBase";"
enableStandardAuthentication="true"
enableOSAuthentication="false">
<ws/>
<httpServices/>
</point>
Если параметры веб-сервера настроены корректно, но пользователь 1С все равно не может войти в систему или получает сообщение об ограничении прав доступа, проверим настройки прав в конфигураторе 1С:
Для стабильной работы веб-сервисов и веб-клиента необходимо предоставить сервисной учетной записи IIS корректные права на уровне файловой системы:
IIS_IUSRS и IUSR) должна иметь права Чтение и выполнение на каталог с установленной платформой 1С (включая модуль wsisapi.dll) и на папку с файлом публикации default.vrd.1Cv8.1CD), группе IIS_IUSRS требуются права Изменение (Modify) и Запись (Write) на каталог с базой, так как сеанс веб-сервера производит блокировки и запись временных файлов от имени рабочего процесса пула приложений IIS.