Настройка Kerberos и AES шифрования для сквозной авторизации в 1С
Архитектура SSO и симптомы деградации авторизации
Сквозная авторизация ОС (SSO) в 1С:Предприятие позволяет пользователям заходить в базы без ввода пароля. Если инфраструктура настроена неверно, 1С откатывается (Fallback) на менее безопасный и медленный протокол NTLM, либо постоянно запрашивает учетные данные. Использование устаревшего шифрования RC4 в Kerberos приводит к ошибкам при усилении политик ИБ (например, после установки обновлений Microsoft, запрещающих RC4). Бизнес-риски: недовольство пользователей, уязвимость к атакам Pass-the-Hash и Kerberoasting.
Диагностика протокола в консоли
| Метод проверки | Признак Kerberos | Признак NTLM (Проблема) |
|---|---|---|
| Консоль кластера 1С (Сеансы) | В колонке 'Аутентификация ОС' имя вида DOMAIN\User | Пустое поле или постоянный запрос пароля. |
CMD: klist tickets на клиенте | Наличие билета TGS для службы usr1cv8 | Отсутствие билетов SPN сервера 1С. |
| Логи безопасности AD (Event ID) | 4769 (Запрос билета службы) с типом шифрования 0x12 (AES) | События NTLM аутентификации (Event 4624 Package: NTLM). |
Алгоритм настройки Kerberos SPN и AES
Сценарий 1: Регистрация Service Principal Name (SPN)
Для работы Kerberos служба кластера 1С (rphost), работающая под доменным аккаунтом (например, corp\srv1cv8), должна иметь зарегистрированный SPN. Выполните на контроллере домена:
Проверка текущих SPN аккаунта
setspn -L corp\srv1cv8
Регистрация SPN для FQDN и NetBIOS имени сервера 1С (1c-app.corp.local)
setspn -A 1C1V8C/1c-app.corp.local corp\srv1cv8
setspn -A 1C1V8C/1c-app corp\srv1cv8Сценарий 2: Принудительное включение AES-шифрования
Для предотвращения использования уязвимого RC4-HMAC, настройте учетную запись службы в Active Directory.
- Откройте
dsa.msc(Active Directory Users and Computers). - Найдите аккаунт службы 1С (
srv1cv8) -> Свойства -> Вкладка Account. - В секции Account options установите галочки: This account supports Kerberos AES 128 bit encryption и This account supports Kerberos AES 256 bit encryption.
- На вкладке Delegation выберите "Trust this user for delegation to any service (Kerberos only)".
Сценарий 3: Генерация Keytab (Для серверов 1С на Linux)
Если сервер 1С работает на Linux, ему требуется файл .keytab для проверки билетов.
Генерация keytab на контроллере домена Windows
ktpass -princ 1C1V8C/1c-linux.corp.local@CORP.LOCAL -mapuser srv1cv8 -pass "StrongPass!" -crypto AES256-SHA1 -ptype KRB5_NT_PRINCIPAL -out c:\1c.keytabТиповые ошибки администраторов
- Запуск службы 1С от имени Local System (SYSTEM): В этом случае SPN должен регистрироваться на объект учетной записи самого компьютера (
1c-app$), а не на доменного пользователя. Однако best practice — использовать выделенный доменный аккаунт. - Дубликаты SPN (Duplicate SPN): Если один и тот же SPN зарегистрирован на два разных аккаунта, Kerberos ломается глобально. Проверяйте дубли через
setspn -X.
Перевод инфраструктуры 1С на чистый Kerberos требует аудита сетевых потоков и настройки делегирования (Constrained Delegation). Инженеры ITSTM настроят защищенный SSO-доступ без простоев в работе бухгалтерии и складов.
Частые вопросы (FAQ)
Почему после настройки SPN сквозная авторизация всё равно не работает?
Возможно, клиент (ПК пользователя) обращается к серверу 1С по IP-адресу или через CNAME (алиас). Kerberos требует обращения строго по A-записи (FQDN), для которой зарегистрирован SPN. Проверьте строку подключения к базе в клиенте 1С.
Что такое 1C1V8C в команде setspn?
Это класс службы (Service Class), зашитый в платформу 1С:Предприятие. Клиент 1С при попытке авторизации всегда запрашивает у KDC (контроллера домена) билет именно для класса '1C1V8C'.
Нужно ли настраивать SPN для веб-сервера (IIS/Apache), если 1С опубликована через Web?
Да, если используется веб-клиент. В этом случае настраивается SPN для класса 'HTTP' (например, HTTP/1c-web.corp.local) на аккаунт пула приложений IIS (AppPool Identity), плюс настраивается Kerberos Constrained Delegation от веб-сервера к серверу 1С.
Как очистить кэш билетов на клиенте для проверки?
В командной строке (cmd) выполните команду 'klist purge'. Это удалит все закэшированные TGT и TGS билеты, заставив систему запросить их заново при следующем подключении к 1С.