Active Directory и SSO — Решение проблем¶
Документ описывает типовые проблемы Active Directory и SSO. Внутри собраны разделы по синхронизации с AD, фильтрам, расширенным настройкам AD, SSO, LDAP/LDAPS и управлению пользователями из AD. Для каждой проблемы указаны симптом, что проверить, решение и эскалация в поддержку 1Ф.
Как пользоваться этим документом
Секции организованы по типам проблем. Для каждой:
- Симптом — что описывает клиент
- Что проверить — шаги диагностики
- Решение — что сделать
- Эскалация — когда обращаться в поддержку 1Ф
1. Синхронизация с AD — ошибки и сбои¶
Самая частая группа проблем по теме AD.
1.1 Автоматическая синхронизация с AD не работает
Симптом: «автоматическая синхронизация с AD не происходит», «ADSyncJob не работает».
Что проверить:
- Настройки синхронизации — заполнены ли (Администрирование → Синхронизация)
- Расписание — настроен ли интервал
- Доступность AD-сервера — сетевая связность
- Логи — текст ошибки ADSyncJob
- Платформа — на PG ADSyncJob может не работать (известная проблема)
Эскалация: если настройки корректны, AD доступен, но синхронизация не идёт — обратиться в поддержку 1Ф.
1.2 Ошибки при настройке синхронизации AD
Симптом: «при настройке синхронизации AD возникают ошибки».
Что проверить:
- Строка подключения — формат LDAP://domain:port
- Учётная запись для подключения — достаточно ли прав
- SSL/TLS — правильный ли порт (389 для LDAP, 636 для LDAPS)
- Сертификат — доверенный ли (для LDAPS)
1.3 Учётные записи создаются без реквизитов (только SID)
Симптом: «при синхронизации с AD создаётся пользователь, но без реквизитов — только SID из AD».
Что проверить:
- Маппинг атрибутов — заполнен ли (ФИО, email, должность и т.д.)
- Расширенные настройки — настроен ли маппинг нужных AD-атрибутов на поля 1Ф
- Логи — нет ли ошибок при чтении атрибутов
Эскалация: если маппинг настроен, но данные не заполняются — обратиться в поддержку 1Ф.
1.4 При выгрузке пользователя из AD — ошибка
Симптом: «при выгрузке (импорте) пользователя из AD — ошибка».
Что проверить:
- Текст ошибки
- Конкретный пользователь или все — если один, возможна проблема в его AD-атрибутах
- Версия системы
2. Фильтры синхронизации AD¶
Частая проблема при настройке фильтров AD.
2.1 Фильтр пользователей/ОЕ не работает
Симптом: «не работает фильтр орг. единиц синхронизации», «не создаются пользователи при наличии фильтра».
Что проверить:
- Синтаксис LDAP-фильтра — корректен ли
- Результат фильтра — возвращает ли AD объекты при таком фильтре (проверить через ldapsearch / AD Explorer)
- Формат — экранированы ли спецсимволы
2.2 Фильтр AD > 100 символов — ошибка
Симптом: «при создании фильтра на >100 символов в "AD фильтр пользователей" или "AD фильтр групп" — ошибка».
Решение: известное ограничение — поле в БД ограничено по длине.
Эскалация: если нужен длинный фильтр — обратиться в поддержку 1Ф для увеличения поля.
3. Расширенные настройки AD¶
Повторяющаяся проблема.
3.1 Не добавляется новый AD-ключ в расширенные настройки
Симптом: «не работает добавление нового AD-ключа в расширенные настройки пользователя при настройке синка с AD».
Что проверить:
- Версия системы — баг воспроизводится в нескольких версиях
- Интерфейс — AdminSPA или старая админка
Эскалация: известный повторяющийся баг — обратиться в поддержку 1Ф с указанием версии.
3.2 Нет возможности забрать EmployeeID / EmployeeNumber из AD
Симптом: «нужно получить табельный номер из AD, но атрибуты EmployeeID / EmployeeNumber недоступны».
Решение: стандартный маппинг не включает эти атрибуты. Нужно добавить через расширенные настройки AD-синхронизации (если работает, см. 3.1) или через пользовательскый маппинг.
4–6. SSO, LDAP/LDAPS и пользователи из AD¶
4.1 Настройка SSO для Web и Desktop
Симптом: «как настроить SSO для веб-версии и десктоп-клиента?»
Решение: SSO настраивается через провайдер авторизации (OAuth, SAML, Kerberos). Для веба — стандартный redirect. Для десктоп-клиента — в зависимости от протокола (Kerberos через спецнастройку, SAML через встроенный браузер). Администрирование → Провайдеры авторизации.
4.2 2FA + SSO в доменной среде
Симптом: «хотим 2FA для внешнего доступа, но SSO по Kerberos для сотрудников в домене».
Решение: возможны комбинированные сценарии — Kerberos для внутренней сети, 2FA для внешней. Настройка через провайдеры + условия.
4.3 Некорректное отображение провайдера AD в AdminSPA
Симптом: «провайдер Active Directory отображается некорректно в AdminSPA».
Что проверить:
- Версия системы
- Наличие нескольких провайдеров
4.4 Kerberos на Linux (Kestrel/Docker) — диагностика¶
Контекст: с v2.268.302 1Форма поддерживает нативную аутентификацию Kerberos без IIS — через ASP.NET Core Negotiate в Kestrel. Применяется при разворачивании в Docker/Linux в доменной среде. Полная настройка — admin.md § Kerberos на Linux.
Симптом 1: «SSO не работает на Linux-стенде, пользователь получает всплывающее окно ввода пароля или 401».
Что проверить:
- Статус приложения —
GET /api/admin/auth/kerberos/status(требует прав администратора). Должно бытьwinAuthHost = "Kestrel"иnegotiateSchemeRegistered = true. ЕслиwinAuthHost = "None"— Windows-auth выключена вappsettings.json, нужно проставитьAuth:WinAuthHost = "Kestrel". - Инфраструктура контейнера — установлена библиотека
libgssapi-krb5-2, существует keytab с SPN видаHTTP/<hostname>@REALM, переменнаяKRB5_KTNAMEуказывает на keytab. - DNS и SPN — клиент резолвит сервер по FQDN, для которого создан SPN; PTR-запись соответствует прямой записи. Без этого Windows-клиент молча понижает SPNEGO до NTLM.
- Браузер клиента — адрес сервера в Local Intranet / Trusted Sites (для IE/Edge), Negotiate включён.
Симптом 2: RequireKerberos отклоняет NTLM authentication rejected¶
Что произошло: вход отклонён, потому что фактический протокол — NTLM, а не Kerberos. Это ожидаемое поведение настройки RequireKerberos.
Что проверить через SQL — какой протокол реально использовался при последних попытках:
select top 20
l.LoginDate, u.Nick, l.AuthProtocol, l.UserComputerName, l.IP
from LoginsLog l
left join Users u on u.UserID = l.UserID
where l.LoginDate > dateadd(hour, -1, getdate())
order by l.LoginDate desc;
Если в AuthProtocol массово NTLM — согласование Kerberos не проходит ни у одного клиента, причина в инфраструктуре (см. пункты 2–4 выше), а не в одном пользователе. До устранения — Auth:RequireKerberos: false, чтобы NTLM-вход работал.
Симптом 3: «Endpoint статуса возвращает negotiateSchemeRegistered = false, хотя winAuthHost = "Kestrel"».
Приложение стартовало без Windows-аутентификации. Причина обычно в appsettings.{Environment}.json или в переопределении через переменную окружения, которое перекрывает Auth:WinAuthHost. Перезапустить приложение после исправления, повторить проверку статуса.
Эскалация: при инфраструктурных проблемах (keytab, SPN, KDC) — на администратора Linux/AD. Платформа сама согласование Kerberos не выполняет, только использует результат ASP.NET Core Negotiate.
5. LDAP / LDAPS
5.1 Переход с LDAP на LDAPS
Симптом: «нужно перейти с LDAP (389) на LDAPS (636)».
Решение:
- Убедиться, что сертификат LDAP-сервера доверенный (или добавить в trust store)
- Изменить строку подключения: порт 389 → 636, протокол LDAP → LDAPS
- Проверить синхронизацию после изменения
Эскалация: если после смены порта/протокола синхронизация не работает — проблема с сертификатом.
6. Пользователи из AD — управление
6.1 Нельзя редактировать пользователей, импортированных из AD
Симптом: «не удаётся редактировать информацию о пользователе, синхронизированном из AD».
Решение: ожидаемое поведение — поля, маппированные из AD, блокируются для ручного редактирования. Изменения нужно делать в AD и пересинхронизировать. Для полей, не маппированных из AD, редактирование доступно.
6.2 Где в AdminSPA видны юниты из AD
Симптом: «где в новой админке видны орг. единицы, засинкованные из AD?»
Решение: Администрирование → Синхронизация → вкладка «Организационные единицы». В AdminSPA — раздел Пользователи → фильтр по источнику.
6.3 Смена пароля при доменной авторизации
Симптом: «как сменить пароль пользователя, если настроена доменная авторизация?»
Решение: при доменной авторизации пароль меняется в Active Directory, не в 1Ф. В 1Ф пароль для таких пользователей не хранится.
Чеклист для первичной диагностики AD/SSO и обращения в поддержку 1Ф¶
При любом обращении по AD/SSO соберите базовую информацию:
- Тип проблемы — синхронизация, фильтры, расширенные настройки, SSO, LDAP, управление пользователями
- Тип подключения — AD (LDAP), AD (LDAPS), SAML, OAuth, Kerberos
- Платформа БД — MS SQL или PostgreSQL (PG имеет ограничения ADSyncJob)
- Версия системы
- Интерфейс — AdminSPA или старая админка
- Текст ошибки из лога
- Количество пользователей / ОЕ в AD — влияет на производительность синка
Когда обращаться в поддержку 1Ф
Передайте обращение в поддержку 1Ф, если столкнулись с одним из следующих случаев:
- ADSyncJob не работает на PG (известная проблема)
- Не добавляется AD-ключ в расширенные настройки (повторяющийся баг)
- Фильтр >100 символов не сохраняется (ограничение поля)
- Пользователи создаются без реквизитов при корректном маппинге (баг)
- Проблемы с сертификатами LDAPS
- Настройка комбинированного SSO + 2FA