Почему не работает аутентификация операционной системы в 1С и как это исправить?

Системный администратор 1С v8.3 (Управляемые формы) IT и автоматизация бизнеса
← На главную

Аутентификация операционной системы (Windows-аутентификация) в 1С:Предприятие — это удобный механизм, позволяющий пользователям входить в базу без повторного ввода логина и пароля. Однако на практике системные администраторы часто сталкиваются с ситуацией, когда галочка "Аутентификация ОС" установлена, но система упорно запрашивает учетные данные или выдает ошибку доступа. Рассмотрим подробнее, почему возникают такие проблемы, проанализируем различные сетевые архитектуры (домен и рабочая группа) и разберем по шагам алгоритмы их решения.

Главный инструмент диагностики: Журнал регистрации 1С

Прежде чем менять настройки серверов, выясним причину отказа в доступе. Для этого проанализируем попытки входа со стороны самой платформы.

  1. Откройте конфигуратор или режим предприятия с правами администратора.
  2. Перейдите в Журнал регистрации.
  3. Установите отбор по событию Сеанс.Аутентификация.
  4. Найдите записи об ошибках или предупреждениях, связанных с проблемным пользователем.

В колонке "Пользователь ОС" система честно пишет, под каким именно именем Windows пытается авторизовать сеанс. Проблема аутентификации почти всегда сводится к тому, что значение, переданное операционной системой и зафиксированное в событии Сеанс.Аутентификация, не совпадает до символа с тем значением, которое указано в карточке пользователя информационной базы. Посмотрим на примеры таких несовпадений.

Ситуация 1: Ошибка формата имени домена (FQDN против NetBIOS)

Разберем ситуацию, когда клиент и сервер 1С находятся в домене Active Directory (AD). При настройке пользователя информационной базы администратор нажимает кнопку выбора пользователя ОС, и конфигуратор автоматически подставляет учетную запись. Но аутентификация не работает.

Проблема кроется во внутреннем взаимодействии платформы с Active Directory. При выборе пользователя через стандартное диалоговое окно Windows, конфигуратор часто подхватывает полное DNS-имя домена (FQDN), записывая его в виде domain.local\user или user@domain.local (формат UPN).

Однако ядро сервера 1С при проверке токена безопасности строго опирается на атрибут sAMAccountName из Active Directory. Этот атрибут использует исторический формат имен, совместимый с «pre-Windows 2000» (NetBIOS-имя). Поэтому платформа не может автоматически сопоставить полное имя и отклоняет вход.

Как это исправить:

  1. Откройте карточку пользователя 1С в режиме Конфигуратора.
  2. В поле "Пользователь ОС" вручную удалите доменную зону (например, .local или .com).
  3. Приведите запись к короткому формату NetBIOS: DOMAIN\user.
  4. Сохраните изменения. Платформа начнет корректно распознавать токен пользователя ОС.

Ситуация 2: Работа без домена (в рабочей группе) и загадка пользователя «Гость»

Проанализируем более сложную конфигурацию. Домен Active Directory отсутствует (работаем в Workgroup). Сервер 1С развернут на одной машине (назовем ее SRV1), а пользователи подключаются по RDP к серверу терминалов на другой машине (SRV2). В настройках пользователя 1С указано: SRV2\Ivanov.

Пользователь заходит по RDP на терминальный сервер, запускает 1С, но аутентификация ОС не срабатывает. Заглянув в событие Сеанс.Аутентификация, мы видим, что сервер 1С идентифицирует попытку входа как пользователя SRV1\Guest (Гость). Почему так происходит?

Так как домена нет, серверы не доверяют друг другу по умолчанию. При попытке клиента (SRV2) подключиться к серверу 1С (SRV1), используется протокол аутентификации NTLM. Клиент передает серверу 1С логин и хеш пароля текущего сеанса. Поскольку на SRV1 нет локальной учетной записи "Ivanov", Windows не знает, кто стучится по сети. По умолчанию, операционная система понижает права неопознанного сетевого пользователя до встроенной учетной записи «Гость».

Разберем по шагам создание зеркальных аккаунтов (Mirror Accounts):

  1. На сервере 1С (SRV1) создайте локального пользователя с точно таким же логином (Ivanov) и абсолютно идентичным паролем, как на терминальном сервере (SRV2).
  2. В настройках пользователя в базе 1С пропишите локального пользователя сервера 1С, то есть: SRV1\Ivanov.
  3. Теперь при передаче хеша NTLM, сервер SRV1 обнаружит совпадение логина и пароля в своей локальной базе SAM и успешно авторизует пользователя от имени SRV1\Ivanov.

