Active Directory и SSO — Решение проблем¶
Аудитория: ТП 1-й линии (без доступа к БД)
Как пользоваться этим документом¶
Секции организованы по типам проблем. Для каждой: 1. Симптом — что описывает клиент 2. Что проверить — шаги диагностики 3. Решение — что сделать 4. Эскалация — когда передавать на 2-ю линию
1. Синхронизация с AD — ошибки и сбои¶
~50% обращений по теме. Самая частая проблема.
1.1 Автоматическая синхронизация с AD не работает¶
Симптом: «автоматическая синхронизация с AD не происходит», «ADSyncJob не работает».
Что проверить: - Настройки синхронизации — заполнены ли (Администрирование → Синхронизация) - Расписание — настроен ли интервал - Доступность AD-сервера — сетевая связность - Логи — текст ошибки ADSyncJob - Платформа — на PG ADSyncJob может не работать (известная проблема)
Эскалация: если настройки корректны, AD доступен, но синхронизация не идёт — передать на 2-ю линию.
1.2 Ошибки при настройке синхронизации AD¶
Симптом: «при настройке синхронизации AD возникают ошибки».
Что проверить: - Строка подключения — формат LDAP://domain:port - Учётная запись для подключения — достаточно ли прав - SSL/TLS — правильный ли порт (389 для LDAP, 636 для LDAPS) - Сертификат — доверенный ли (для LDAPS)
1.3 Учётные записи создаются без реквизитов (только SID)¶
Симптом: «при синхронизации с AD создаётся пользователь, но без реквизитов — только SID из AD».
Что проверить: - Маппинг атрибутов — заполнен ли (ФИО, email, должность и т.д.) - Расширенные настройки — настроен ли маппинг нужных AD-атрибутов на поля 1Ф - Логи — нет ли ошибок при чтении атрибутов
Эскалация: если маппинг настроен, но данные не заполняются — передать на 2-ю линию.
1.4 При выгрузке пользователя из AD — ошибка¶
Симптом: «при выгрузке (импорте) пользователя из AD — ошибка».
Что проверить: - Текст ошибки - Конкретный пользователь или все — если один, возможна проблема в его AD-атрибутах - Версия системы
2. Фильтры синхронизации AD¶
~20% обращений.
2.1 Фильтр пользователей/ОЕ не работает¶
Симптом: «не работает фильтр орг. единиц синхронизации», «не создаются пользователи при наличии фильтра».
Что проверить: - Синтаксис LDAP-фильтра — корректен ли - Результат фильтра — возвращает ли AD объекты при таком фильтре (проверить через ldapsearch / AD Explorer) - Формат — экранированы ли спецсимволы
2.2 Фильтр AD > 100 символов — ошибка¶
Симптом: «при создании фильтра на >100 символов в "AD фильтр пользователей" или "AD фильтр групп" — ошибка».
Решение: известное ограничение — поле в БД ограничено по длине. [2L]
Эскалация: если нужен длинный фильтр — передать на 2-ю линию для увеличения поля.
3. Расширенные настройки AD¶
~15% обращений. Повторяющаяся проблема.
3.1 Не добавляется новый AD-ключ в расширенные настройки¶
Симптом: «не работает добавление нового AD-ключа в расширенные настройки пользователя при настройке синка с AD».
Что проверить: - Версия системы — баг воспроизводится в нескольких версиях - Интерфейс — AdminSPA или старая админка
Эскалация: известный повторяющийся баг — передать на 2-ю линию с указанием версии.
3.2 Нет возможности забрать EmployeeID / EmployeeNumber из AD¶
Симптом: «нужно получить табельный номер из AD, но атрибуты EmployeeID / EmployeeNumber недоступны».
Решение: стандартный маппинг не включает эти атрибуты. Нужно добавить через расширенные настройки AD-синхронизации (если работает, см. 3.1) или через кастомный маппинг. [2L]
4. SSO / единый вход¶
4.1 Настройка SSO для Web и Desktop¶
Симптом: «как настроить SSO для веб-версии и десктоп-клиента?»
Решение: SSO настраивается через провайдер авторизации (OAuth, SAML, Kerberos). Для веба — стандартный redirect. Для десктоп-клиента — в зависимости от протокола (Kerberos через спецнастройку, SAML через встроенный браузер). Администрирование → Провайдеры авторизации.
4.2 2FA + SSO в доменной среде¶
Симптом: «хотим 2FA для внешнего доступа, но SSO по Kerberos для сотрудников в домене».
Решение: возможны комбинированные сценарии — Kerberos для внутренней сети, 2FA для внешней. Настройка через провайдеры + условия. [2L]
4.3 Некорректное отображение провайдера AD в AdminSPA¶
Симптом: «провайдер Active Directory отображается некорректно в AdminSPA».
Что проверить: - Версия системы - Наличие нескольких провайдеров
4.4 Kerberos на Linux (Kestrel/Docker) — диагностика¶
Контекст: с v2.268.302 1Форма поддерживает нативный Kerberos-handshake без IIS — через ASP.NET Core Negotiate в Kestrel. Применяется при разворачивании в Docker/Linux в доменной среде. Полная настройка — admin.md § Kerberos на Linux.
Симптом 1: «SSO не работает на Linux-стенде, пользователь получает popup ввода пароля или 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: true — пользователи перестали входить, в логе NTLM authentication rejected».
Что произошло: WinClaimsTransformation отклонил вход, потому что фактический протокол — NTLM, а не Kerberos. Это ожидаемое поведение настройки.
Что проверить через 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-handshake не получается ни у одного клиента, причина в инфраструктуре (см. пункты 2–4 выше), а не в одном пользователе. До устранения — Auth:RequireKerberos: false, чтобы NTLM-вход работал.
Симптом 3: «Endpoint статуса возвращает negotiateSchemeRegistered = false, хотя winAuthHost = "Kestrel"».
Приложение стартовало без Windows-auth — auth.AddNegotiate() не вызывался. Причина обычно в appsettings.{Environment}.json или env-override, который перекрывает Auth:WinAuthHost. Перезапустить приложение после исправления, повторить статус-чек.
Эскалация: при инфраструктурных проблемах (keytab, SPN, KDC) — на администратора Linux/AD. Платформа handshake не делает, только использует результат ASP.NET Core Negotiate. [2L]
5. LDAP / LDAPS¶
5.1 Переход с LDAP на LDAPS¶
Симптом: «нужно перейти с LDAP (389) на LDAPS (636)».
Решение: 1. Убедиться, что сертификат LDAP-сервера доверенный (или добавить в trust store) 2. Изменить строку подключения: порт 389 → 636, протокол LDAP → LDAPS 3. Проверить синхронизацию после изменения
Эскалация: если после смены порта/протокола синхронизация не работает — проблема с сертификатом. [2L]
6. Пользователи из AD — управление¶
6.1 Нельзя редактировать пользователей, импортированных из AD¶
Симптом: «не удаётся редактировать информацию о пользователе, синхронизированном из AD».
Решение: ожидаемое поведение — поля, маппированные из AD, блокируются для ручного редактирования. Изменения нужно делать в AD и пересинхронизировать. Для полей, не маппированных из AD, редактирование доступно.
6.2 Где в AdminSPA видны юниты из AD¶
Симптом: «где в новой админке видны орг. единицы, засинкованные из AD?»
Решение: Администрирование → Синхронизация → вкладка «Организационные единицы». В AdminSPA — раздел Пользователи → фильтр по источнику.
6.3 Смена пароля при доменной авторизации¶
Симптом: «как сменить пароль пользователя, если настроена доменная авторизация?»
Решение: при доменной авторизации пароль меняется в Active Directory, не в 1Ф. В 1Ф пароль для таких пользователей не хранится.
Чеклист для первичной диагностики¶
- Тип проблемы — синхронизация, фильтры, расширенные настройки, SSO, LDAP, управление пользователями
- Тип подключения — AD (LDAP), AD (LDAPS), SAML, OAuth, Kerberos
- Платформа БД — MS SQL или PostgreSQL (PG имеет ограничения ADSyncJob)
- Версия системы
- Интерфейс — AdminSPA или старая админка
- Текст ошибки из лога
- Количество пользователей / ОЕ в AD — влияет на производительность синка
Когда эскалировать¶
- ADSyncJob не работает на PG (известная проблема)
- Не добавляется AD-ключ в расширенные настройки (повторяющийся баг)
- Фильтр >100 символов не сохраняется (ограничение поля)
- Пользователи создаются без реквизитов при корректном маппинге (баг)
- Проблемы с сертификатами LDAPS
- Настройка комбинированного SSO + 2FA