Отказ аутентификации средствами операционной системы в клиент-серверном варианте работы 1С — ситуация крайне неприятная, особенно когда «вчера всё работало, а сегодня перестало». В таких случаях пользователи внезапно видят окно ввода логина и пароля 1С вместо привычного автоматического входа (для упрощения доступа можно использовать лаунчер для 1C с проверкой доменной авторизации). Проанализируем причины этой проблемы и разберем по шагам, как восстановить работоспособность системы.
Первым делом проанализируем, под какой учетной записью запущена служба ragent (Агент сервера 1С:Предприятие). Для успешной Windows-аутентификации сервер 1С (состояние которого отслеживает монитор кластеров серверов) должен уметь взаимодействовать с контроллером домена для проверки подлинности пользователей.
Выясним, не изменилось ли состояние учетной записи:
Рассмотрим ситуацию, когда настройки пользователя в информационной базе противоречат друг другу. Бывают случаи, когда в справочнике Пользователи в режиме «Предприятие» галочка аутентификации ОС стоит, а в Конфигураторе — нет (проверить надежность учетных записей можно через инструмент для анализа паролей).
Проанализируем настройки:
DOMAIN\UserName.Выясним интересную особенность, подмеченную практикующими администраторами: иногда включение режима отладки (параметр -debug или -http в строке запуска службы) может блокировать корректную передачу токенов аутентификации. Проверим эту гипотезу: попробуем временно отключить отладку и перезапустить службу ragent. Если аутентификация «взлетела», значит, проблема в сетевых ожиданиях или конфликте портов отладчика.
Теперь перейдем к более глубоким настройкам сетевой безопасности. Windows-аутентификация в 1С чаще всего опирается на протокол Kerberos. Если Kerberos не может построить цепочку доверия, система откатывается к NTLM, который может быть запрещен политиками безопасности.
Проанализируем регистрацию имен сервисов (SPN). Для корректной работы Kerberos необходимо, чтобы для учетной записи, под которой работает сервер 1С, были прописаны идентификаторы служб. Разберем, как это проверить с помощью командной строки:
setspn -X
domain_user, зарегистрируем SPN вручную:
setspn -A STS/ServerName:1540 domain_user
setspn -A STS/ServerName.domain.com:1540 domain_user
Если сервер 1С и SQL-сервер разнесены на разные машины, мы сталкиваемся с проблемой передачи полномочий пользователя от одного сервера другому. Рассмотрим, как это работает: пользователь авторизуется на сервере 1С, и сервер 1С должен от имени этого пользователя «постучаться» в SQL Server.
Для решения этой задачи необходимо настроить Делегирование в Active Directory:
MSSQLSvc на конкретном SQL-сервере.Если делегирование не настроено, SQL Server увидит попытку входа как Anonymous Logon и отклонит её.
Иногда проблема кроется не в 1С, а в самом SQL-сервере. Проанализируем настройки в SQL Server Configuration Manager:
Посмотрим на состояние подключений с помощью SQL-запроса, чтобы понять, какой протокол используется в данный момент:
SELECT auth_scheme
FROM sys.dm_exec_connections
WHERE session_id = @@SPID;
Если результат NTLM, а вы настраивали KERBEROS, значит, настройки SPN или делегирования выполнены некорректно.
Не забудем про «классику» доменных сетей. Протокол Kerberos крайне чувствителен к расхождению времени между клиентом, сервером приложений и контроллером домена. Допустимая разница — не более 5 минут.
Проанализируем логи событий (Event Viewer) на сервере 1С и SQL. Ищем ошибки в разделе System от источника LsaSrv или Kerberos. Если видим ошибки о разности времени, выполним принудительную синхронизацию:
w32tm /resync
Если проблема появилась после планового обновления ОС, проанализируем настройки шифрования. В современных версиях Windows (начиная с обновлений конца 2022 года) по умолчанию может требоваться использование шифрования AES128/AES256 для Kerberos.
Проверим свойства учетной записи службы 1С в Active Directory: на вкладке Account убедимся, что установлены галочки:
После установки этих флагов может потребоваться сброс пароля учетной записи или перезагрузка сервера для обновления билетов Kerberos.
Мы рассмотрели основные причины, по которым может перестать работать аутентификация средствами ОС в 1С. Как показывает практика, чаще всего проблема скрывается в истечении пароля сервисной учетной записи, отсутствии прав на делегирование или неправильно настроенных SPN. Последовательно проверяя каждый из этих этапов, вы обязательно найдете «слабое звено» в вашей инфраструктуре.