Ошибка получения пользователей из LDAP
Вопрос:
При синхронизации пользователей из LDAP в Keycloak возникает ошибка:
- «No users found due to unknown_error».
- «Cannot parse the JSON».
Пользователи не загружаются из федерации.
В чем может быть причина и как ее устранить?
Ответ:
У вас установлена некорректная конфигурация LDAP федерации или параметров маппинга и из-за этого Keycloak получает некорректный/пустой JSON-ответ или не может его распарсить.
Возможные причины возникновения ошибки:
- неверные настройки LDAP provider (URL, bind DN, credentials);
- некорректные mapper’ы (особенно user federation mappers);
- несовместимый формат ответа LDAP/AD;
- ошибка в transformation/claim mapping.
Для решения данной проблемы рекомендуется выполнить в Keycloak LDAP federation следующее:
- Проверить настройки LDAP provider (host, port, bind DN, credentials)
Посмотреть данные настройки можно в файле appsettings.json в переменной ldap или веб-интерфейсе Keycloak в User federation.
- Проверить корректность параметров LDAP в User federation: users dn и Custom User LDAP Filter
- Проверить настройки вкладки Mappers в User federation (особенно атрибуты пользователя)
См. Рисунок 7 инструкции Настройка REALM.
- Убедиться, что все обязательные атрибуты пользователя корректно мапятся (username, email и т.д.)
Для этого нужно открыть и проверить список мапперов в User Federation LDAP.
- Проверить логи Keycloak на уровне DEBUG для получения деталей ошибки парсинга JSON
Для этого нужно добавить в файлеdocker-compose.ymlв разделеСлужба авторизациив блокеkeycloakстроку:KC_LOG_LEVEL: DEBUG
- При необходимости удалить и пересоздать LDAP provider с корректной конфигурацией
См. инструкцию Настройка REALM.