Всем привет.
Подтолкните пожалуйста на путь истинный.
Решаю проблему синхронизации сего жабера с AD.
Версия ежабера 2.0.0-rc1
Аутентификацию проходит на ура, поиск работать не хочет вобще.
Что я только с ним не делал, как не менял конфигу.
В конце концов чтобы не путать себя, поставил стандартную.
В логе все чисто, видно запрос-ответ, без каких либо ошибок. Но результат нулевой...
{mod_vcard_ldap,
[{host, "users.@HOST@"},
{ldap_vcard_map,
[{"NICKNAME", "%u", []},
{"GIVEN", "%s", ["givenName"]},
{"MIDDLE", "%s", ["initials"]},
{"FAMILY", "%s", ["sn"]},
{"FN", "%s", ["displayName"]},
{"EMAIL", "%s", ["mail"]},
{"ORGNAME", "%s", ["company"]},
{"ORGUNIT", "%s", ["department"]},
{"CTRY", "%s", ["c"]},
{"LOCALITY", "%s", ["l"]},
{"STREET", "%s", ["streetAddress"]},
{"REGION", "%s", ["st"]},
{"PCODE", "%s", ["postalCode"]},
{"TITLE", "%s", ["title"]},
{"URL", "%s", ["wWWHomePage"]},
{"DESC", "%s", ["description"]},
{"TEL", "%s", ["telephoneNumber"]}]},
{ldap_search_fields,
[{"User", "%u"},
{"Name", "givenName"},
{"Family Name", "sn"},
{"Email", "mail"},
{"Phone", "telephoneNumber"}
]},
{ldap_search_reported,
[{"Full Name", "FN"},
{"Nickname", "NICKNAME"},
{"Email", "EMAIL"}]}
]}
]}.
И еще пару вопросов, тем кто знает как работает модуль
В документации вычитал такую строчку - "внимание, модуль вначале производит проверку наличия такого пользователя, прежде чем запросить инфу о нем". Что это значит? :) То, что несуществующих пользователей он не покажет? Дак это и ежу понятно... Или то, что модуль вначале пытается найти пользователя "x" из введенного поля, а потом, если он присутствует, выводит инфу? А если пользователь "x" - это и есть то, что требуется найти?
Короче, запутался я в этом модуле...
И еще, не могу понять философию такой записи
[{"NICKNAME", "%u", []},
Это как? "ставим в соответствие поля NICKNAME запись из LDAP [] (т.е пусто)"?
Менял это "пусто" на конкретное поле из ldap, а именно sAMAccountType заменив %u на %s и пробовал userPrincipalName. Один фиг.
В общем, отзовитесь плз те, у кото работает такая связка, буду очень признателен :)
Выяснил, что
Выяснил, что поиск по AD завершается успешно (видно по tcpdump -A -x).
А вот модуль обрабатывает данные как то криво.
В лог вылезает такая бяка.
Error in process <0.387.0> on node 'ejabberd@localhost' with exit value: {function_clause,[{eldap_utils,find_ldap_attrs,[[{"sAMAccountName"}],[]]},{mod_vcard_ldap,'-search_items/2-fun-2-',5},{lists,flatmap,2},{mod_vcard_ldap,search_result,4},{mod_vcard_ldap,route,4}]}
У когонибудь вобще работает поиск по AD в Ejabber 2.0.0?
Решил
Решил проблему.
Ошибочка была где то в разборе строк.
Решилась заменой строк в конфиге
-- {ldap_uids, [{"sAMAccountName"}]}.
++ {ldap_uids, [{"userPrincipalName", "%u@domain.ru"}]}.
Поиск по AD работает! Ура!