Перейти к содержанию

Active Directory и SSO — Решение проблем

Документ описывает типовые проблемы Active Directory и SSO. Внутри собраны разделы по синхронизации с AD, фильтрам, расширенным настройкам AD, SSO, LDAP/LDAPS и управлению пользователями из AD. Для каждой проблемы указаны симптом, что проверить, решение и эскалация в поддержку 1Ф.

Как пользоваться этим документом

Секции организованы по типам проблем. Для каждой:

  1. Симптом — что описывает клиент
  2. Что проверить — шаги диагностики
  3. Решение — что сделать
  4. Эскалация — когда обращаться в поддержку 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».

Что проверить:

  1. Статус приложенияGET /api/admin/auth/kerberos/status (требует прав администратора). Должно быть winAuthHost = "Kestrel" и negotiateSchemeRegistered = true. Если winAuthHost = "None" — Windows-auth выключена в appsettings.json, нужно проставить Auth:WinAuthHost = "Kestrel".
  2. Инфраструктура контейнера — установлена библиотека libgssapi-krb5-2, существует keytab с SPN вида HTTP/<hostname>@REALM, переменная KRB5_KTNAME указывает на keytab.
  3. DNS и SPN — клиент резолвит сервер по FQDN, для которого создан SPN; PTR-запись соответствует прямой записи. Без этого Windows-клиент молча понижает SPNEGO до NTLM.
  4. Браузер клиента — адрес сервера в 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)».

Решение:

  1. Убедиться, что сертификат LDAP-сервера доверенный (или добавить в trust store)
  2. Изменить строку подключения: порт 389 → 636, протокол LDAP → LDAPS
  3. Проверить синхронизацию после изменения

Эскалация: если после смены порта/протокола синхронизация не работает — проблема с сертификатом.


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 соберите базовую информацию:

  1. Тип проблемы — синхронизация, фильтры, расширенные настройки, SSO, LDAP, управление пользователями
  2. Тип подключения — AD (LDAP), AD (LDAPS), SAML, OAuth, Kerberos
  3. Платформа БД — MS SQL или PostgreSQL (PG имеет ограничения ADSyncJob)
  4. Версия системы
  5. Интерфейс — AdminSPA или старая админка
  6. Текст ошибки из лога
  7. Количество пользователей / ОЕ в AD — влияет на производительность синка

Когда обращаться в поддержку 1Ф

Передайте обращение в поддержку 1Ф, если столкнулись с одним из следующих случаев:

  • ADSyncJob не работает на PG (известная проблема)
  • Не добавляется AD-ключ в расширенные настройки (повторяющийся баг)
  • Фильтр >100 символов не сохраняется (ограничение поля)
  • Пользователи создаются без реквизитов при корректном маппинге (баг)
  • Проблемы с сертификатами LDAPS
  • Настройка комбинированного SSO + 2FA