Настройка Windows-аутентификации (аутентификации операционной системы) в 1С — это отличный способ упростить жизнь пользователям и избавить их от необходимости постоянно вводить пароли при запуске программы. Однако в инфраструктурах, где отсутствует домен Active Directory (все компьютеры работают в обычной рабочей группе — Workgroup), системные администраторы часто сталкиваются с тем, что данная функция отказывается работать. Особенно остро эта проблема проявляется на серверах под управлением Windows Server 2008 R2, в то время как на более современных Windows Server 2012 или Windows 10 всё запускается без видимых сложностей.
В этой статье мы подробно разберем, как устроена сквозная авторизация в 1С без домена, выясним причины сбоев на уровне сетевых политик операционной системы и пошагово настроим сервер и клиентские машины для стабильной работы.
Для начала проанализируем, как именно платформа 1С проверяет права пользователя ОС в клиент-серверном варианте работы. Когда пользователь запускает тонкий или толстый клиент, его компьютер не проверяет подлинность учетной записи локально для передачи готового «флага» успешного входа. Проверка выполняется на стороне сервера приложений 1С (процессом rphost.exe).
Сервер приложений 1С запрашивает у операционной системы проверку подлинности присланных клиентом данных. Если сервера и рабочие станции находятся в домене, этот запрос делегируется контроллеру домена через протокол Kerberos. Но если домена нет, сервер 1С вынужден проверять пользователя через локальную базу учетных записей (SAM). Чтобы сервер Windows разрешил такую авторизацию, операционные системы на клиенте и сервере должны «доверять» друг другу.
Добиться этого доверия в рабочей группе можно только одним способом — созданием абсолютно идентичных локальных пользователей на всех узлах сети.
Рассмотрим базовое правило сквозной авторизации в одноранговой сети (Workgroup): имена пользователей и их пароли на клиентском компьютере и на сервере 1С должны полностью совпадать.
Выполним следующие действия для настройки учетных записей:
compmgmt.msc) и перейдем в раздел «Локальные пользователи и группы» — «Пользователи».ИвановИИ. Установим для него надежный пароль и снимем флаг «Потребовать смену пароля при следующем входе в систему».ИвановИИ и точно таким же паролем, который был задан на сервере.Важное замечание: Обратим внимание на учетные записи Microsoft (в виде адресов электронной почты), которые часто используются по умолчанию в Windows 8.1 и Windows 10. Платформа 1С некорректно работает с сетевой авторизацией таких аккаунтов в рабочей группе. Настоятельно рекомендуется создавать классические локальные учетные записи на рабочих станциях.
После того как учетные записи операционной системы созданы, нам необходимо связать их с пользователями информационной базы 1С. Выполним следующие действия:
\\ИМЯ_СЕРВЕРА\ИмяПользователя. Например: \\1C-SRV\ИвановИИ.Если в списке выбора нет нужного имени, его можно вписать в это поле вручную. Главное — убедиться, что имя сервера и имя локальной учетки указаны без ошибок и лишних пробелов.
Даже если учетные записи и пути в Конфигураторе настроены верно, операционная система Windows Server 2008 R2 часто блокирует авторизацию из-за встроенных механизмов безопасности локальных учетных записей администраторов.
Если учетная запись пользователя на клиентском компьютере или сервере входит в группу «Администраторы» (Administrators), то при попытке сетевого подключения к серверу вступают в силу политики контроля учетных записей (UAC). По умолчанию Windows урезает административные права для сетевых запросов от локальных пользователей. Этот механизм называется фильтрацией локальных токенов безопасности, и именно он чаще всего вызывает бесконечный запрос логина и пароля в 1С.
Чтобы отключить фильтрацию токенов для локальных администраторов при сетевом подключении, выполним редактирование системного реестра на сервере приложений 1С:
Win + R, введем команду regedit и нажмем Enter для запуска редактора реестра.HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System
LocalAccountTokenFilterPolicy.1 (система исчисления — шестнадцатеричная).Еще одна скрытая проблема Windows Server 2008 R2 заключается в несовпадении поддерживаемых протоколов шифрования авторизации на сервере и старых клиентских машинах (например, под управлением Windows 7). По умолчанию сервер требует только самый защищенный протокол NTLMv2, в то время как клиенты могут пытаться отправить более старые версии ответов.
Приведем настройки сетевой безопасности к единому стандарту на сервере и клиентских ПК:
Win + R, введем secpol.msc и откроем «Локальную политику безопасности».Если пользователи подключаются к базе 1С через веб-клиент или тонкий клиент по протоколам HTTP/HTTPS, то авторизация операционной системы обрабатывается не сервером 1С напрямую, а веб-сервером. Здесь есть важные технологические нюансы.
Ограничение веб-сервера Apache: Полноценная Windows-аутентификация для 1С силами веб-сервера Apache под управлением ОС Windows в бесдоменной среде не поддерживается. Если вам необходима сквозная авторизация по HTTP, в качестве веб-сервера следует использовать исключительно Internet Information Services (IIS).
Настроим веб-сервер IIS 7.5 (стандартный для Windows Server 2008 R2) для корректной работы:
NTLM. Если там находится Negotiate, переместим NTLM вверх списка, так как без домена протокол Kerberos, используемый по умолчанию в Negotiate, работать не сможет.IIS_IUSRS права на чтение и выполнение для каталога установки 1С (обычно это C:\Program Files\1cv8).Если после выполнения всех настроек аутентификация по-прежнему запрашивает имя пользователя и пароль, нам поможет встроенный механизм диагностики 1С — Технологический журнал (ТЖ). Он позволит увидеть, под каким именно именем пользователя клиент обращается к серверу 1С и какую ошибку возвращает операционная система.
Настроим сбор логов технологического журнала по шагам:
C:\Program Files\1cv8\conf).logcfg.xml.
<config xmlns="http://v8.1c.ru/8.1/data/txt/config">
<log location="C:\1C_Logs" history="1">
<event>
<eq property="Name" value="CONN"/>
</event>
<event>
<eq property="Name" value="EXCP"/>
</event>
<property name="all"/>
</log>
</config>
C:\ папку с именем 1C_Logs и дадим пользователю, под которым запущена служба сервера 1С (обычно это USR1CV8), полные права на запись в эту папку.C:\1C_Logs с помощью любого текстового редактора.EXCP (исключение) со словами «Идентификация пользователя не выполнена».CONN. Обратим внимание на свойство DstUserName2. В нем будет содержаться точное имя пользователя Windows, которое клиентская машина передала серверу 1С (например, WORKSTATION\User1 или SERVER\User1).DstUserName2, необходимо скопировать и прописать в поле «Пользователь ОС» в Конфигураторе 1С. Часто из-за несовпадения имен рабочих станций или регистра букв авторизация отклоняется сервером, а технологический журнал помогает быстро обнаружить это несовпадение.После успешной настройки и проверки работы системы не забудьте удалить файл logcfg.xml из папки conf, чтобы файлы технологического журнала не переполняли свободное место на жестком диске сервера.
Применение описанного комплексного подхода гарантирует успешный запуск Windows-аутентификации в базах данных 1С даже в условиях отсутствия доменной сети Active Directory.