Skip to content

Диагностика и типовые ошибки

В статье собраны типовые ошибки при интеграции Webim с Active Directory и рекомендации по диагностике.

  • проблемы Kerberos и SSO

  • ошибки, связанные с keytab и SPN

  • проблемы подключения к LDAP и поиска пользователей

  • ошибки, связанные с режимами авторизации

  • ошибки валидации операторов и данных из Active Directory

  • проблемы ручной и периодической синхронизации

Где смотреть

Логи Webim

Для диагностики обычно достаточно логов:

  • Admin Backend (SSO и синхронизация операторов)

  • системных логов ОС (время/NTP, сеть, TLS)

  • при необходимости — логов инфраструктуры (Kafka, контроллер домена)

Docker / Docker Compose

  • Логи контейнера Admin Backend:

    docker logs <admin_backend_container> --tail=200
    docker logs <admin_backend_container> -f
    
  • В docker compose:

    docker compose logs -f --tail=200 <service_name>
    

Установка на сервер

В установках Webim часто используются логи в каталоге /var/log/pro/ (например, /var/log/pro/tornado-*.log):

tail -n 200 /var/log/pro/<имя_лога>.log
tail -f /var/log/pro/<имя_лога>.log

История действий

История действий (action log) фиксирует ключевые события и изменения в аккаунте (в том числе административные действия и ошибки операций). См. статью История действий (action log).

Логи домена и ОС

Дополнительно используются:

  • журнал безопасности/системный журнал на контроллере домена (Kerberos, SPN, учетные записи)

  • системные логи на сервере Webim (NTP, сеть, TLS/сертификаты)

SSO и Kerberos

Важно

Настройка доменных политик и браузеров (зоны безопасности, разрешения Kerberos/Negotiate, ограничения NTLM) зависит от инфраструктуры компании и находится вне рамок документации Webim. Со стороны Webim задача диагностики — определить, что именно приходит на сервер и какая ошибка фиксируется в логах.

Браузер просит логин и пароль

Симптомы

  • автоматическая аутентификация не происходит

  • появляется диалог ввода логина/пароля

  • в логах нет признаков успешной обработки Kerberos-билета

Причины

  • браузер не настроен на Integrated Windows Authentication (Kerberos/Negotiate)

  • клиент отправляет не Kerberos (например, NTLM)

Как проверить

  1. Проверьте логи Admin Backend на ошибки Kerberos/GSSAPI.

  2. Если в параметре kerberos_ticket видно значение, похожее на NTLM (часто начинается с TlRMTVNT...), значит, Kerberos не используется.

Как решить

  1. Добавьте домен Webim в список доверенных для Kerberos/Negotiate (whitelist/Trusted sites — в зависимости от браузера и политики компании).

  2. Убедитесь, что доступ к Webim выполняется по FQDN, для которого настроен SPN.

GSS error

Симптомы

В логах Webim встречаются сообщения вида:

  • GSS error: GSSError(('An unsupported mechanism was requested', ...))

Причины

  • клиент отправляет не Kerberos (например, NTLM)

  • Kerberos запрещён политиками домена/зоны

Пример логов

[W 250826 14:54:05 +0300 access_log:35] 401 "GET /api/auth/v1/w/sso-signin HTTP/1.0" (X-Account-Name: accountname) (X-Real-Ip: 192.168.110.151) (Remote: 172.195.0.100) (Time: 0.010437)
[E 250826 14:54:50 +0300 service:78] GSS error: GSSError(('An unsupported mechanism was requested', 65536), ('Unknown error', 0))
[E 250826 14:54:50 +0300 access_log:35] 500 "GET /internal/admin-backend/sso/get-user-entry?kerberos_ticket=TlRMTVNTUAABAAAAl4II4gAAAAAAAAAAAAAAAAAAAAAKAGNFAAAADw%3D%3D HTTP/1.0" (X-Account-Name: accountname) (X-Real-Ip: 172.195.0.7) (Remote: 172.195.0.100) (Time: 0.003138)
[W 250826 14:54:50 +0300 access_log:35] 403 "GET /api/auth/v1/w/sso-signin HTTP/1.0" (X-Account-Name: accountname) (X-Real-Ip: 192.168.110.151) (Remote: 172.195.0.100) (Time: 0.011826)

Как проверить

  1. Убедитесь, что браузер настроен на Kerberos/Negotiate для домена, на котором открыт Webim.

  2. Убедитесь, что для домена Webim корректно настроен SPN (см. раздел про SPN).

Как решить

  1. Настройте браузер так, чтобы он отправлял Kerberos-ticket для домена Webim.

  2. Если Kerberos запрещён политиками, согласуйте изменение политик или используйте режим sso_and_common_auth, чтобы оставить запасной вход по логину/паролю.

