Дайджест-uri не соответствует ни одному SPN LDAP, зарегистрированному для этого сервера

#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 *) ‘.