При переходе пользователей с тонкого клиента на веб-клиент часто возникает ситуация, когда при входе в базу 1С запрашиваются логин и пароль, несмотря на то, что для пользователя в конфигураторе включена аутентификация операционной системы. В тонком клиенте вход происходит прозрачно, а веб-браузер выдает стандартное диалоговое окно авторизации или форму 1С. Разберем причины такого поведения и настроим сквозную доменную аутентификацию (Single Sign-On, SSO) для связки IIS и Mozilla Firefox.
Тонкий клиент 1С обращается к службам операционной системы Windows напрямую, автоматически получая текущий токен безопасности пользователя. Веб-клиент работает внутри браузера, который по соображениям безопасности не передает доменные учетные данные (NTLM- или Kerberos-тикеты) сторонним веб-узлам без явного разрешения администратора или пользователя. Кроме того, веб-сервер IIS должен быть предварительно сконфигурирован для приема и проверки доменных учетных данных.
Разберем по шагам правильную конфигурацию веб-сервера Internet Information Services (IIS):
inetmgr).IUSR и не запрашивает доменные реквизиты клиента.Negotiate и NTLM. Если в локальной сети не настроен Kerberos или отсутствуют SPN-записи, переместим NTLM на первое место в списке.Выкл. (None) или Принимать (Accept), чтобы избежать блокировки запросов от сторонних браузеров.Проанализируем файл публикации базы данных default.vrd, расположенный в физическом каталоге публикации на сервере. При публикации базы через конфигуратор или утилиту webinst необходимо удостовериться, что платформа 1С настроена на использование аутентификации веб-сервера.
В секции конфигурации виртуального приложения должен присутствовать параметр, разрешающий сквозную проверку подлинности:
<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="Srvr=app-server;Ref=base_name;"
wsauth="true">
</point>
Атрибут wsauth="true" указывает платформе, что авторизацию пользователя выполняет веб-сервер, после чего переданный логин ОС сопоставляется с пользователем информационной базы 1С.
По умолчанию Firefox не выполняет автоматическую NTLM- и Kerberos-аутентификацию для произвольных адресов. Чтобы браузер прозрачно передавал учетные данные домена, настроим параметры доверенных зон:
about:config и подтвердим согласие с предупреждением безопасности.network.automatic-ntlm-auth.trusted-uris.http://server.domain.local или .domain.local). Если баз несколько, адреса можно перечислить через запятую.network.negotiate-auth.trusted-uris и укажем тот же список адресов для поддержки Kerberos.http://server/base), переведем параметры network.automatic-ntlm-auth.allow-non-fqdn и network.negotiate-auth.allow-non-fqdn в значение true.Чтобы не настраивать каждый компьютер вручную, применим групповые доменные политики (GPO). Существует два основных способа централизованного применения настроек браузера:
Конфигурация компьютера -> Административные шаблоны -> Mozilla -> Firefox -> Аутентификация настроим параметры доверенных сайтов SPNEGO и NTLM.network.automatic-ntlm-auth.trusted-uris.Рассмотрим распространенные технические нюансы, которые могут приводить к сбоям при авторизации:
rphost) находятся на разных физических серверах, протокол NTLM не сможет передать учетные данные дальше веб-сервера. В такой архитектуре необходимо настроить полноценное Kerberos-делегирование и зарегистрировать имена служб (SPN) с помощью утилиты setspn.DOMAIN\User или user@domain.local. Точный формат имени, передаваемый веб-сервером, можно отследить в технологическом журнале 1С по событиям CONN и параметру DstUserName2.401 Unauthorized, разместив на ней пошаговую инструкцию по настройке параметров доверенных узлов.