Вопросы по работе с LDAP

Started by zeratyl, July 13, 2015, 10:03:50 AM

Previous topic - Next topic

zeratyl

Добрый день. Настроил синхронизацию с AD, работает успешно. Подскажите:


1. Возможно поле параметра LdapSearchFilter (в параметрах сервера) сделать не ограниченным или значительно расширить? Например, такой запрос выполнить уже не получится, что ограничивает применение у нас синхронизации с AD: (|(&(objectCategory=person)(objectClass=user)(|(memberOf=CN=lu_0901,OU=Microsoft Active Directory Security Groups,DC=root,DC=local)(memberOf=CN=NMS_Lead_Admins,OU=Microsoft Active Directory Security Groups,DC=root,DC=local)(memberOf=CN=NMS_Junior_Admins,OU=Microsoft Active Directory Security Groups,DC=root,DC=local)))(&(objectCategory=group)(|(cn=NMS*)(cn=lu_0901))))
2. Cтолкнулся с тем что логин аккаутов чувствителен к регистру. Возможно предусмотреть отключение такого ограничения?
3. Сейчас нет возможности использовать вложение групп безопасности. Планируется реализация такой возможности?
4. В документации описана возможность использования несколько AD серверов аутентификации
LdapConnectionString empty string(attempts to find the "default" LDAP server), a domain name, or a space-separated list of host names or dotted strings that represent the IP address of hosts running an LDAP server to which to connect.
Подскажите рабочий пример такой настройки, в случае AD (с указанием нескольких серверов). Как происходит опрос серверов и как ведёт себя система в случае если один из серверов не доступен?

zeratyl

Разработчики NetXMS могут что-то подсказать по выше указанным вопросам?

Alex Kirhenshtein

Мы отвечаем в форуме, как только появляется свободное время – коммерческий саппорт всегда имеет более высокий приоритет, и к сожалению мы не успеваем отслеживать весь форум.

1) Да, можно сделать.
2) Тоже можно сделать.
3) На данный момент – нет.
4) Можно указать несколько серверов – разделенные пробелом. Перебираются по порядку, пока какой-то не ответит.

Зарегистрируйте пожалуйста тикеты для #1 и #2 (тут: https://dev.raden.solutions/projects/netxms/issues/new)

zeratyl

Спасибо за ответ, извините за настойчивость.

kopylov_aleksei

Решил добавить в эту тему, чтобы не открывать новую, т.к. суть та же.
У меня никак не получается сделать синхронизацию пользователей с MS AD. В лог пишет следующее:
[24-Aug-2015 10:34:17.370] [DEBUG] LDAPConnection::initLDAP(): Connecting to LDAP server
[24-Aug-2015 10:34:17.370] [DEBUG] LDAPConnection::initLDAP(): servers="domaine:389" port=389 secure=no
[24-Aug-2015 10:34:17.480] [DEBUG] LDAPConnection::fillLists(): Found entry count: 1
[24-Aug-2015 10:34:17.480] [DEBUG] LDAPConnection::fillLists(): Found dn: CN=kappa,OU=Administrator,OU=GPOU,DC=domine,DC=domine,DC=domine,DC=ru
[24-Aug-2015 10:34:17.480] [DEBUG] LDAPConnection::fillLists(): Unknown object is not added: dn: CN=kappa,OU=Administrator,OU=GPOU,DC=domine,DC=domine,DC=domine,DC=ru, login name: (null), full name: kappa, description: (null)
[24-Aug-2015 10:34:17.480] [DEBUG] LDAPConnection::closeLDAPConnection(): Disconnect form LDAP server

Не добавляется пользователь ввиду значений null в полях "login name:" и "description:", как я понимаю. Подскажите пожалуйста из каких атрибутов учётной записи берутся эти значения? Опытным путём перепробовал все логически подходящие, так же перевёл в латиницу.

zeratyl

Использую версию 1.2.17. Настраивал по статье в документации https://www.netxms.org/documentation/adminguide/user-management.html?highlight=ldap#integration-with-ldap, там описано как можно переопределить поля используемые для аутентификации.

Возможно поможет пример наших рабочих настроек, во вложении.

kopylov_aleksei

Система предвводная 2.0-RC1
Пробовал менять поля местами. Почему-то всегда пишет что:  login name: (null). В других параметрах, LdapMappingFullName, LdapMappingDescription, Меняется в соответствие с выставленными полями AD  в настройках. Возможно это в программе "зашито". Так же, если поля в AD в кирилице, то в логах пишет full name: ??????? ????????????? Может с этим связано, а может это только в лог так попадает, т.к. в changelog  к версии написано что это исправлено.

Tatjana Dubrovica

Попробуйте так:

LdapMappingName: (тот параметр который используеться как имя логина)
LdapMappingFullName: (пусто)
LdapMappingDescription: (пусто)

Для AD LdapMappingName будет sAMAccountName
Open LDAP я настроила так что  LdapMappingName было CN

kopylov_aleksei

Если хоть какой-то из параметров
LdapMappingName:
LdapMappingFullName:
LdapMappingDescription:

ставлю в пусто, служба вываливается.

А далее как писал. Меняю местами параметры, login name: (null), full name: Kappa, description: kappa admin, full name: и description: изменяются, а login name: всегда null

Складывается ощущение что из какого поля брать зашито в коде программы, возможно, просто присутствует ошибка. Ещё раз пишу версию 2.0-RC1

Tatjana Dubrovica

В том релизе, который Вы используете есть баг: https://dev.raden.solutions/issues/890#change-2968

Но судя по Вашим логам, Вы пытаетесь использовать одинаковые атрибуты для LdapMappingFullName и LdapMappingName. Один атрибут можно использовать только для одного параметра. Берутся поля в следующей последовательности: LdapMappingFullName, LdapMappingName, LdapMappingDescription. То есть если использовать один параметр для LdapMappingFullName и для LdapMappingName, то параметр будет использовать только для LdapMappingFullName, а LdapMappingName останется null.

Падение с пустыми полями я ещё проверю.

kopylov_aleksei

Судя по описанию бага - немного не мой вариант.
Значение null для login name сохраняется при любом значении любых полей. Кстати, повторение значения полей приводит к странным последствиям - сдвигается. Примерно к тому, чо Вы описали, но поле login name так и остаётся null.
Настройки: