Назад | Перейти на главную страницу

Не удается запросить AD с помощью Kerberos с хоста Linux

ldapsearch -H <URL> -b <BASE> -s sub -D <USER> -x -w <PW>

работает отлично

kinit <USER>@<REALM>
ldapsearch -H <URL> -b <BASE> -s sub

не работает с:

text: 000004DC: LdapErr: DSID-0C0906E8, comment: In order to perform this operation a successful bind must be completed on the connection., data 0, v1db1

kinit Administrator@<REALM>
ldapsearch -H <URL> -b <BASE> -s sub

также отлично работает

Обычный поиск в Google ничего интересного не обнаружил. (Есть обычные комментарии относительно временного сдвига и использования userPrincipalName vs имя компонента для -D, но об этом следует позаботиться при использовании kinit.)

Любые идеи?

Я обнаружил, что указание «-O maxssf = 0» в командной строке ldapsearch необходимо для правильной работы поиска GSSAPI AD. Следующая команда работает для меня для поиска в глобальном каталоге AD через SSL-соединение:

ldapsearch -LLL -O maxssf=0 -Y GSSAPI -H ldaps://ad.realm.local:3269 -b "dc=realm,dc=local" '(sAMAccountName=userid)'

Кроме того, чтобы проверка подлинности Kerberos работала с ldapsearch, DNS должен быть правильно настроен для обратного поиска IP. В противном случае вы получите ошибку «Невозможно определить область для числового адреса хоста». При необходимости вы можете поместить IP-адрес и имя хоста вашего сервера AD в файл hosts, чтобы он заработал.

Из ldapsearch(1) страница руководства:

-Y mech
Specify the SASL mechanism to be used for authentication. If it's not specified, the program will choose the best mechanism the server knows. 

Например:

ldapsearch -Y GSSAPI -b "dc=example,dc=com" uid=user

Предполагая, что ваш /etc/gssapi_mech.conf выглядит примерно так:

# grep -v ^# /etc/gssapi_mech.conf
libgssapi_krb5.so.2             mechglue_internal_krb5_init