Сквозная аутентификация (Single Sign-On / SSO) позволяет пользователям автоматически входить в веб-клиент 1С:Предприятие без повторного ввода логина и доменного пароля. Разберем по шагам, как правильно настроить веб-сервер, кластер серверов 1С и клиентские браузеры для работы протоколов NTLM и Kerberos.
Рассмотрим порядок включения Windows-аутентификации в зависимости от используемого веб-сервера:
Для веб-сервера IIS:
Без управляемого кода (No Managed Code).Negotiate (для поддержки Kerberos), а провайдер NTLM укажем вторым в качестве резервного.Для веб-сервера Apache:
mod_authnz_sspi. Устаревший модуль mod_auth_sspi использовать не рекомендуется.mod_auth_gssapi (или mod_auth_kerb), сгенерировав предварительно файл keytab на контроллере домена Active Directory и связав его с именем службы (SPN).Проанализируем ситуацию, когда веб-сервер и кластер серверов 1С разнесены на разные физические или виртуальные машины. Протокол NTLM принципиально не умеет передавать учетные данные пользователя на третий узел (проблема Double-Hop). В этом случае авторизация работать не будет.
Для решения этой задачи выполним следующие действия:
HTTP/fqdn_имени_сервера для учетной записи, под которой запущен веб-сервер.Выясним частую причину ошибок при запуске веб-расширения 1С. Разрядность модуля расширения веб-сервера 1С должна строго совпадать с разрядностью самого веб-сервера:
wsapi.dll для Windows или wsap24.so для Linux).Посмотрим, какие параметры необходимо задать в базе данных и файле публикации:
default.vrd в секции аутентификации укажем разрешение операционной системы:
<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"
ib="Srvr=Server1C;Ref=BaseName;">
<ws enable="true"/>
</point>
DOMAIN\user или user@domain.local.Проанализируем настройки на рабочих станциях пользователей. Чтобы браузер автоматически передавал доменные кредишнлы на веб-сервер, выполним настройку клиентского ПО:
about:config, найдем параметры network.automatic-ntlm-auth.trusted-uris и network.negotiate-auth.trusted-uris и внесем в них имя домена или URL-адрес веб-сервера 1С.