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

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

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

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

Настройка сквозной аутентификации SSO (Kerberos) в тонком клиенте 1С

Обновлено: 26.08.2026 · Официальная документация ↗
  • При запуске тонкого клиента запрашивается логин и пароль вместо автоматического входа под доменной учетной записью.
  • Ошибка Аутентификация по протоколу Kerberos не удалась при старте сеанса.
  • Ошибка KDC has no support for encryption type в логах безопасности.
  • Невозможность настроить SSO для серверов 1С под управлением Linux в домене Windows AD.

1. Архитектура Single Sign-On (SSO) в 1С

Для реализации беспарольного входа по протоколу Kerberos сервер 1С должен иметь зарегистрированное имя сервиса (SPN) в Active Directory / FreeIPA и валидный файл секретных ключей (keytab).

2. Регистрация SPN и создание Keytab в Active Directory

На контроллере домена выполните команду от имени администратора домена:

# 1. Создание сервисной учетной записи: usr1c_srv
# 2. Привязка SPN и экспорт keytab-файла
ktpass /princ 1CSRV/srv-1c.corp.local@CORP.LOCAL \
  /mapuser usr1c_srv@CORP.LOCAL \
  /crypto AES256-SHA1 \
  /ptype KRB5_NT_PRINCIPAL \
  /pass "ComplexPassword123" \
  /out C:\temp\1c-server.keytab

3. Настройка Kerberos на Linux-сервере 1С

Скопируйте 1c-server.keytab в /opt/1cv8/conf/1c-server.keytab и настройте конфигурационный файл /etc/krb5.conf:

[libdefaults]
    default_realm = CORP.LOCAL
    dns_lookup_realm = false
    dns_lookup_kdc = true
    default_tkt_enctypes = aes256-cts-hmac-sha1-96
    default_tgs_enctypes = aes256-cts-hmac-sha1-96

[realms]
    CORP.LOCAL = {
        kdc = dc1.corp.local
        admin_server = dc1.corp.local
    }

Выставите права доступа на keytab:

sudo chown usr1cv8:grp1cv8 /opt/1cv8/conf/1c-server.keytab
sudo chmod 600 /opt/1cv8/conf/1c-server.keytab

4. Конфигурация файла /opt/1cv8/conf/container.cfg

Укажите серверу 1С путь к keytab файлу:

<config>
    <keytab-file>/opt/1cv8/conf/1c-server.keytab</keytab-file>
</config>

5. Настройка пользователя в конфигураторе 1С

  1. Откройте информационную базу в Конфигураторе -> Администрирование -> Пользователи.
  2. В свойствах пользователя выставите флаг Аутентификация операционной системы.
  3. Укажите имя в формате домена: CORP\ivanov или ivanov@CORP.LOCAL.
💡 Практика специалистов: Синхронизация времени между сервером 1С, контроллером домена (DC) и клиентом критически важна. Если расхождение часов превышает 5 минут (стандартное окно тикета Kerberos), сквозная аутентификация гарантированно откажет.

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

Что такое SPN и почему важен правильный регистр?

SPN (Service Principal Name) — уникальный идентификатор службы в домене. Для 1С формат строго фиксирован: 1CSRV/<FQDN_сервера>@REALM. Несовпадение FQDN приведет к отказу в выдаче тикета Kerberos.

Работает ли SSO Kerberos через веб-клиент в браузере?

Да, но требует дополнительной настройки модуля SPNEGO / mod_auth_gssapi на веб-сервере Apache или Windows Authentication в IIS.

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

Используйте утилиту klist: klist -k -t /opt/1cv8/conf/1c-server.keytab, а затем проверьте получение тикета: kinit -k -t /opt/1cv8/conf/1c-server.keytab 1CSRV/srv-1c.corp.local@CORP.LOCAL.

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

Протокол Kerberos фундаментально привязан к полным доменным именам (FQDN). При подключении по IP протокол Kerberos отклоняется и клиент пытается перейти на NTLM, который не всегда поддерживается Linux сервером.

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