Справочник системных ошибок и решений

Windows Server, Active Directory, 1С:Предприятие, СУБД, Linux, Cisco, MikroTik, Asterisk.

⚠️ Важная информация Все материалы, инструкции, команды и скрипты на сайте предоставлены исключительно в ознакомительных целях. Их применение может повлиять на работу операционной системы, программного обеспечения, баз данных, сетевого оборудования и других компонентов инфраструктуры. Перед выполнением действий создайте резервную копию и по возможности протестируйте изменения в безопасной среде. Пользователь самостоятельно оценивает риски и несет ответственность за результат. При отсутствии необходимых знаний обратитесь к квалифицированному ИТ-специалисту.

1С:Предприятие и СУБД

SSO (Kerberos) на сервере 1С под Linux: Сквозная авторизация Active Directory

Обновлено: 10.09.2026 · Официальная документация ↗

Архитектура SSO для 1С на Linux

Сквозная аутентификация (SSO / Single Sign-On) позволяет пользователям домена Windows (Active Directory) подключаться к информационным базам 1С без ввода логина и пароля. Если сервер 1С (rphost) работает под управлением Linux, аутентификация NTLM недоступна. Используется протокол Kerberos (GSS-API). Архитектурно клиент (mstsc/Толстый клиент) запрашивает Ticket Granting Ticket (TGT) у контроллера домена (KDC), а затем Service Ticket (ST) для доступа к службе 1С. Бизнес-риски отсутствия SSO: парольная усталость пользователей, высокие затраты HelpDesk на сброс паролей в 1С, низкий уровень ИБ.

Ключевые компоненты Kerberos для 1С

КомпонентРасположениеНазначение
SPN (Service Principal Name)Active Directory (Атрибуты учетной записи)Идентификатор службы. Формат для 1С: USR1CV8/server.domain.local.
krb5.confLinux Server (/etc/krb5.conf)Конфигурационный файл клиента Kerberos. Указывает Realm и адреса KDC (Контроллеров домена).
.keytab файлLinux Server (/opt/1cv8/x86_64/...)Криптографический ключ, позволяющий серверу 1С расшифровывать билеты (Tickets) от AD без пароля в явном виде.

Пошаговая настройка Kerberos на сервере 1С (Linux)

Сценарий 1: Генерация Keytab на контроллере домена (Windows Server)

Создайте сервисного пользователя в AD (например, svc_1c_krb). Включите для него опцию "Do not require Kerberos preauthentication" и отключите срок действия пароля. Откройте CMD от имени Администратора:

-- Регистрация SPN для сервера 1С
setspn -A USR1CV8/1c-linux.corp.local corp\svc_1c_krb
setspn -A USR1CV8/1c-linux corp\svc_1c_krb

-- Генерация файла keytab (укажите пароль учетки svc_1c_krb)
ktpass -princ USR1CV8/1c-linux.corp.local@CORP.LOCAL -mapuser svc_1c_krb -pass MySecretPass123! -crypto All -ptype KRB5_NT_PRINCIPAL -out c:\1c_server.keytab

Сценарий 2: Настройка Linux сервера (CentOS/Ubuntu)

Скопируйте 1c_server.keytab на Linux сервер (например, в /opt/1cv8/x86_64/conf/usr1cv8.keytab).

# Настройка прав на файл keytab (владелец usr1cv8)
chown usr1cv8:grp1cv8 /opt/1cv8/x86_64/conf/usr1cv8.keytab
chmod 600 /opt/1cv8/x86_64/conf/usr1cv8.keytab

# Редактирование /etc/krb5.conf
[libdefaults]
    default_realm = CORP.LOCAL
    dns_lookup_realm = false
    dns_lookup_kdc = true
    default_keytab_name = FILE:/opt/1cv8/x86_64/conf/usr1cv8.keytab

Сценарий 3: Настройка пользователей в 1С

  1. Откройте Конфигуратор -> Администрирование -> Пользователи.
  2. Откройте карточку пользователя, перейдите на вкладку "Аутентификация".
  3. Включите галочку "Аутентификация операционной системы".
  4. В поле "Пользователь" выберите пользователя из домена (формат: \CORP\ivanov).

Типовые ошибки администраторов

  • Ошибки DNS и времени: Kerberos критически зависим от точного времени. Разница во времени между KDC (AD) и сервером Linux более 5 минут приведет к ошибке 'Clock skew too great'. Обязательно настройте службу chrony (NTP). Также Linux должен корректно разрешать имя AD по DNS.
  • Несовпадение регистра в krb5.conf: Имя REALM (домена) в конфигурационных файлах Kerberos ВСЕГДА должно писаться ЗАГЛАВНЫМИ БУКВАМИ (например, CORP.LOCAL). Использование строчных букв приведет к сбою поиска билета.
💡 Практика специалистов: Практика ITSTM: При миграции кластера 1С с Windows на Linux мы часто сталкиваемся с тем, что SPN остаются привязаны к старой учетной записи компьютера (Computer Account). Перед регистрацией нового SPN для сервисной учетки (ktpass), обязательно найдите и удалите старые SPN командой 'setspn -D USR1CV8/old_server_name domain\old_computer$'.

Частые вопросы (FAQ)

Как проверить, что Linux сервер может получить билет Kerberos?

Используйте команду kinit. Выполните: kinit svc_1c_krb@CORP.LOCAL. Введите пароль. Затем выполните klist. Если вы видите кэшированный билет krbtgt, значит связь с AD и настройки DNS/времени корректны.

Как проверить валидность файла keytab на Linux?

Выполните команду: klist -k -t /opt/1cv8/x86_64/conf/usr1cv8.keytab. Она выведет список principal-ов, сохраненных в файле. Там должен быть ваш USR1CV8/1c-linux.corp.local@CORP.LOCAL.

Почему SSO не работает при подключении по IP-адресу?

Kerberos работает только по FQDN (полным доменным именам). При обращении по IP-адресу клиент не может запросить правильный SPN у контроллера домена, и авторизация откатывается (fallback) до NTLM или ручного ввода.

Нужно ли настраивать SSO для веб-клиента 1С на Linux?

Да, но там механизм немного другой. Помимо настройки сервера 1С, необходимо настроить GSSAPI в веб-сервере (Apache HTTPD + модуль mod_auth_gssapi или Nginx + nginx-auth-spnego-module).

Полезные материалы
Рекомендуем