Критически важная настройка политик безопасности:
Зеркальные аккаунты не сработают, если на сервере 1С неправильно настроена политика сетевого доступа. Выполните следующие действия на сервере 1С (SRV1):

  1. Нажмите Win + R, введите secpol.msc и нажмите Enter (откроются Локальные политики безопасности).
  2. Перейдите в раздел "Локальные политики" -> "Параметры безопасности".
  3. Найдите политику: «Сетевой доступ: модель совместного доступа и безопасности для локальных учетных записей».
  4. Измените ее значение с «Гостевая» на «Классическая — локальные пользователи аутентифицируются как они сами».
  5. Примените политику (можно использовать команду gpupdate /force).

Ситуация 3: Служба сервера 1С (ragent) и протокол Kerberos в домене

Рассмотрим ситуацию, когда все настроено правильно, короткое имя домена указано (NetBIOS), но аутентификация работает нестабильно: иногда пускает, а иногда постоянно запрашивает логин и пароль. Это часто происходит в высоконагруженных доменных сетях при клиент-серверной архитектуре.

По умолчанию служба сервера 1С (агент сервера `ragent`) запускается от имени локальной системной учетной записи (Local System). В таком режиме аутентификация ОС работает гладко. Но если системный администратор изменил пользователя службы на выделенную доменную учетную запись (например, DOMAIN\1c_service) для организации бэкапов на сетевые шары или доступа к внешним файлам, протокол Kerberos "ломается".

Без корректной настройки Active Directory откатывается на устаревший и менее надежный протокол NTLM.

Как настроить Service Principal Name (SPN):

Для успешной работы Kerberos необходимо вручную зарегистрировать SPN для учетной записи, от имени которой работает служба 1С. Это делается на контроллере домена через командную строку от имени администратора предприятия с помощью утилиты setspn.

Пример команды для регистрации SPN:


setspn -A V83C/srv-1c.domain.local DOMAIN\1c_service
setspn -A V83C/srv-1c DOMAIN\1c_service

В этом примере V83C — класс службы (используется платформой 1С 8.3), srv-1c — имя сервера 1С, а DOMAIN\1c_service — сервисный аккаунт, от которого запущена служба. После регистрации SPN платформа сможет генерировать и проверять Kerberos-тикеты корректно.

Ситуация 4: Аутентификация через веб-сервер (HTTP/HTTPS)

Проанализируем конфигурацию, когда вместо толстого клиента или RDP, вы решили опубликовать базу на веб-сервере (IIS или Apache) и использовать тонкий клиент по протоколу HTTP. Для упрощения запуска тонкого клиента в таких сценариях можно использовать лаунчер 1С с проверкой доменной авторизации.

Настроек только внутри конфигуратора будет недостаточно. Если вы используете веб-сервер Microsoft IIS, вам потребуется выполнить дополнительные шаги:

  1. Через диспетчер ролей Windows Server убедитесь, что в компонентах веб-сервера установлена роль «Проверка подлинности Windows» (Windows Authentication).
  2. В диспетчере служб IIS (inetmgr) выберите опубликованную базу (приложение).
  3. Откройте раздел "Проверка подлинности".
  4. Отключите «Анонимная проверка подлинности» и включите «Проверка подлинности Windows».

Kerberos Delegation (Делегирование):
Если ваш веб-сервер IIS (например, SRV-WEB) и сервер 1С:Предприятия (SRV-1C) находятся на физически разных машинах, возникает проблема "двойного прыжка" (Double Hop). Токен пользователя доходит до веб-сервера, но веб-сервер не имеет права передать этот токен дальше на сервер 1С.

Для решения этой проблемы в оснастке Active Directory "Пользователи и компьютеры" найдите учетную запись компьютера веб-сервера, перейдите на вкладку "Делегирование" и выберите опцию «Доверять этому компьютеру делегирование к указанным службам» (указав службу сервера 1С). Только после этого тонкий клиент через IIS сможет авторизоваться без ввода пароля.

Влияние Контроля учетных записей (UAC) и кэширования

Рассмотрим еще два неочевидных нюанса, которые могут завести администратора в тупик.

Запуск от имени администратора: Если на клиентской машине включен UAC, и пользователь (или ярлык) запускает клиент 1С через правую кнопку мыши «Запуск от имени администратора», система генерирует совершенно другой токен безопасности (Elevated Token). В некоторых конфигурациях сетевой безопасности сервер 1С может отклонить такой токен, и аутентификация ОС не пройдет. Убедитесь, что клиентское приложение запускается в обычном пользовательском контексте.

Кэширование неудачных попыток: Платформа 1С и сама ОС Windows склонны кэшировать сеансы. Если вы тестировали настройки с неправильным именем пользователя, а затем всё исправили, платформа может все еще использовать старый токен в текущем сеансе. При тестировании настроек аутентификации ОС рекомендуется закрывать все клиенты 1С, завершать текущий RDP-сеанс (не просто отключаться, а делать Sign out), а на сервере 1С периодически перезапускать службу Агента сервера, чтобы гарантированно сбросить все накопленные кэши и соединения.

← На главную