#java #active-directory #ldap #openldap #sasl
#java #active-directory #ldap #openldap #sasl
Вопрос:
Моя цель — аутентифицировать «пользователя Active Directory» с помощью SASL с механизмом DIGEST-MD5 с терминала Ubuntu.
Я ввел следующую команду:
ldapsearch -H ldap://test.my.company:389 -b "DC=test,DC=my,DC=company" -D "CN=Aron Herrera,CN=Users,DC=test,DC=my,DC=company" -U aron -w "my-password" -Y DIGEST-MD5
И я получил:
SASL/DIGEST-MD5 authentication started
ldap_sasl_interactive_bind_s: Invalid credentials (49)
additional info: 80090303: LdapErr: DSID-0C0904B2, comment: The digest-uri does not match any LDAP SPN's registered for this server., data 0, v1db0
Не могли бы вы дать мне какую-либо информацию (ссылки, учебные пособия, документы), чтобы достичь моей цели?
Заранее спасибо.
Ответ №1:
Недавно я столкнулся с той же проблемой. После нескольких часов мучений моего мозга я пошел и захватил несколько пакетов с помощью Wireshark. Проблема, с которой вы и я сталкиваемся, связана с тем, как ldapsearch обрабатывает дайджест-uri.
Сначала он выполняет поиск DNS в test.my.company (очевидно) и использует полученный IP-адрес для построения дайджеста-uri. Он заканчивается так: ldap / 10.10.10.10 (например). Это не то, что ожидает ваш сервер AD.
Если вы используете ldp.exe чтобы проверить компьютер с ролью Active Directory, вы увидите атрибут LDAP с именем serviceProviderName. Это похоже на ldap/test.my.company (плюс другие варианты), но ни в одном из них нет IP-адреса.
Некоторые предлагают добавить PTR к вашему DNS-серверу на сервер test.my.company. У меня это не сработало. Другие пытались добавить новый SPN (serviceProviderName) к атрибуту LDAP AD machine (я бы не стал этого делать, если бы от этого зависела моя жизнь).
Я думаю, это как-то связано с тем, как реализован ldapsearch. Тот же тест, выполненный с помощью Apache Directory Studio, прошел нормально.
Ответ №2:
Ошибки DSID-0C090569: The digest-uri does not match any LDAP SPN's registered for this server.
можно избежать, используя SASL_NOCANON on
или -N
опцию:
От man ldap.conf
:
SASL_NOCANON: не выполняйте обратный поиск DNS для канонизации имен узлов SASL. Значение по умолчанию отключено.
От man ldapsearch
:
-N Не используйте обратный DNS для канонизации имени узла SASL.
В моем ~/.ldaprc
:
uri ldaps://ldap.mycompany.com
base DC=corp,DC=mycompany,DC=com
sasl_mech DIGEST-MD5
SASL_NOCANON on
SASL_AUTHCID rubelagu
SASL_REALM
VERSION 3
И я могу выполнить поиск в LDAP Active Directory с помощью `ldapsearch'(DisplayName = Marei *) ‘.