Время и NTP

Симптомы

  • Kerberos-аутентификация не проходит

  • ошибки Kerberos воспроизводятся нестабильно

Причины

  • рассинхронизация времени между сервером Webim и контроллером домена

Как проверить

  1. Сравните время и часовой пояс на сервере Webim и на контроллере домена.

  2. Проверьте состояние NTP и ошибки синхронизации.

Как решить

  1. Настройте синхронизацию времени (NTP) на сервере Webim.

  2. Убедитесь, что сервер Webim и контроллер домена синхронизируются с согласованными источниками времени.

Keytab и SPN

KVNO или enctype

Симптомы

  • SSO не работает

  • в логах есть ошибки расшифровки ticket, KVNO или тип шифрования

Причины

  • KVNO изменился на стороне AD, а keytab на сервере Webim не обновили

  • в keytab нет записи с нужным типом шифрования для актуального KVNO

Пример логов

Failed to decrypt AP-REQ ticket: -1765328340/Request ticket server HTTP/docker-[hosted.site.ru@WEBIM.LOCAL](mailto:hosted.site.ru@WEBIM.LOCAL) kvno 14 found in keytab but not with enctype rc4-hmac

Как проверить

  1. Проверьте содержимое keytab на сервере Webim:

    klist -kKe /etc/webim/krb5.keytab
    
  2. Проверьте наличие принципала HTTP/<FQDN>@<REALM> и актуальность KVNO.

Как решить

  1. Пересоздайте keytab на стороне AD.

  2. Обновите файл keytab на сервере Webim.

  3. Убедитесь, что keytab содержит ключи для алгоритмов, разрешённых политиками домена (например, rc4-hmac и/или aes256).

SPN или realm

Симптомы

  • Kerberos-ticket не принимается сервером

  • SSO работает только по одному адресу, а по другому — нет

Причины

  • SPN привязан к другой учетной записи

  • в keytab другой принципал (не совпадает с тем, что использует клиент)

  • неверно задан default_realm

Как проверить

  1. Проверьте SPN в домене (через setspn или инструменты AD).

  2. Проверьте принципалы в keytab:

    klist -kKe /etc/webim/krb5.keytab
    
  3. Проверьте default_realm и блок [realms] в /etc/webim/krb5.conf.

Как решить

  1. Исправьте SPN так, чтобы он соответствовал FQDN, по которому открывается Webim.

  2. Пересоздайте keytab под правильный принципал и обновите его на сервере Webim.

  3. Исправьте настройки realm в krb5.conf.

LDAP

Нет подключения

Симптомы

  • тайм-ауты, отказ в подключении, TLS-ошибки

Причины

  • неверный URL/порт

  • сетевые ограничения

  • при LDAPS — недоверенный сертификат контроллера домена на сервере Webim

Как проверить

  1. Проверьте доступность хоста/порта с сервера Webim:

    nc -zv <ldap_host> <port>
    
  2. Проверьте значения ldap.url и параметры SSL (если используется LDAPS).

Как решить

  1. Исправьте URL/порт в настройках LDAP.

  2. Настройте маршрутизацию/правила FW.

  3. При LDAPS добавьте CA сертификата в доверенные на сервере Webim.

Пользователь не найден

Симптомы

  • в логах: пользователь не найден по имени

Причины

  • пользователь вне области поиска ldap.search_base

  • у пользователя не заполнен sAMAccountName

Пример логов

[E 250825 18:43:11 +0300 service:132] User not found; username=Администратор

Как проверить

  1. Проверьте ldap.search_base — он должен включать OU, где находятся пользователи.

  2. Убедитесь, что у пользователя заполнен sAMAccountName.

Как решить

  1. Исправьте ldap.search_base.

  2. Заполните или исправьте sAMAccountName в AD.

Группы не совпадают

Симптомы

  • пользователь входит, но роли/права не назначаются

Причины

  • ошибка в ldap.security_group_pattern

  • неверный ldap.security_group_attribute или атрибут не заполнен

Как проверить

  1. Сравните DN групп, которые приходят в memberOf, с тем, что формирует ldap.security_group_pattern.

  2. Учитывайте регистр и формат DN (строковое сравнение должно совпадать полностью).

Как решить

  1. Исправьте ldap.security_group_pattern так, чтобы он формировал DN в том же виде, как возвращает AD.

  2. Исправьте ldap.security_group_attribute (обычно memberOf).

Режимы входа

SSO выключен

Симптомы

  • на странице входа нет SSO или он не запускается

Причины

  • sso.enabled = false

  • sso.auth_mode = only_common_auth

Как проверить

  1. Проверьте настройки SSO в account-config.

  2. Проверьте sso.auth_mode.

Как решить

  1. Включите sso.enabled.

  2. Установите sso.auth_mode в only_sso или sso_and_common_auth.

Оператор не допускается к SSO

Симптомы

  • SSO включён, но конкретный оператор не входит

Причины

  • у оператора выключен sso.allow_sso

  • не задан sso_username

Как проверить

  1. В карточке оператора (вкладка настроек SSO) проверьте:

    • sso.allow_sso

    • sso_username

Как решить

  1. Включите sso.allow_sso для оператора.

  2. Заполните sso_username значением, соответствующим sAMAccountName в AD.

Валидация оператора

sso_bad_request

Симптомы

  • при создании/обновлении оператора через SSO возвращается 400

  • в логах есть ошибки валидации полей

Причины

  • из AD приходят неполные или некорректные данные (например, нет имени)

  • email некорректный или конфликтует с существующим оператором

Пример логов

[W 250901 18:44:52 +0300 service:620] Validating name; Value: None ; Type: <class 'NoneType'>
[W 250901 18:44:52 +0300 service:620] Validating email; Value: [test@test.ru](mailto:test@test.ru) ; Type: <class 'str'>
[W 250901 18:44:52 +0300 access_log:35] 400 "PUT /internal/admin-backend/sso/agents/8 HTTP/1.0" (X-Account-Name: accountname) (X-Real-Ip: 172.195.0.5) (Remote: 172.195.0.100) (Time: 0.002736)
[W 250901 18:44:52 +0300 service:64] SSOAgentService: Validation error: {'code': 'agent_validation_error', 'attributes': {'fields_errors': {'name': [{'rule': 'has_suitable_type', 'attributes': None}]}}}

Как проверить

  1. Проверьте, что в AD заполнены displayName и mail.

  2. Проверьте, что email уникален среди операторов Webim.

Как решить

  1. Заполните/исправьте данные пользователя в AD.

  2. Устраните дубликаты email в Webim или исправьте email в AD.

Синхронизация

Не работает периодическая

Симптомы

  • изменения в AD не отражаются в Webim

Причины

  • sso.enable_periodic_synchronization = false

  • Kafka не настроена/недоступна

  • Admin Backend запущен без --kafka-connection

Как проверить

  1. В account-config проверьте sso.enable_periodic_synchronization.

  2. Проверьте параметры запуска Admin Backend: есть ли --kafka-connection=<connection_name>.

  3. Проверьте /etc/webim/kafka.json и наличие соединения <connection_name>.

Как решить

  1. Включите sso.enable_periodic_synchronization.

  2. Настройте Kafka и соединение в /etc/webim/kafka.json.

  3. Перезапустите Admin Backend с параметром --kafka-connection.

Ошибка Sync data with Active Directory

Симптомы

  • при нажатии Sync появляется ошибка

  • в логах есть traceback обработки запроса

Причины

  • не задано подключение к Kafka, поэтому синхронизация не может быть поставлена в очередь

Пример логов

[E 250721 11:43:22 +0300 exception_handler:63] Request processing failed with exception
Traceback (most recent call last):
File "/opt/webim/envs/eta/admin_backend/lib/python3.10/site-packages/admin_backend/entrypoints/web/root/middlewares/exception_handler.py", line 35, in _catch_agent_api_exceptions
return await handler(request)
File "/opt/webim/envs/eta/admin_backend/lib/python3.10/site-packages/admin_backend/entrypoints/web/root/middlewares/extract_request_data.py", line 39, in extract_request_data
response = await handler(request)
File "/opt/webim/envs/eta/admin_backend/lib/python3.10/site-packages/admin_backend/entrypoints/web/root/middlewares/prepare_context.py", line 107, in **call**
return await handler(request)
File "/opt/webim/envs/eta/admin_backend/lib/python3.10/site-packages/admin_backend/entrypoints/web/root/shared/middlewares/default_headers.py", line 20, in **call**
response = await handler(request)
File "/opt/webim/envs/eta/admin_backend/lib/python3.10/site-packages/admin_backend/entrypoints/web/root/middlewares/redirect_to_login_domain.py", line 44, in **call**
return await handler(request)
File "/opt/webim/envs/eta/admin_backend/lib/python3.10/site-packages/aiohttp/web_middlewares.py", line 117, in impl
return await handler(request)

Как проверить

  1. Проверьте, что Admin Backend запущен с --kafka-connection=<connection_name>.

  2. Проверьте, что /etc/webim/kafka.json содержит соединение <connection_name>.

  3. Проверьте доступность Kafka с хоста/контейнера Admin Backend.

Как решить

  1. Настройте Kafka и файл /etc/webim/kafka.json.

  2. Перезапустите Admin Backend с корректным --kafka-connection.

  3. Повторите Sync.


Последнее обновление страницы: 17 февраля 2026 г.